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_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` = '" . Dba::escape($GLOBALS['user']->id) . "'"; } $sql = "SELECT id,name FROM playlist " . "WHERE " . $where_sql . " ORDER BY `name`"; $db_results = Dba::query($sql); echo "'; } // show_playlist_select ?>