public function update($values, $prefix = '') { $id = $this->id; $options = array(); $called_class = get_called_class(); foreach ($called_class::$_properties as $k => $v) { if (isset($values[$prefix . $k]) && $values[$prefix . $k] !== '') { if ($v['type'] == 'int') { $values[$prefix . $k] = str_replace(',', '.', $values[$prefix . $k]); $values[$prefix . $k] = str_replace(' ', '', $values[$prefix . $k]); $options[$k] = $values[$prefix . $k]; } else { $options[$k] = htmlspecialchars($values[$prefix . $k], ENT_NOQUOTES, 'UTF-8'); } } elseif (isset($v['type']) && $v['type'] == 'bool' && !isset($values[$prefix . $k])) { $options[$k] = 0; } } // если пользователь гость и объявление подавалось через агенство - уберем is_owner if (User::isGuest() && $this->user_id > 0 && !isset($_SESSION['admin'])) { $options['is_owner'] = 0; } parent::update($id, $options); $this->_vals['id'] = $id; }