/** * Действие добавление комментария: */ 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; }
/** * Управление настройками: */ 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; }