/** * Проверяет корректность исходных данных для create и update * устанавливает дополнительные необходимые значения * При наличии ошибок, создаёт сообщения. * @param array $post * @return array|boolean */ private function isValid($post) { if (is_array($post) && count($post) > 0) { $isValid = true; foreach ($post as $name => $val) { switch (trim($name)) { case 'title': if (strlen($post['title']) < 1) { \helpers\Msg::error('no_title'); $isValid = false; break 2; } break; case 'deleted': if ($post['deleted'] != 0) { $post['deleted'] = 1; } break; case 'slug': if (empty($val)) { // slug пуст // Если не указан ID родителя или он не равен 0. if (!isset($post['pid']) || $post['pid'] != 0) { if (isset($post['id']) && $this->is_tree) { // Если редактируем элмент и это древовидный тип контента $this->mapper->load(array('id=?', $post['id'])); if ($this->mapper->pid != 0) { // Если он не в корне - ошибка // Если правим не корневой элемент \helpers\Msg::error('slug.empty'); $isValid = false; } elseif ($this->mapper->pid == 0) { // Если в корне, надо проверить кол-во корневых $cnt = $this->mapper->count('pid=0'); if ($cnt > 1) { // Если в корне более обного объекта, slug не может быть пустым \helpers\Msg::error('slug.empty'); $isValid = false; } } } else { \helpers\Msg::error('slug.empty'); $isValid = false; } } break 2; } elseif (!\helpers\Tools::isCorrectSlug($val)) { \helpers\Msg::error('slug.incorrect'); $isValid = false; break 2; } elseif (!$this->isUniqueSlug($val, $post)) { \helpers\Msg::error('slug.not_unique'); $isValid = false; break 2; } break; case 'priority': $post['priority'] = (int) $val; break; case 'pid': if ($this->is_tree) { if (isset($post['id'])) { // Если есть id, значит пытаемся сменить родителя $this->mapper->load(array('id=?', $post['id'])); if (!$this->mapper->dry() && !$this->isUniqueSlug($this->mapper->slug, $post)) { \helpers\Msg::error('slug.not_unique_cannot_move'); $isValid = false; break 2; } } elseif ($val != 0) { // Проверяем существование объекта, который указан родительским $this->mapper->load(array('id=?', $val)); if ($this->mapper->dry()) { \helpers\Msg::error('parent_not_found'); $isValid = false; break 2; } } } break; } } } else { $isValid = false; } return $isValid ? $post : false; }
public function zvonok() { parent::show(); $f3->set('html.head_title', 'Заказ обратного звонка'); if (!$f3->devoid('POST')) { $f3->set('html.page_title', 'Заказ обратного звонка'); if ($this->isValidRequest($f3->get('POST'))) { $f3->set('html.page_title', 'Спасибо за обращение! Ожидайте звонка.'); $f3->scrub($_POST); // Отправляем запрос на почту $f3->copy('POST', 'msg'); $msg = \Template::instance()->render('fsled.ru/blocks/zvonok/mail.html'); $subj = $f3->get('i18n.mailrequest.new') . ' ' . $f3->get('SITE_URL'); if (\helpers\Tools::mail($f3->get('email.admin'), $subj, $msg, $f3->get('email.noreply'))) { \helpers\Msg::success('mailrequest.ok'); $f3->set('content', $msg); return; } } \helpers\Msg::success('mailrequest.error'); } $this->addForm(); }
public function restoreGeneratedPassword($email) { $f3 = \Base::instance(); $f3->scrub($email); $user =& $this->mapper; $user->load(array('email=?', $email)); if ($user->dry()) { \helpers\Msg::warning('user.not.found'); return false; } $generator = new \helpers\PassMan(); $pw = $generator->generate(); \helpers\Msg::success($pw); $user->password = md5($pw); $res = $user->save(); $f3->set('msg', array('email' => $email, 'password' => $pw)); $msg = \Template::instance()->render('user/mail/restore.html'); $subj = $f3->get('i18n.user.restore.mailsubject') . ' ' . $f3->get('SITE_URL'); if (\helpers\Tools::mail($email, $subj, $msg, $f3->get('email.noreply'))) { \helpers\Msg::info('user.restore.mailsent'); } else { \helpers\Msg::warning('user.restore.mailerror'); } $f3->clear('msg'); \helpers\Msg::success('user.restore.ok'); return $user->cast(); }