/** * democratic * This is for controlling democratic play */ public static function democratic($input) { // Load up democratic information $democratic = Democratic::get_current_playlist(); $democratic->set_parent(); switch ($input['method']) { case 'vote': $type = 'song'; $media = new $type($input['oid']); if (!$media->id) { echo XML_Data::error('400', T_('Media Object Invalid or Not Specified')); break; } $democratic->add_vote(array(array('object_type' => 'song', 'object_id' => $media->id))); // If everything was ok $xml_array = array('action' => $input['action'], 'method' => $input['method'], 'result' => true); echo XML_Data::keyed_array($xml_array); break; case 'devote': $type = 'song'; $media = new $type($input['oid']); if (!$media->id) { echo XML_Data::error('400', T_('Media Object Invalid or Not Specified')); } $uid = $democratic->get_uid_from_object_id($media->id, $type); $democratic->remove_vote($uid); // Everything was ok $xml_array = array('action' => $input['action'], 'method' => $input['method'], 'result' => true); echo XML_Data::keyed_array($xml_array); break; case 'playlist': $objects = $democratic->get_items(); Song::build_cache($democratic->object_ids); Democratic::build_vote_cache($democratic->vote_ids); XML_Data::democratic($objects); break; case 'play': $url = $democratic->play_url(); $xml_array = array('url' => $url); echo XML_Data::keyed_array($xml_array); break; default: echo XML_Data::error('405', T_('Invalid Request')); break; } // switch on method }
if (!Access::check('interface', '75')) { UI::access_denied(); break; } // Get all of the non-user playlists $playlists = Democratic::get_playlists(); require_once AmpConfig::get('prefix') . UI::find_template('show_manage_democratic.inc.php'); break; case 'show_playlist': default: $democratic = Democratic::get_current_playlist(); if (!$democratic->id) { require_once AmpConfig::get('prefix') . UI::find_template('show_democratic.inc.php'); break; } $democratic->set_parent(); $democratic->format(); require_once AmpConfig::get('prefix') . UI::find_template('show_democratic.inc.php'); $objects = $democratic->get_items(); Song::build_cache($democratic->object_ids); Democratic::build_vote_cache($democratic->vote_ids); $browse = new Browse(); $browse->set_type('democratic'); $browse->set_static_content(false); $browse->save_objects($objects); $browse->show_objects(); $browse->store(); break; } // end switch on action UI::show_footer();