/** * (non-PHPdoc) * @see \Simplify\Form\Repository::update() */ public function update(&$data) { $table = $this->table; $pk = $this->pk; $sort = $this->sortColumn; if (isset($data[$sort])) { $id = $data[$pk]; $old = \Simplify::db()->query()->from($table)->select("{$sort}")->where($this->filter())->where("{$pk} = ?")->execute($id)->fetchOne(); $new = $data[$sort]; if ($new > $old) { \Simplify::db()->query("UPDATE {$table} SET {$sort} = {$sort} - 1 WHERE {$this->filter()} AND {$sort} BETWEEN {$old} AND {$new}")->execute(); } elseif ($new < $old) { \Simplify::db()->query("UPDATE {$table} SET {$sort} = {$sort} + 1 WHERE {$this->filter()} AND {$sort} BETWEEN {$new} AND {$old}")->execute(); } } return parent::update($data); }
/** * (non-PHPdoc) * @see \Simplify\Form\Repository::update() */ public function update(&$data) { $row = $this->find($data[$this->pk]); if ($row[$this->parent] != $data[$this->parent]) { $this->mptt()->move($data[$this->pk], $data[$this->parent], \Simplify\Db\MPTT::LAST_CHILD); } return parent::update($data); }