summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2005-07-11 05:11:26 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2005-07-11 05:11:26 +0000
commit53028c86faa8039a87bbdcabef6bc7441757ac18 (patch)
tree6f7adae20cda274e5134cc55033993350a25281f /lib
parentdbd8fa45fb7a959d44e6d7a2ea8293cfa400fe05 (diff)
downloadampache-53028c86faa8039a87bbdcabef6bc7441757ac18.tar.gz
ampache-53028c86faa8039a87bbdcabef6bc7441757ac18.tar.bz2
ampache-53028c86faa8039a87bbdcabef6bc7441757ac18.zip
fixed update
Diffstat (limited to 'lib')
-rw-r--r--lib/class/update.class.php40
-rw-r--r--lib/class/user.class.php73
2 files changed, 90 insertions, 23 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