diff options
-rw-r--r-- | lib/class/update.class.php | 40 | ||||
-rw-r--r-- | lib/class/user.class.php | 73 | ||||
-rw-r--r-- | modules/init.php | 2 |
3 files changed, 91 insertions, 24 deletions
diff --git a/lib/class/update.class.php b/lib/class/update.class.php index e38db328..be64f699 100644 --- a/lib/class/update.class.php +++ b/lib/class/update.class.php @@ -784,7 +784,7 @@ class Update { /* Fix missing preferences */ foreach ($users as $userid => $data) { - $user->fix_preferences($userid); + $user->old_fix_preferences($userid); } // end foreach user /* Update Version */ @@ -826,7 +826,7 @@ class Update { $user = new User(0); while ($results = mysql_fetch_array($db_results)) { - $user->fix_preferences($results[0]); + $user->old_fix_preferences($results[0]); } /* Update Version */ @@ -853,7 +853,7 @@ class Update { $user = new User(0); while ($results = mysql_fetch_array($db_results)) { - $user->fix_preferences($results[0]); + $user->old_fix_preferences($results[0]); } /* Update Version */ @@ -884,7 +884,7 @@ class Update { $user = new User(0); while ($results = mysql_fetch_array($db_results)) { - $user->fix_preferences($results[0]); + $user->old_fix_preferences($results[0]); } /* Update Version */ @@ -905,7 +905,7 @@ class Update { $user = new User(0); while ($results = mysql_fetch_array($db_results)) { - $user->fix_preferences($results[0]); + $user->old_fix_preferences($results[0]); } /* Update Version */ @@ -944,16 +944,6 @@ class Update { $db_results = mysql_query($sql, dbh()); - /* Fix existing preferecnes */ - $sql = "SELECT DISTINCT(user) FROM user_preference"; - $db_results = mysql_query($sql, dbh()); - - $user = new User(0); - - while ($results = mysql_fetch_array($db_results)) { - $user->fix_preferences($results[0]); - } - $this->set_version('db_version','332001'); } // update_332001 @@ -1143,7 +1133,7 @@ class Update { */ // Pull the User/Preference Map - $sql = "SELECT user,preference FROM user_preference"; + $sql = "SELECT * FROM user_preference"; $db_results = mysql_query($sql, dbh()); $results = array(); @@ -1157,9 +1147,10 @@ class Update { // Dump It!! foreach ($results as $data) { - $username = $username_id_map[$data['user']]; - if ($data['user'] < 1) { $username = '-1'; } - $sql = "UPDATE user_preference SET user='$username' WHERE user='" . $data['user'] . "' AND preference='" . $data['preference'] . "'"; + $id = $data['user']; + $username = $username_id_map[$id]; + if ($data['user'] == '0') { $username = '-1'; } + $sql = "UPDATE user_preference SET user='$username' WHERE user='$id' AND preference='" . $data['preference'] . "'"; $db_results = mysql_query($sql, dbh()); } // foreach @@ -1169,6 +1160,17 @@ class Update { $sql = "ALTER TABLE `user` DROP `id`"; $db_results = mysql_query($sql, dbh()); + /* Fix existing preferecnes */ + $sql = "SELECT DISTINCT(user) FROM user_preference"; + $db_results = mysql_query($sql, dbh()); + + $user = new User(0); + + while ($results = mysql_fetch_array($db_results)) { + $user->fix_preferences($results[0]); + } + + $this->set_version('db_version', '332002'); } // update_332002 diff --git a/lib/class/user.class.php b/lib/class/user.class.php index 2201c35e..d8503112 100644 --- a/lib/class/user.class.php +++ b/lib/class/user.class.php @@ -547,17 +547,17 @@ class User { } // while results /* - If we aren't the 0 user before we continue then grab the - 0 user's values + If we aren't the -1 user before we continue then grab the + -1 user's values */ if ($user_id != '-1') { $sql = "SELECT user_preference.preference,user_preference.value FROM user_preference,preferences " . - "WHERE user_preference.preference = preferences.id AND user_preference.user='0' AND preferences.type='user'"; + "WHERE user_preference.preference = preferences.id AND user_preference.user='-1' AND preferences.type='user'"; $db_results = mysql_query($sql, dbh()); while ($r = mysql_fetch_object($db_results)) { $zero_results[$r->preference] = $r->value; } - } // if not user 0 + } // if not user -1 $sql = "SELECT * FROM preferences"; @@ -598,6 +598,71 @@ class User { } // fix_preferences + /** + * This function is specificly for the update script + * it's maintained simply because we have to in order to previous updates to + * work correctly + * @package Update + * @catagory Legacy Function + * @depreciated If working with a new db please use the fix_preferences + */ + function old_fix_preferences($user_id = 0) { + + if (!$user_id) { + $user_id = $this->id; + } + + /* Get All Preferences */ + $sql = "SELECT * FROM user_preference WHERE user='$user_id'"; + $db_results = mysql_query($sql, dbh()); + + while ($r = mysql_fetch_object($db_results)) { + /* Check for duplicates */ + if (isset($results[$r->preference])) { + $r->value = sql_escape($r->value); + $sql = "DELETE FROM user_preference WHERE user='$user_id' AND preference='$r->preference' AND value='$r->value'"; + $delete_results = mysql_query($sql, dbh()); + } // duplicate + else { + $results[$r->preference] = $r; + } + } // while results + + /* + If we aren't the 0 user before we continue then grab the + 0 user's values + */ + if ($user_id != '0') { + $sql = "SELECT user_preference.preference,user_preference.value FROM user_preference,preferences " . + "WHERE user_preference.preference = preferences.id AND user_preference.user='0' AND preferences.type='user'"; + $db_results = mysql_query($sql, dbh()); + while ($r = mysql_fetch_object($db_results)) { + $zero_results[$r->preference] = $r->value; + } + } // if not user 0 + + + $sql = "SELECT * FROM preferences"; + if ($user_id != '0') { + $sql .= " WHERE type='user'"; + } + $db_results = mysql_query($sql, dbh()); + + + while ($r = mysql_fetch_object($db_results)) { + + /* Check if this preference is set */ + if (!isset($results[$r->id])) { + if (isset($zero_results[$r->id])) { + $r->value = $zero_results[$r->id]; + } + $sql = "INSERT INTO user_preference (`user`,`preference`,`value`) VALUES ('$user_id','$r->id','$r->value')"; + $insert_db = mysql_query($sql, dbh()); + } + } // while preferences + + } // old_fix_preferences + /*! @function delete_stats diff --git a/modules/init.php b/modules/init.php index a98b9045..458b75bd 100644 --- a/modules/init.php +++ b/modules/init.php @@ -83,7 +83,7 @@ if (!$results['conf']['allow_stream_playback']) { } $results['conf']['web_path'] = $http_type . $_SERVER['HTTP_HOST'] . $results['conf']['web_path']; -$results['conf']['version'] = '3.3.2-Alpha1 (Build 003)'; +$results['conf']['version'] = '3.3.2-Alpha1 (Build 004)'; $results['conf']['catalog_file_pattern']= 'mp3|mpc|m4p|m4a|mp4|aac|ogg|rm|wma|asf|flac|spx'; $results['libglue']['local_table'] = 'session'; $results['libglue']['local_sid'] = 'id'; |