/** * playlists * This returns playlists based on the specified filter * @param array $input */ public static function playlists($input) { self::$browse->reset_filters(); self::$browse->set_type('playlist'); self::$browse->set_sort('name', 'ASC'); $method = $input['exact'] ? 'exact_match' : 'alpha_match'; Api::set_filter($method, $input['filter']); self::$browse->set_filter('playlist_type', '1'); $playlist_ids = self::$browse->get_objects(); XML_Data::set_offset($input['offset']); XML_Data::set_limit($input['limit']); ob_end_clean(); echo XML_Data::playlists($playlist_ids); }
if (isset($_REQUEST['show_header']) && $_REQUEST['show_header']) { $browse->set_show_header($_REQUEST['show_header'] == 'true'); } $argument = null; if ($_REQUEST['argument']) { $argument = scrub_in($_REQUEST['argument']); } $results = array(); switch ($_REQUEST['action']) { case 'browse': $object_ids = array(); // Check 'value' with isset because it can null //(user type a "start with" word and deletes it) if ($_REQUEST['key'] && (isset($_REQUEST['multi_alpha_filter']) or isset($_REQUEST['value']))) { // Set any new filters we've just added $browse->set_filter($_REQUEST['key'], $_REQUEST['multi_alpha_filter']); $browse->set_catalog($_SESSION['catalog']); } if ($_REQUEST['sort']) { // Set the new sort value $browse->set_sort($_REQUEST['sort']); } if ($_REQUEST['catalog_key'] || $_SESSION['catalog'] != 0) { $browse->set_filter('catalog', $_REQUEST['catalog_key']); $_SESSION['catalog'] = $_REQUEST['catalog_key']; } elseif ($_REQUEST['catalog_key'] == 0) { $browse->set_filter('catalog', null); unset($_SESSION['catalog']); } ob_start(); $browse->show_objects(null, $argument);
require_once '../lib/init.php'; debug_event('refresh_reordered.server.php', 'Called for action: {' . $_REQUEST['action'] . '}', '5'); /* Switch on the action passed in */ switch ($_REQUEST['action']) { case 'refresh_playlist_medias': $playlist = new Playlist($_REQUEST['id']); $playlist->format(); $object_ids = $playlist->get_items(); $browse = new Browse(); $browse->set_type('playlist_media'); $browse->add_supplemental_object('playlist', $playlist->id); $browse->set_static_content(true); $browse->show_objects($object_ids); $browse->store(); break; case 'refresh_album_songs': $browse = new Browse(); $browse->set_show_header(true); $browse->set_type('song'); $browse->set_simple_browse(true); $browse->set_filter('album', $_REQUEST['id']); $browse->set_sort('track', 'ASC'); $browse->get_objects(); echo "<div id='browse_content_song' class='browse_content'>"; $browse->show_objects(null, true); // true argument is set to show the reorder column $browse->store(); echo "</div>"; break; } // switch on the action
', '<?php echo T_('Album edit'); ?> ', '')"> <?php echo UI::get_icon('edit', T_('Edit')); ?> </a> <?php } ?> </div> <div id='reordered_list_<?php echo $album_id; ?> '> <?php $browse = new Browse(); $browse->set_show_header(false); $browse->set_type('song'); $browse->set_simple_browse(true); $browse->set_filter('album', $album_id); $browse->set_sort('track', 'ASC'); $browse->get_objects(); $browse->show_objects(null, true); // true argument is set to show the reorder column $browse->store(); ?> </div><br /> <?php }
case 'pvmsg': case 'podcast': case 'podcast_episode': $browse->set_type($_REQUEST['action']); $browse->set_simple_browse(true); break; } // end switch UI::show_header(); // Browser is able to save page on current session. Only applied to main menus. $browse->set_update_session(true); switch ($_REQUEST['action']) { case 'file': break; case 'album': $browse->set_filter('catalog', $_SESSION['catalog']); if (AmpConfig::get('catalog_disable')) { $browse->set_filter('catalog_enabled', '1'); } $browse->set_sort('name', 'ASC'); $browse->update_browse_from_session(); // Update current index depending on what is in session. $browse->show_objects(); break; case 'tag': //FIXME: This whole thing is ugly, even though it works. $browse->set_sort('count', 'ASC'); // This one's a doozy $browse_type = isset($_REQUEST['type']) ? $_REQUEST['type'] : 'artist'; $browse->set_simple_browse(false); $browse->save_objects(Tag::get_tags($browse_type, 0, 'name'));
$tag = new Tag($_GET['tag_id']); $tag->delete(); header('Location: ' . AmpConfig::get('web_path') . '/browse.php?action=tag'); exit; case 'remove_tag_map': debug_event('tag.ajax', 'Removing tag map...', '5'); $tag = new Tag($_GET['tag_id']); $tag->remove_map($_GET['type'], $_GET['object_id']); break; case 'browse_type': $browse = new Browse($_GET['browse_id']); $browse->set_filter('object_type', $_GET['type']); $browse->store(); break; case 'add_filter': $browse = new Browse($_GET['browse_id']); $browse->set_filter('tag', $_GET['tag_id']); $object_ids = $browse->get_objects(); ob_start(); $browse->show_objects($object_ids); $results[$browse->get_content_div()] = ob_get_clean(); $browse->store(); // Retrieve current objects of type based on combined filters break; default: $results['rfc3514'] = '0x1'; break; } // switch on action; // We always do this echo xoutput_from_array($results);
case 'live_stream': case 'video': case 'song': case 'channel': case 'broadcast': $browse->set_type($_REQUEST['action']); $browse->set_simple_browse(true); break; } // end switch UI::show_header(); switch ($_REQUEST['action']) { case 'file': break; case 'album': $browse->set_filter('catalog', $_SESSION['catalog']); if (AmpConfig::get('catalog_disable')) { $browse->set_filter('catalog_enabled', '1'); } $browse->set_sort('name', 'ASC'); $browse->show_objects(); break; case 'tag': //FIXME: This whole thing is ugly, even though it works. $browse->set_sort('count', 'ASC'); // This one's a doozy $browse->set_simple_browse(false); $browse->save_objects(Tag::get_tags()); // Should add a pager? $object_ids = $browse->get_saved(); $keys = array_keys($object_ids);