Example #1
0
 /**
  * Проверяет корректность исходных данных для 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;
 }
Example #2
0
 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();
 }
Example #3
0
 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();
 }