diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-07-31 20:24:27 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-07-31 20:24:27 +0200 |
commit | aff8bc62d26e1fc7555eb49a2f4a98f0c3d45c3f (patch) | |
tree | bcdc56dc0315342e369346717dc4d34218ef09a0 | |
parent | b93b066a425fae11d304ee59f8d745e1251005a9 (diff) | |
download | nextcloud-server-aff8bc62d26e1fc7555eb49a2f4a98f0c3d45c3f.tar.gz nextcloud-server-aff8bc62d26e1fc7555eb49a2f4a98f0c3d45c3f.zip |
some improvements in oc_media_collections
-rw-r--r-- | apps/media/lib_collection.php | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/apps/media/lib_collection.php b/apps/media/lib_collection.php index 5a16aaee848..7e540ab585f 100644 --- a/apps/media/lib_collection.php +++ b/apps/media/lib_collection.php @@ -123,14 +123,9 @@ class OC_MEDIA_COLLECTION{ if(!$exact and $search!='%'){ $search="%$search%"; } - $query=OC_DB::prepare("SELECT DISTINCT *PREFIX*media_artists.artist_name AS name , *PREFIX*media_artists.artist_id AS id FROM *PREFIX*media_artists + $query=OC_DB::prepare("SELECT DISTINCT *PREFIX*media_artists.artist_name AS artist_name , *PREFIX*media_artists.artist_id AS artist_id FROM *PREFIX*media_artists INNER JOIN *PREFIX*media_songs ON *PREFIX*media_artists.artist_id=*PREFIX*media_songs.song_artist WHERE artist_name LIKE ? AND *PREFIX*media_songs.song_user=?"); - $artists=$query->execute(array($search,OC_User::getUser()))->fetchAll(); - $result=array(); - foreach($artists as $artist){ - $result[]=array('artist_name'=>$artist['name'],'artist_id'=>$artist['id']); - } - return $result; + return $query->execute(array($search,OC_User::getUser()))->fetchAll(); } /** @@ -148,7 +143,7 @@ class OC_MEDIA_COLLECTION{ if($artistId!=0){ return $artistId; }else{ - $query=OC_DB::prepare("INSERT INTO `*PREFIX*media_artists` (`artist_id` ,`artist_name`) VALUES (NULL , ?)"); + $query=OC_DB::prepare("INSERT INTO `*PREFIX*media_artists` (`artist_id` ,`artist_name`) VALUES (NULL , ?)"); $result=$query->execute(array($name)); return self::getArtistId($name);; } @@ -161,28 +156,22 @@ class OC_MEDIA_COLLECTION{ * @return array the list of albums found */ static public function getAlbums($artist=0,$search='%',$exact=false){ - $cmd="SELECT * FROM *PREFIX*media_albums WHERE 1=1 "; - $params=array(); + $cmd="SELECT DISTINCT *PREFIX*media_albums.album_name AS album_name , *PREFIX*media_albums.album_artist AS album_artist , *PREFIX*media_albums.album_id AS album_id + FROM *PREFIX*media_albums INNER JOIN *PREFIX*media_songs ON *PREFIX*media_albums.album_id=*PREFIX*media_songs.song_album WHERE *PREFIX*media_songs.song_user=? "; + $params=array(OC_User::getUser()); if($artist!=0){ - $cmd.="AND album_artist = ? "; + $cmd.="AND *PREFIX*media_albums.album_artist = ? "; array_push($params,$artist); } if($search!='%'){ - $cmd.="AND album_name LIKE ? "; + $cmd.="AND *PREFIX*media_albums.album_name LIKE ? "; if(!$exact){ $search="%$search%"; } array_push($params,$search); } $query=OC_DB::prepare($cmd); - $albums=$query->execute($params)->fetchAll(); - $result=array(); - foreach($albums as $album){ - if(count(self::getSongs($album['album_artist'],$album['album_id']))){ - $result[]=$album; - } - } - return $result; + return $query->execute($params)->fetchAll(); } /** @@ -242,12 +231,7 @@ class OC_MEDIA_COLLECTION{ $searchString=''; } $query=OC_DB::prepare("SELECT * FROM *PREFIX*media_songs WHERE song_user=? $artistString $albumString $searchString"); - $songs=$query->execute($params)->fetchAll(); - if(is_array($songs)){ - return $songs; - }else{ - return array(); - } + return $query->execute($params)->fetchAll(); } /** |