$limit = $browse->get_offset(); if ($limit > 0 && $value > 0) { $total = $browse->get_total(); $pages = ceil($total / $limit); if ($value <= $pages) { $offset = ($value - 1) * $limit; $browse->set_start($offset); } } break; } ob_start(); $browse->show_objects(null, $argument); $results[$browse->get_content_div()] = ob_get_clean(); break; case 'get_share_links': $object_type = $_REQUEST['object_type']; $object_id = intval($_REQUEST['object_id']); if (Core::is_library_item($object_type) && $object_id > 0) { Share::display_ui_links($object_type, $object_id); exit; } break; default: $results['rfc3514'] = '0x1'; break; } // switch on action; $browse->store(); // We always do this echo xoutput_from_array($results);
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')); // Should add a pager? $object_ids = $browse->get_saved(); $keys = array_keys($object_ids); Tag::build_cache($keys); UI::show_box_top(T_('Tag Cloud'), 'box box_tag_cloud'); $browse2 = new Browse(); $browse2->set_type($browse_type); $browse2->store(); require_once AmpConfig::get('prefix') . UI::find_template('show_tagcloud.inc.php'); UI::show_box_bottom(); $type = $browse2->get_type(); require_once AmpConfig::get('prefix') . UI::find_template('browse_content.inc.php'); break; case 'artist': $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(); $browse->show_objects(); break; case 'song':