/** * Save the user instance in database * @return Boolean true if successfully saved, false otherwise */ public function save() { // Si l'utilisateur existe, on le met à jour if ($this->ok()) { // Mise à jour de l'utilisateur $user = new query(); $user->update('user'); foreach ($this->field as $key => $value) { switch ($key) { case "id": case "login": // On ne modifie jamais l'ID de l'utilisateur et on enregistre pas le temps de mise à jour de la session s'il y en a une. break; default: // On modifie la ligne $user->set($key, trim($value)); break; } } $user->where('id', '=', $this->get('id')); $user->exec(); //Mise à jour des options foreach ($this->create as $create) { $query = new query(); $query->insert('user_option')->set('key', $create)->set('value', $this->option[$create])->set('owner', $this->get('id'))->exec(); } foreach ($this->change as $change) { $query = new query(); $query->update('user_option')->set('value', $this->option[$change])->where('owner', '=', $this->get('id'))->where('key', '=', $change)->exec(); } return true; // Si l'utilisateur n'existe pas, impossible de le mettre à jour, on retourne une erreur. } else { $user = new query(); $user->insert('user')->set('username', $this->get('username')); $id = $user->exec(); $this->set('id', $id); $this->ok = true; $this->save(); return true; } }
/** * Saves an instantiated object to its respective table as a record. * * @return boolean Whether or not object could be saved. */ public function saveObject () { try { # Validation bit $validate = new validate(metaclass::$db); $validate->exec($this); if (! $validate->valid) { $this->invalid = $validate->invalid; return false; } else { if (! metaclass::checkTable($this)) { metaclass::createTable($this->table, $this->definitions); } if (janitor::notNull($this->id)) { # Updating existing row, editing object. foreach ($this->definitions as $k => $v) { $queryStatements[$k] = janitor::cleanData($this->properties[$k], 'sql'); } $query = new query(); $query->update($this->table)->set($queryStatements)->where('id', janitor::cleanData($this->id)); if (! metaclass::$db->query($query)) { return false; } } else { # Inserting new row, creating object. foreach ($this->properties as $k => $v) { $queryFields[] = $k; $queryData[] = janitor::cleanData($v, 'sql'); } $query = new query(); $query->insert($this->table, $queryFields)->values($queryData); if (! metaclass::$db->query($query)) { return false; } } return true; } } catch (Exception $e) { trigger_error($e->getMessage(), E_USER_ERROR); } }