/**
  * Modify user preferences
  *
  * @param string Option name
  * @param string Option value
  * @param int    Optional user identifier
  * @param string Optional value type (bool, int, string)
  */
 public static function mod_pref($name, $value, $userid = null, $type = 'string')
 {
     $db = self::db();
     if ($userid) {
         $query = '`user_id` = ' . intval($userid);
     } else {
         $query = '1=1';
     }
     $type = strtolower($type);
     if ($type == 'bool' || $type == 'boolean') {
         $value = rcube_utils::get_boolean($value);
     } else {
         if ($type == 'int' || $type == 'integer') {
             $value = (int) $value;
         }
     }
     // iterate over all users
     $sql_result = $db->query("SELECT * FROM " . $db->table_name('users', true) . " WHERE {$query}");
     while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
         echo "Updating prefs for user " . $sql_arr['user_id'] . "...";
         $user = new rcube_user($sql_arr['user_id'], $sql_arr);
         $prefs = $old_prefs = $user->get_prefs();
         $prefs[$name] = $value;
         if ($prefs != $old_prefs) {
             $user->save_prefs($prefs, true);
             echo "saved.\n";
         } else {
             echo "nothing changed.\n";
         }
     }
 }
Exemple #2
0
 /**
  * Setter for system user object
  *
  * @param rcube_user Current user instance
  */
 public function set_user($user)
 {
     if (is_object($user)) {
         $this->user = $user;
         $GLOBALS['USER'] = $this->user;
         // overwrite config with user preferences
         $this->config->set_user_prefs((array) $this->user->get_prefs());
     }
     $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language', $_SESSION['language']));
     // set localization
     setlocale(LC_ALL, $_SESSION['language'] . '.utf8', 'en_US.utf8');
     // workaround for http://bugs.php.net/bug.php?id=18556
     if (in_array($_SESSION['language'], array('tr_TR', 'ku', 'az_AZ'))) {
         setlocale(LC_CTYPE, 'en_US' . '.utf8');
     }
 }
Exemple #3
0
 /**
  * Setter for system user object
  *
  * @param rcube_user Current user instance
  */
 public function set_user($user)
 {
     if (is_object($user)) {
         $this->user = $user;
         // overwrite config with user preferences
         $this->config->set_user_prefs((array) $this->user->get_prefs());
     }
 }