summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/class/democratic.class.php7
-rw-r--r--lib/class/playlist.class.php6
-rw-r--r--lib/class/stream.class.php4
-rw-r--r--lib/javascript-base.js10
-rw-r--r--server/stream.ajax.php3
-rw-r--r--templates/header.inc.php2
-rw-r--r--util.php2
7 files changed, 16 insertions, 18 deletions
diff --git a/lib/class/democratic.class.php b/lib/class/democratic.class.php
index 296ceab9..5b477f80 100644
--- a/lib/class/democratic.class.php
+++ b/lib/class/democratic.class.php
@@ -142,8 +142,8 @@ class Democratic extends tmpPlaylist {
if ($this->base_playlist != '0') {
/* We need to pull a random one from the base_playlist */
$base_playlist = new Playlist($this->base_playlist);
- $data = $base_playlist->get_random_songs(1);
- $results['object_id'] = $data['0'];
+ $data = $base_playlist->get_random_items(1);
+ $results['object_id'] = $data['0']['object_id'];
}
else {
$sql = "SELECT `id` as `object_id` FROM `song` WHERE `enabled`='1' ORDER BY RAND() LIMIT 1";
@@ -168,7 +168,6 @@ class Democratic extends tmpPlaylist {
$sql = "SELECT `tmp_playlist_data`.`id` FROM `tmp_playlist_data` WHERE `object_type`='$object_type' AND " .
"`tmp_playlist`='$tmp_id' AND `object_id`='$object_id'";
-debug_event('foo',$sql,'1');
$db_results = Dba::query($sql);
$row = Dba::fetch_assoc($db_results);
@@ -237,7 +236,7 @@ debug_event('foo',$sql,'1');
/* If it's on the playlist just vote */
$sql = "SELECT `id` FROM `tmp_playlist_data` " .
- "WHERE `tmp_playlist_data`.`object_id`='$object_id'";
+ "WHERE `tmp_playlist_data`.`object_id`='$object_id' AND `tmp_playlist_data`.`tmp_playlist`='$tmp_playlist'";
$db_results = Dba::query($sql);
/* If it's not there, add it and pull ID */
diff --git a/lib/class/playlist.class.php b/lib/class/playlist.class.php
index f186785f..eb74b163 100644
--- a/lib/class/playlist.class.php
+++ b/lib/class/playlist.class.php
@@ -146,12 +146,14 @@ class Playlist {
* get_random_items
* This is the same as before but we randomize the buggers!
*/
- public function get_random_items() {
+ public function get_random_items($limit='') {
$results = array();
+ $limit_sql = $limit ? 'LIMIT ' . intval($limit) : '';
+
$sql = "SELECT `object_id`,`object_type`,`dynamic_song` FROM `playlist_data` " .
- "WHERE `playlist`='" . Dba::escape($this->id) . "' ORDER BY RAND()";
+ "WHERE `playlist`='" . Dba::escape($this->id) . "' ORDER BY RAND() $limit_sql";
$db_results = Dba::query($sql);
while ($row = Dba::fetch_assoc($db_results)) {
diff --git a/lib/class/stream.class.php b/lib/class/stream.class.php
index 09f3cf8a..1b44a492 100644
--- a/lib/class/stream.class.php
+++ b/lib/class/stream.class.php
@@ -473,7 +473,7 @@ class Stream {
$democratic = Democratic::get_current_playlist();
$democratic->vote($this->songs);
-
+
} // create_democratic
/**
@@ -660,7 +660,7 @@ class Stream {
// Load our javascript
echo "<script type=\"text/javascript\">";
//echo "reload_util();";
- echo "reload_util2('".$_SESSION['iframe']['target']."');";
+ echo "reload_util('".$_SESSION['iframe']['target']."');";
echo "</script>";
} // run_playlist_method
diff --git a/lib/javascript-base.js b/lib/javascript-base.js
index 4f7ef55d..8d4bb1e1 100644
--- a/lib/javascript-base.js
+++ b/lib/javascript-base.js
@@ -86,12 +86,10 @@ function update_txt(value,field) {
}
// Reload our util frame
-function reload_util() {
- document.getElementById('util_iframe').contentWindow.location.reload(true);
-}
-function reload_util2(target) {
- //document.getElementById('util_iframe').contentWindow.location.href = target;
- document.location.href = target;
+// IE issue fixed by Spocky, we have to use the iframe for Democratic Play & Localplay
+// which don't actually prompt for a new file
+function reload_util(target) {
+ document.getElementById('util_iframe').src = document.getElementById('util_iframe').src;
}
function popup_art(url) {
diff --git a/server/stream.ajax.php b/server/stream.ajax.php
index fc39f957..30513b43 100644
--- a/server/stream.ajax.php
+++ b/server/stream.ajax.php
@@ -38,8 +38,7 @@ switch ($_REQUEST['action']) {
case 'basket':
// We need to set the basket up!
$_SESSION['iframe']['target'] = Config::get('web_path') . '/stream.php?action=basket&playlist_method=' . scrub_out($_REQUEST['playlist_method']);
- //$results['rfc3514'] = '<script type="text/javascript">reload_util()</script>';
- $results['rfc3514'] = '<script type="text/javascript">reload_util2("'.$_SESSION['iframe']['target'].'")</script>';
+ $results['rfc3514'] = '<script type="text/javascript">reload_util("'.$_SESSION['iframe']['target'].'")</script>';
break;
default:
$results['rfc3514'] = '0x1';
diff --git a/templates/header.inc.php b/templates/header.inc.php
index 50453437..706c2f20 100644
--- a/templates/header.inc.php
+++ b/templates/header.inc.php
@@ -82,7 +82,7 @@ if (Config::get('use_rss')) { ?>
<table class="smeg-ie" width="100%"><tr><td> -->
<!-- Tiny little iframe, used to cheat the system -->
<div id="ajax-loading">Loading . . .</div>
-<iframe id="util_iframe" style="display:none;" src="<?php echo Config::get('web_path'); ?>/util.php"></iframe>
+<iframe name="util_iframe" id="util_iframe" style="display:none;" src="<?php echo Config::get('web_path'); ?>/util.php"></iframe>
<div id="content">
<?php if (Config::get('int_config_version') != Config::get('config_version') AND $GLOBALS['user']->has_access(100)) { ?>
<div class="fatalerror">
diff --git a/util.php b/util.php
index 6e66d64e..e3760c42 100644
--- a/util.php
+++ b/util.php
@@ -27,6 +27,6 @@ require_once 'lib/init.php';
if (isset($_SESSION['iframe']['target'])) {
$target = $_SESSION['iframe']['target'];
unset($_SESSION['iframe']['target']);
- //header("Location: " . $target);
+ header("Location: " . $target);
}
?>