Exemple #1
0
     $playlist = new Playlist($_REQUEST['playlist_id']);
     $songs = $playlist->get_songs();
     foreach ($songs as $song) {
         $media_ids[] = array('object_type' => 'song', 'object_id' => $song);
     }
     break;
 case 'smartplaylist':
     $playlist = new Search('song', $_REQUEST['playlist_id']);
     $items = $playlist->get_items();
     foreach ($items as $item) {
         $media_ids[] = array('object_type' => $item['object_type'], 'object_id' => $item['object_id']);
     }
     break;
 case 'playlist_random':
     $playlist = new Playlist($_REQUEST['playlist_id']);
     $media_ids = $playlist->get_random_items();
     break;
 case 'random':
     $matchlist = array();
     if ($_REQUEST['genre'][0] != '-1') {
         $matchlist['genre'] = $_REQUEST['genre'];
     }
     if ($_REQUEST['catalog'] != '-1') {
         $matchlist['catalog'] = $_REQUEST['catalog'];
     }
     /* Setup the options array */
     $options = array('limit' => $_REQUEST['random'], 'random_type' => $_REQUEST['random_type'], 'size_limit' => $_REQUEST['size_limit']);
     $media_ids = get_random_songs($options, $matchlist);
     break;
 case 'democratic':
     $democratic = new Democratic($_REQUEST['democratic_id']);
Exemple #2
0
 /**
  * get_next_object
  * This returns the next object in the tmp_playlist.
  * Most of the time this will just be the top entry, but if there is a
  * base_playlist and no items in the playlist then it returns a random
  * entry from the base_playlist
  */
 public function get_next_object($offset = 0)
 {
     // FIXME: Shouldn't this return object_type?
     $offset = intval($offset);
     $items = $this->get_items($offset + 1);
     if (count($items) > $offset) {
         return $items[$offset]['object_id'];
     }
     // If nothing was found and this is a voting playlist then get
     // from base_playlist
     if ($this->base_playlist) {
         $base_playlist = new Playlist($this->base_playlist);
         $data = $base_playlist->get_random_items(1);
         return $data[0]['object_id'];
     } else {
         $sql = "SELECT `id` FROM `song` WHERE `enabled`='1' ORDER BY RAND() LIMIT 1";
         $db_results = Dba::read($sql);
         $results = Dba::fetch_assoc($db_results);
         return $results['id'];
     }
 }
Exemple #3
0
                     }
                 }
                 break;
             case 'artist_random':
             case 'tag_random':
                 $data = explode('_', $_REQUEST['type']);
                 $type = $data['0'];
                 $object = new $type($_REQUEST['id']);
                 $songs = $object->get_random_songs();
                 foreach ($songs as $song_id) {
                     $GLOBALS['user']->playlist->add_object($song_id, 'song');
                 }
                 break;
             case 'playlist_random':
                 $playlist = new Playlist($_REQUEST['id']);
                 $items = $playlist->get_random_items();
                 foreach ($items as $item) {
                     $GLOBALS['user']->playlist->add_object($item['object_id'], $item['object_type']);
                 }
                 break;
             case 'clear_all':
                 $GLOBALS['user']->playlist->clear();
                 break;
         }
     }
     $results['rightbar'] = UI::ajax_include('rightbar.inc.php');
     break;
     /* Setting ratings */
 /* Setting ratings */
 case 'set_rating':
     if (User::is_registered()) {
 public static function setPlayQueue(SimpleXMLElement $xml, $type, $playlistID, $uri, $key, $shuffle)
 {
     $GLOBALS['user']->playlist->clear();
     $id = 0;
     if (!empty($key)) {
         $id = self::getKeyFromMetadataUri($key);
     } elseif (!empty($uri)) {
         $key = self::getKeyFromFullUri($uri);
         $id = self::getKeyFromMetadataUri($key);
     }
     $plmedias = array();
     if ($id) {
         if ($type == 'audio' || $type == 'video') {
             $item = self::createLibraryItem($id);
             if ($item != null) {
                 $plmedias = $item->get_medias();
             }
         }
     } else {
         // Add complete playlist
         if (self::isPlaylist($playlistID)) {
             $playlist = new Playlist(self::getAmpacheId($playlistID));
             if ($shuffle) {
                 $plmedias = $playlist->get_random_items();
             } else {
                 $plmedias = $playlist->get_items();
             }
         }
     }
     $GLOBALS['user']->playlist->add_medias($plmedias);
     self::setTmpPlayQueue($xml, 1);
 }