diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2005-07-09 20:02:35 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2005-07-09 20:02:35 +0000 |
commit | 89146608f995fb4b9629c6915ec53a286469ffa7 (patch) | |
tree | 91c0933f9e1af63d9189bd3d3eb930334edfeb36 /lib/class/user.class.php | |
parent | 17ff1d5f0f60e29cf12509be663c6f7b2c97893a (diff) | |
download | ampache-89146608f995fb4b9629c6915ec53a286469ffa7.tar.gz ampache-89146608f995fb4b9629c6915ec53a286469ffa7.tar.bz2 ampache-89146608f995fb4b9629c6915ec53a286469ffa7.zip |
fixed admin preferences
Diffstat (limited to 'lib/class/user.class.php')
-rw-r--r-- | lib/class/user.class.php | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/lib/class/user.class.php b/lib/class/user.class.php index 70271e41..2201c35e 100644 --- a/lib/class/user.class.php +++ b/lib/class/user.class.php @@ -79,10 +79,14 @@ class User { @discussion gets the prefs for this specific user and returns them as an array */ - function get_preferences() { + function get_preferences($user_id=0) { + + if (!$user_id) { + $user_id = $this->username; + } $sql = "SELECT preferences.name, preferences.description, preferences.type, user_preference.value FROM preferences,user_preference " . - "WHERE user_preference.user='$this->username' AND user_preference.preference=preferences.id AND preferences.type='user'"; + "WHERE user_preference.user='$user_id' AND user_preference.preference=preferences.id AND preferences.type='user'"; $db_results = mysql_query($sql, dbh()); while ($r = mysql_fetch_object($db_results)) { @@ -150,6 +154,14 @@ class User { $data->f_name = $data->link; $items[] = $data; } + /* If it's a genre */ + elseif ($type == 'genre') { + $data = new Genre($r->object_id); + $data->count = $r->count; + $data->format_genre(); + $data->f_name = $data->link; + $items[] = $data; + } } // end while @@ -503,22 +515,21 @@ class User { } // format_favorites - /*! + /** * fix_preferences * this makes sure that the specified user * has all the correct preferences. This function * should be run whenever a system preference is run * it's a cop out... FIXME! * @todo Fix it so this isn't a hack - * @pacakge User + * @package User * @catagory Class */ - function fix_preferences($user_id = 0) { - + function fix_preferences($user_id=0) { + if (!$user_id) { $user_id = $this->username; } - /* Get All Preferences */ $sql = "SELECT * FROM user_preference WHERE user='$user_id'"; $db_results = mysql_query($sql, dbh()); @@ -539,7 +550,7 @@ class User { If we aren't the 0 user before we continue then grab the 0 user's values */ - if ($user_id != '0') { + 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'"; $db_results = mysql_query($sql, dbh()); @@ -550,7 +561,7 @@ class User { $sql = "SELECT * FROM preferences"; - if ($user_id != '0') { + if ($user_id != '-1') { $sql .= " WHERE type='user'"; } $db_results = mysql_query($sql, dbh()); @@ -568,6 +579,23 @@ class User { } } // while preferences + /* Let's also clean out any preferences garbage left over */ + $sql = "SELECT DISTINCT(user_preference.user) FROM user_preference " . + "LEFT JOIN user ON user_preference.user = user.username " . + "WHERE user_preference.user!='-1' AND user.username IS NULL"; + $db_results = mysql_query($sql, dbh()); + + $results = array(); + + while ($r = mysql_fetch_assoc($db_results)) { + $results[] = $r['user']; + } + + foreach ($results as $data) { + $sql = "DELETE FROM user_preference WHERE user='$data'"; + $db_results = mysql_query($sql, dbh()); + } + } // fix_preferences |