コード例 #1
0
ファイル: chat.controller.php プロジェクト: postman0/1chan
 /**
  * Добавление комнаты чата:
  */
 public function addAction(Application $application, Template $template)
 {
     $session = Session::getInstance();
     $this['form_errors'] = array();
     $this['blog_form'] = array();
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $validator = new ValidatorHelper($_POST);
         $validator->assertExists('captcha_key', 'Введите капчу');
         if ($_POST['captcha_key']) {
             $validator->assertEqual('captcha', $session->instantGet('captcha_' . $_POST['captcha_key'], false), 'Капча введена неверно');
         }
         $validator->assertExists('title', 'Не введен заголовок');
         $validator->assertLength('title', 25, 'Заголовок слишком длинный');
         $validator->assertExists('description', 'Не введен вводный текст');
         $validator->assertLength('description', 75, 'Вводный текст слишком длинный');
         $validator->assertExists('controlword', 'Не введен контрольный пароль');
         if ($validator->fieldValid('title')) {
             $validator->assertLengthMore('title', 3, 'Заголовок слишком короткий');
         }
         if ($validator->fieldValid('description')) {
             $validator->assertLengthMore('description', 5, 'Описание слишком короткое');
         }
         if ($validator->fieldValid('controlword')) {
             $validator->assertLengthMore('controlword', 3, 'Контрольный пароль слишком короткий');
         }
         $validator->assertNotExists('email', 'Заполнено лишнее поле');
         if ($validator->isValid()) {
             $id = Chat_ChatRoomsModel::CreateRoom($_POST);
             $template->headerSeeOther('http://' . TemplateHelper::getSiteUrl() . '/chat/' . $id . '/');
             return false;
         }
         $this['form_errors'] = $validator->getValidationResults();
         $this['blog_form'] = $_POST;
     }
     $key = 'chat';
     $template->setParameter('captcha_key', $key);
     $session->instantSet('captcha_' . $key, true);
     $template->setParameter('title', 'Добавление комнаты чата');
     $template->setParameter('section', 'add');
     return true;
 }
コード例 #2
0
ファイル: blog.controller.php プロジェクト: postman0/1chan
 /**
  * Действие добавления комментария (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());
 }
コード例 #3
0
ファイル: board.controller.php プロジェクト: postman0/1chan
 /**
  * Создание поста (форма ajax):
  */
 public function createPostAjaxFormAction(Application $application, Template $template)
 {
     $board = new Board_BoardModel($_GET['board']);
     $session = Session::getInstance();
     if ($session->isJustCreated()) {
         return false;
     }
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $validator = new ValidatorHelper($_POST);
         if (!array_key_exists('upload', $_FILES) || $_FILES['upload']['error'] == 4) {
             $validator->assertExists('text', $_GET['board'] != 'int' ? 'Не введен текст' : 'Please enter the message');
         }
         $validator->assertLength('text', 2048, $_GET['board'] != 'int' ? 'Текст слишком длинный' : 'Post\'s text is too long');
         $validator->assertNotExists('email', $_GET['board'] != 'int' ? 'Заполнено лишнее поле' : 'Spam omitted');
         $validator->assertTrue('timeout', ControlModel::getBoardPostInterval() == 0, $_GET['board'] != 'int' ? 'Таймаут ' . TemplateHelper::ending(ControlModel::getBoardPostInterval(), 'секунда', 'секунды', 'секунд') : ControlModel::getBoardPostInterval() . ' seconds timeout');
         if ($validator->fieldValid('timeout')) {
             ControlModel::checkBoardPost($_POST['text']);
         }
         if (ControlModel::isCommentCaptcha()) {
             $validator->assertLengthMore('captcha', 1, $_GET['board'] != 'int' ? 'Не введена капча' : 'Please enter the Captcha code');
             if ($validator->fieldValid('captcha')) {
                 $validator->assertEqual('captcha', $session->instantGet('captcha_board_comment', false), $_GET['board'] != 'int' ? 'Капча введена неверно' : 'Captcha code is incorrect');
             }
         }
         $validator->assertTrue('text', ControlModel::checkSpam($_POST['text']), $_GET['board'] != 'int' ? 'Ваше сообщение определено, как спам' : 'Spam message was detected');
         $validator->assertTrue('upload', Board_UploadModel::checkUpload(), $_GET['board'] != 'int' ? 'Ошибка загрузки изображения' : 'File upload error');
         $session->instantSet('captcha_board_comment', true);
         if ($validator->isValid()) {
             $id = $board->createPost($_POST['parent_id'], $_POST);
             $session->persistenceSet('captcha_mode', false);
             $session->persistenceSet('captcha_mode_length', @$settings['captcha_length']);
             $template->renderJSONP('comment_callback', array('sucess' => true, 'id' => $id));
             return false;
         }
         $template->renderJSONP('comment_callback', array('success' => false, 'errors' => $validator->getValidationResults()));
     }
     return false;
 }