function storeDatabaseValue($name, $value, $triggers = true) { global $_CB_framework, $_PLUGINS; if ($this->id && isset($this->{$name})) { $ui = $_CB_framework->getUi(); $user = new moscomprofilerUser($this->_db); $oldUserComplete = new moscomprofilerUser($this->_db); foreach (array_keys(get_object_vars($this)) as $k) { if (substr($k, 0, 1) != '_') { $user->{$k} = $this->{$k}; $oldUserComplete->{$k} = $this->{$k}; } } if ($name != 'password') { $user->password = null; } // In case of Password, save cleartext value for the onAfter event: $currentvalue = $user->{$name}; if ($triggers) { if ($ui == 1) { $_PLUGINS->trigger('onBeforeUserUpdate', array(&$user, &$user, &$oldUserComplete, &$oldUserComplete)); } elseif ($ui == 2) { $_PLUGINS->trigger('onBeforeUpdateUser', array(&$user, &$user, &$oldUserComplete)); } } // In case of Password, hashed value: $user->{$name} = $value; $return = $user->store(); if ($name == 'password') { // In case of Password, cleartext value for the onAfter event: $user->{$name} = $currentvalue; } if ($triggers) { if ($return) { if ($ui == 1) { $_PLUGINS->trigger('onAfterUserUpdate', array(&$user, &$user, $oldUserComplete)); } elseif ($ui == 2) { $_PLUGINS->trigger('onAfterUpdateUser', array(&$user, &$user, $oldUserComplete)); } } } // Check if error is present in temporary user object: $error = $user->getError(); if ($error) { // Pass error to current user object so can be output properly: $this->_error = $error; } unset($user, $oldUserComplete); return $return; } return false; }