Ejemplo n.º 1
0
 /**
  * Действие добавление комментария:
  */
 public function addCommentAction(Application $application, Template $template)
 {
     $session = Session::getInstance();
     $settings = ControlModel::GetSettings();
     if ($session->isJustCreated()) {
         return false;
     }
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $text_test = ControlModel::checkContent($_POST['text']);
         $validator = new ValidatorHelper($_POST);
         if (ControlModel::isCommentCaptcha()) {
             $validator->assertExists('captcha_key', 'Введите капчу');
             if ($_POST['captcha_key']) {
                 $validator->assertEqual('captcha', $session->instantGet('captcha_' . $_POST['captcha_key'], false), 'Капча введена неверно');
             }
         }
         $validator->assertExists('text', 'Не введен текст комментария');
         $validator->assertExists('post_id', 'Не указан идентификатор поста');
         $validator->assertLength('text', 2048, 'Текст комментария слишком длинный');
         $validator->assertNotExists('email', 'Заполнено лишнее поле');
         $validator->assertTrue('text', $text_test, 'Запрещенное слово из вордфильтра');
         $validator->assertTrue('timeout', ControlModel::getPostCommentInterval() == 0, 'Таймаут ' . TemplateHelper::ending(ControlModel::getPostCommentInterval(), 'секунда', 'секунды', 'секунд'));
         if ($validator->isValid()) {
             $id = Blog_BlogCommentsModel::CreateComment($_POST, true);
             $session->activeSet('last_visit_post_' . $_POST['post_id'], time());
             $session->persistenceSet('captcha_mode', false);
             $session->persistenceSet('captcha_mode_length', @$settings['captcha_length']);
             $template->headerSeeOther('http://' . TemplateHelper::getSiteUrl() . '/news/res/' . $_GET['post_id'] . '/#' . $id);
             return false;
         }
         $session->instantSet('comment_errors', $validator->getValidationResults());
         $session->instantSet('comment_form', $_POST);
         $template->headerSeeOther('http://' . TemplateHelper::getSiteUrl() . '/news/res/' . $_GET['post_id'] . '/#comment_form');
         return false;
     }
     $template->headerSeeOther('http://' . TemplateHelper::getSiteUrl() . '/news/');
     return false;
 }
Ejemplo n.º 2
0
 /**
  * Управление настройками:
  */
 public function blogSettingsAction(Application $application, Template $template)
 {
     $template->setParameter('menu', 'posts');
     $template->setParameter('submenu', 'settings');
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         ControlModel::SetSettings($_POST);
     }
     $this['settings'] = ControlModel::GetSettings();
     return true;
 }