diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-14 19:16:00 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-01-14 19:16:00 +0000 |
commit | fdb23e3779207c9a77e15c6d31441cc6314354f0 (patch) | |
tree | ef6c9e0917b59ec0faf07d652fdef0175ddfbd92 /lib | |
parent | c22b5025d3e77325923937f293c30d85111f5af9 (diff) | |
download | ampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.tar.gz ampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.tar.bz2 ampache-fdb23e3779207c9a77e15c6d31441cc6314354f0.zip |
fixed play selected always playing everything on a playlist regardless
Diffstat (limited to 'lib')
-rw-r--r-- | lib/class/playlist.class.php | 29 | ||||
-rw-r--r-- | lib/general.js | 2 |
2 files changed, 27 insertions, 4 deletions
diff --git a/lib/class/playlist.class.php b/lib/class/playlist.class.php index c89ac420..51399b41 100644 --- a/lib/class/playlist.class.php +++ b/lib/class/playlist.class.php @@ -111,13 +111,36 @@ class Playlist { * This returns an array of song_ids accounting for any dyn_song entries this playlist * may have. This is what should be called when trying to generate a m3u or other playlist */ - function get_songs() { + function get_songs($array=array()) { + + $results = array(); + + /* If we've passed in some songs */ + if (count($array)) { + + foreach ($array as $data) { + + $sql = "SELECT song,dyn_song FROM playlist_data WHERE id='" . sql_escape($data) . "'"; + $db_results = mysql_query($sql, dbh()); + + $r = mysql_fetch_assoc($db_results); + if ($r['dyn_song']) { + $array = $this->get_dyn_songs($r['dyn_song']); + $results = array_merge($array,$results); + } + else { + $results[] = $r['song']; + } + + } // end foreach songs + + return $results; + + } // end if we were passed some data $sql = "SELECT * FROM playlist_data WHERE playlist='" . sql_escape($this->id) . "'"; $db_results = mysql_query($sql, dbh()); - $results = array(); - while ($r = mysql_fetch_assoc($db_results)) { if ($r['dyn_song']) { $array = $this->get_dyn_songs($r['dyn_song']); diff --git a/lib/general.js b/lib/general.js index 879da45a..d196e8f0 100644 --- a/lib/general.js +++ b/lib/general.js @@ -65,7 +65,7 @@ function handleStateChange() { } // end if break; case 'now_playing' : - if (player == 'mpd') { + if (player == 'mpd' && (player_state == 'play')) { mpd_song_length = el.getElementsByTagName ('songlength')[0].firstChild.data; mpd_songid = Math.round(el.getElementsByTagName ('songid')[0].firstChild.data); document.getElementById ('mpd_npinfo').firstChild.data = |