has_access(100)) {
$playlists = get_playlists('adminprivate');
$type = 'Admin';
require (conf('prefix') . '/templates/show_playlists.inc.php');
}
/* Always Show Public */
$playlists = get_playlists('public');
$type = 'Public';
require (conf('prefix') . '/templates/show_playlists.inc.php');
} // show_playlists
/**
* show_playlist
* This function takes a playlist object and calls show_songs after
* runing get_items()
*/
function show_playlist($playlist) {
/* Create the Playlist */
$song_ids = $playlist->get_items();
show_playlist_menu();
if (count($song_ids) > 0) {
show_songs($song_ids, $playlist);
}
else {
echo "
" . _("No songs in this playlist.") . "
\n";
}
} // show_playlist
/**
* show_playlist_menu
* This shows a little pretty box that contains the playlist 'functions'
*/
function show_playlist_menu() {
require (conf('prefix') . '/templates/show_playlist_box.inc.php');
} // show_playlist_menu
/**
* show_playlist_edit
* This function shows the edit form for a playlist, nothing special here
*/
function show_playlist_edit($playlist_id) {
$playlist = new Playlist($playlist_id);
/* Chuck em out if they don't have the rights */
if (!$playlist->has_access()) { access_denied(); return false; }
require_once (conf('prefix') . '/templates/show_playlist_edit.inc.php');
} // show_playlist_edit
/**
* get_playlists
* This function takes private,adminprivate or public and returns an array of playlist objects
* that match, it checks permission
*/
function get_playlists($type) {
switch ($type) {
case 'private':
$sql = "SELECT id FROM playlist WHERE user='" . sql_escape($GLOBALS['user']->id) . "'" .
" AND type='private' ORDER BY name";
break;
case 'adminprivate':
if (!$GLOBALS['user']->has_access(100)) { return false; }
$sql = "SELECT id FROM playlist WHERE user!='" . sql_escape($GLOBALS['user']->id) . "'" .
" AND type='private' ORDER BY name";
break;
default:
case 'public':
$sql = "SELECT id FROM playlist WHERE type='public' ORDER BY name";
break;
} // end switch
$db_results = mysql_query($sql, dbh());
$results = array();
while ($r = mysql_fetch_assoc($db_results)) {
$playlist = new Playlist($r['id']);
$results[] = $playlist;
}
return $results;
} // get_playlists
/**
* prune_empty_playlists
* This function goes through and deletes any playlists which have
* no songs in them. This can only be done by a full admin
*/
function prune_empty_playlists() {
$sql = "SELECT playlist.id FROM playlist LEFT JOIN playlist_data ON playlist.id=playlist_data.playlist " .
"WHERE playlist_data.id IS NULL";
$db_results = mysql_query($sql, dbh());
$results = array();
while ($r = mysql_fetch_assoc($db_results)) {
$results[] = $r['id'];
}
/* Delete the Playlists */
foreach ($results as $playlist_id) {
$playlist = new Playlist($playlist_id);
$playlist->delete();
}
return true;
} // prune_empty_playlists
/**
* show_playlist_select
* This shows the playlist select box, it takes a playlist ID and a type as an optional
* param, the type is 'normal','democratic','dynamic' these are hacks and make baby vollmer cry
* but I'm too lazy to fix them right now
*/
function show_playlist_select($playlist_id=0,$type='') {
/* If democratic show everything, else normal */
if ($type == 'democratic') {
$where_sql = '1=1';
}
else {
$where_sql = " `user` = '" . sql_escape($GLOBALS['user']->id) . "'";
}
$sql = "SELECT id,name FROM playlist " .
"WHERE " . $where_sql . " ORDER BY name";
$db_results = mysql_query($sql,dbh());
echo "';
} // show_playlist_select
?>