From: Reini U. <ru...@us...> - 2004-03-27 13:59:31
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24851 Modified Files: WikiUserNew.php Log Message: pass init to pref subobject, so that it can avoid initial updates (email+notify), Index: WikiUserNew.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiUserNew.php,v retrieving revision 1.41 retrieving revision 1.42 diff -u -2 -b -p -d -r1.41 -r1.42 --- WikiUserNew.php 27 Mar 2004 13:39:58 -0000 1.41 +++ WikiUserNew.php 27 Mar 2004 13:48:23 -0000 1.42 @@ -2192,4 +2192,5 @@ extends _UserPreference */ function update ($value) { + if (!empty($this->_init)) return; $dbh = $GLOBALS['request']->getDbh(); $notify = $dbh->get('notify'); @@ -2260,18 +2261,4 @@ extends _UserPreference } - // stores the value as $this->$name, and not as $this->value (clever?) - function set ($name, $value) { - $new = $this->get($name); - if ($new and $name = 'email' and $new != $value) { - // don't update on init - $this->update($value); - } - if ($value != $this->default_value) { - $this->{$name} = $value; - } - else - unset($this->{$name}); - } - /** Side-effect on email changes: * Send a verification mail or for now just a notification email. @@ -2279,4 +2266,5 @@ extends _UserPreference */ function update ($value) { + if (!empty($this->_init)) return; $verified = $this->getraw('emailVerified'); if (!empty($value) and !$verified) { @@ -2443,5 +2431,7 @@ class UserPreferences return true; } - + /** + * use init to avoid update on set + */ function updatePrefs($prefs, $init = false) { $count = 0; @@ -2449,4 +2439,5 @@ class UserPreferences if (is_object($prefs)) { $type = 'emailVerified'; $obj =& $this->_prefs['email']; + if ($init) $obj->_init = $init; if ($obj->get($type) !== $prefs->get($type)) { $obj->set($type,$prefs->get($type)); @@ -2454,4 +2445,6 @@ class UserPreferences } foreach (array_keys($this->_prefs) as $type) { + $obj =& $this->_prefs[$type]; + if ($init) $obj->_init = $init; if ($this->_prefs[$type]->get($type) !== $prefs->get($type)) { $this->_prefs[$type]->set($type,$prefs->get($type)); @@ -2461,4 +2454,5 @@ class UserPreferences } elseif (is_array($prefs)) { $type = 'emailVerified'; $obj =& $this->_prefs['email']; + if ($init) $obj->_init = $init; if (isset($prefs[$type]) and $obj->get($type) !== $prefs[$type]) { $obj->set($type,$prefs[$type]); @@ -2467,4 +2461,5 @@ class UserPreferences foreach (array_keys($this->_prefs) as $type) { $obj =& $this->_prefs[$type]; + if ($init) $obj->_init = $init; if (isset($prefs[$type]) and $obj->get($type) != $prefs[$type]) { $obj->set($type,$prefs[$type]); @@ -2632,6 +2627,6 @@ extends UserPreferences // $Log$ -// Revision 1.41 2004/03/27 13:39:58 rurban -// fixed problem with unnecessary emailVerification mails on session_init +// Revision 1.42 2004/03/27 13:48:23 rurban +// pass init to pref subobject, so that it can avoid initial updates (email+notify), // // Revision 1.40 2004/03/25 22:54:31 rurban |