$id = (int) Text::get_get('id'); // Основная переменная $data = array(); // Массив ошибок $errors = array('all' => false); // Получение информации о записи $data = $forms->getAdminEditedRow($id); if ($id == 0) { // Получение позиции для новой записи $pos = $forms->getPosition($forms->getTable(), 'position'); $data['position']['value'] = $pos + 1; } if (Text::get_post('send') != '') { if (isset($_POST['date_post'])) { $date_post = Text::get_post('date_post'); $data['date_post']['value'] = getTimestampFromCalendar($date_post['date'], $date_post['hour'], $date_post['minute']); } if ($id == 0) { // Добавление записи в таблицу $errors = $forms->insertSimpleTable(); } else { // Редактирование записи $errors = $forms->editSimpleTable($id); } // Редирект if (!is_array($errors) or $errors['all'] === false) { location($__return); } } // Получение данных для опыта работы $data['group_id']['relation'] = array('type' => 0, 'values' => $forms->getList(PREF . $action));
/** * Дополнительная оработка полей * @param $id * @return array * */ public function additionInputDataHandler($id = 0) { $errors = array('all' => false); // Обработка даты рождения if (isset($_POST['birthday'])) { $birthday = Text::get_post('birthday'); $_POST['birthday'] = getTimestampFromCalendar($birthday); } if ($id == 0) { // Проверяем наличие E-mail $email = Text::get_post('email'); if (Text::check_mail($email) == false) { $errors['all'] = $errors['email'] = true; } else { $result = $this->getRowByField('users', 'email', $email); if (isset($result['id'])) { $errors['all'] = $errors['email2'] = true; } } // Проверяем пароль $pass = Text::get_post('pass'); $pass_repeat = Text::get_post('repass'); if (empty($pass)) { $errors['all'] = $errors['pass'] = true; } elseif (strlen($pass) < 6) { $errors['all'] = $errors['pass3'] = true; } elseif (checkSimplePassword($pass) < 2) { $errors['all'] = $errors['pass4'] = true; } elseif ($pass != $pass_repeat) { $errors['all'] = $errors['pass2'] = true; } elseif ($pass != $pass_repeat) { $errors['all'] = $errors['pass2'] = true; } else { $_POST['pass'] = md5($pass); } // Необходимо указать либо срок беременности либо детей if (empty($_POST['pregnancy']) && $_POST['child'][0]['name'] == '') { $errors['all'] = $errors['pregnancy'] = true; $errors['all'] = $errors['child'] = true; } } else { // Проверяем наличие E-mail $email = Text::get_post('email'); if (Text::check_mail($email) == false) { $errors['all'] = $errors['email'] = true; } else { $result = $this->getRowByField('users', 'email', $email); if ($result['email'] != $_SESSION['siteuser']['email'] && isset($result['id'])) { $errors['all'] = $errors['email2'] = true; } } // Проверяем пароль $pass = Text::get_post('pass'); $pass_repeat = Text::get_post('repass'); if ($pass != '') { if (empty($pass)) { $errors['all'] = $errors['pass'] = true; } elseif (strlen($pass) < 6) { $errors['all'] = $errors['pass3'] = true; } elseif (checkSimplePassword($pass) < 2) { $errors['all'] = $errors['pass4'] = true; } elseif ($pass != $pass_repeat) { $errors['all'] = $errors['pass2'] = true; } else { $_POST['pass'] = md5($pass); } } else { $result = $this->getRow('users', $id); $_POST['pass'] = $result['pass']; } } // Обработка поля с детьми $_POST['child'] = serialize($_POST['child']); return $errors; }
/** * Редактирование данных в таблице * При успешном добавлении возвращает TRUE * При провале возвращает массив ошибок * @param string $table * @param int $id * @param array $data * @return mixed */ public function editRow($table, $id, $data = array()) { $error = array('all' => false); if (empty($data)) { $data = $this->base->postInputDataHandler($table); $error = $this->base->getErrors(); } $parent = (int) Text::get_post('parent'); if (isset($data['alias'])) { $check_alias = $this->base->checkAlias($table, $id, $data['alias'], $parent, 1); if ($check_alias == 1) { $error['all'] = $error['alias'] = true; } elseif ($check_alias == 2) { $error['all'] = $error['alias2'] = true; } } if (isset($data['date_post']) && is_array($data['date_post'])) { $data['date_post'] = getTimestampFromCalendar($data['date_post']['date'], $data['date_post']['hour'], $data['date_post']['minute']); } $data['user_edit'] = isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : 0; if (!isset($error['all']) || $error['all'] === false) { $this->base->editTableRow($table, $data, $id, $parent); return true; } $this->setErrors($error); return false; }