active = User::get ("id"); $this->status = $this->status (); } //*************************** // GETTER / SETTER //*************************** public function __get ($name) { switch ($name) { case "values": return $this->status['values']; case "languages": return I18n::getLanguages (User::get ("is_admin")); default: return $this->$name; } } public function __set ($name, $value) { } private function status () { $status['values'] = User::get (); $status['values']['password'] = ""; $status['values']['language'] = isset ($status['values']['language']) ? $status['values']['language'] : I18n::lc (); $status['messages'] = array (); $status['quickbar']['disabledButtons']['save'] = true; if (!($undo = History::getFirstUndo ($this->active, "user", false)) || $undo['user_id'] != $this->active) { $status['quickbar']['disabledButtons']['undo'] = true; } if (!($redo = History::getFirstRedo ($this->active, "user", false)) || $redo['user_id'] != $this->active) { $status['quickbar']['disabledButtons']['redo'] = true; } $status['statusbar']['value'] = ""; // Elementname, User, letzte Änderung,... if (User::get ("is_admin")) { $status['statusbar']['value'] .= " #{$this->active}"; } return $status; } public function value ($name) { if (isset ($this->status['values'][$name])) { return $this->status['values'][$name]; } else { return ""; } } public function save ($values) { if (!$this->active) { return false; } if (isset ($values['password'])) { if (strlen ($values['password']) < 6) { unset ($values['password']); $this->status['messages'][] = array ('type' => "error", 'text' => $this->message ("password is to short")); return false; } if (!preg_match ("/[a-zA-Z](\W|\d)|(\W|\d)[a-zA-Z]/", $values['password'])) { unset ($values['password']); $this->status['messages'][] = array ('type' => "error", 'text' => $this->message ("password must contain a-Z and 0-9 or special characters")); return false; } if (!isset ($values['password2']) || $values['password'] != $values['password2']) { unset ($values['password']); $this->status['messages'][] = array ('type' => "error", 'text' => $this->message ("passwords not equal")); return false; } } if (isset ($values['password2'])) { unset ($values['password2']); } if (User::set ($this->active, $values) == -1) { $this->status['messages'][] = array ('type' => "error", 'text' => $this->message ("username already exists")); return false; } return true; } public function undo () { if ($undo = History::getFirstUndo ($this->active, "user", false)) { History::restore ($undo['id']); User::loadData (); $this->status = $this->status (); } } public function redo () { if ($undo = History::getFirstRedo ($this->active, "user", false)) { History::restore ($undo['id']); User::loadData (); $this->status = $this->status (); } } public function message ($text) { return I18n::tr ("edit", "user_settings/$text", $text); } // Wandelt das gegebene Array/Text in eine Form um, die direkt einer JavaScript Variablen zugewiesen werden kann public function toJavaScript ($value) { if (is_array ($value)) { $values = array (); foreach ($value as $key => $val) { $values[] = "'$key':".$this->toJavaScript ($val); } return "{".implode (",", $values)."}"; } else { $value = Database::escape ($value); return ($value===true) ? "true" : (($value===false) ? "false" : "'$value'"); } } } ?>