/** * Добавление новой ссылки (ajax): */ public function addAjaxAction(Application $application) { if (ControlModel::isLiveCaptcha()) { return array('isValid' => 'captcha'); } ControlModel::checkContent($_POST['description']); $validator = new ValidatorHelper($_POST); $validator->assertExists('link', 'Не введена ссылка'); $validator->assertRegexp('link', ValidatorHelper::URL_REGEXP, 'Ссылка введена неверно'); if ($validator->fieldValid('link')) { $validator->assertTrue('link', Blog_BlogOnlineModel::CheckCategory($_POST['link']) !== false, 'Данная ссылка не может участвовать в ленте'); } if ($validator->fieldValid('link')) { $validator->assertTrue('link', Blog_BlogOnlineModel::CheckLinkPosted($_POST['link']) != true, 'Ссылка уже участвует в ленте'); } $validator->assertTrue('timeout', ControlModel::getLiveInterval() == 0, 'Таймаут ' . TemplateHelper::ending(ControlModel::getLiveInterval(), 'секунда', 'секунды', 'секунд')); $validator->assertTrue('link', !ControlModel::CheckLinkfilter($params['link']), 'Запрещенная ссылка'); $validator->assertExists('description', 'Не введено описание'); $validator->assertLength('description', 100, 'Описание длиннее 100 символов'); if ($validator->isValid()) { Blog_BlogOnlineModel::CreateLink($_POST); return true; } return array('isValid' => $validator->isValid(), 'validationResults' => $validator->getValidationResults()); }
/** * Действие добавления комментария (ajax): */ public function addCommentAjaxAction(Application $application) { $session = Session::getInstance(); if ($session->isJustCreated()) { return false; } $validator = new ValidatorHelper($_POST); $validator->assertExists('text', 'Не введен текст комментария'); $validator->assertExists('post_id', 'Не указан идентификатор поста'); $validator->assertLength('text', 2048, 'Текст комментария слишком длинный'); $validator->assertNotExists('email', 'Заполнено лишнее поле'); $text_test = ControlModel::checkContent($_POST['text']); if (ControlModel::isCommentCaptcha()) { return array('captcha' => true); } $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()); } return array('isValid' => $validator->isValid(), 'validationResults' => $validator->getValidationResults()); }