Changeset 1632 in subversion
- Timestamp:
- Aug 7, 2008 3:02:07 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/include/rcube_user.php
r1599 r1632 6 6 | | 7 7 | This file is part of the RoundCube Webmail client | 8 | Copyright (C) 2005-200 7, RoundCube Dev. - Switzerland |8 | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland | 9 9 | Licensed under the GNU GPL | 10 10 | | … … 99 99 * Write the given user prefs to the user's record 100 100 * 101 * @param mixedUser prefs to save101 * @param array User prefs to save 102 102 * @return boolean True on success, False on failure 103 103 */ … … 106 106 if (!$this->ID) 107 107 return false; 108 109 $config = rcmail::get_instance()->config; 110 $old_prefs = (array)$this->get_prefs(); 108 111 109 112 // merge (partial) prefs array with existing settings 110 $a_user_prefs += (array)$this->get_prefs(); 111 unset($a_user_prefs['language']); 112 113 $save_prefs = $a_user_prefs + $old_prefs; 114 unset($save_prefs['language']); 115 116 // don't save prefs with default values if they haven't been changed yet 117 foreach ($a_user_prefs as $key => $value) { 118 if (!isset($old_prefs[$key]) && ($value == $config->get($key))) 119 unset($save_prefs[$key]); 120 } 121 113 122 $this->db->query( 114 123 "UPDATE ".get_table_name('users')." … … 116 125 language=? 117 126 WHERE user_id=?", 118 serialize($ a_user_prefs),127 serialize($save_prefs), 119 128 $_SESSION['language'], 120 129 $this->ID); 121 130 122 131 $this->language = $_SESSION['language']; 123 if ($this->db->affected_rows()) 124 { 125 rcmail::get_instance()->config->merge($a_user_prefs); 132 if ($this->db->affected_rows()) { 133 $config->merge($a_user_prefs); 126 134 return true; 127 135 }
Note: See TracChangeset
for help on using the changeset viewer.
