コード例 #1
0
ファイル: board.controller.php プロジェクト: postman0/1chan
 /**
  * Создание темы (форма ajax):
  */
 public function createAjaxFormAction(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);
         $validator->assertLength('title', 60, $_GET['board'] != 'int' ? 'Заголовок слишком длинный' : 'Title is too long');
         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('text', ControlModel::checkSpam($_POST['text']), $_GET['board'] != 'int' ? 'Ваше сообщение определено, как спам' : 'Spam message was detected');
         $validator->assertTrue('upload', Board_UploadModel::checkUpload(), $_GET['board'] != 'int' ? 'Изображение имеет неизвестный формат, либо превышает допустимый размер' : 'Unknown image type or file is too heavy to process');
         $validator->assertTrue('timeout', ControlModel::getBoardPostInterval() == 0, $_GET['board'] != 'int' ? 'Таймаут ' . TemplateHelper::ending(ControlModel::getBoardPostInterval(), 'секунда', 'секунды', 'секунд') : ControlModel::getBoardPostInterval() . ' seconds timeout');
         $validator->assertLengthMore('captcha', 1, $_GET['board'] != 'int' ? 'Не введена капча' : 'Please enter the Captcha code');
         if ($validator->fieldValid('captcha')) {
             $validator->assertEqual('captcha', $session->instantGet('captcha_board', false), $_GET['board'] != 'int' ? 'Капча введена неверно' : 'Captcha code is incorrect');
         }
         if ($validator->isValid()) {
             $id = $board->createThread($_POST);
             $template->renderJSONP('board_callback', array('sucess' => true, 'id' => $id));
             return false;
         }
         $session->instantSet('captcha_board', true);
         $template->renderJSONP('board_callback', array('success' => false, 'errors' => $validator->getValidationResults()));
         return false;
     }
     return false;
 }