<div class="b-post-statistics"> Читают: <strong id="post_stats_reading"><?php echo $this->getParameter('total_read', 1); ?> </strong><?php if (!$post['closed']) { ?> | Отвечают: <strong id="post_stats_writing"><?php echo $this->getParameter('total_write', 0); ?> </strong><?php } ?> <span class="b-post-statistics_m-right"> Всего: <span id="post_stats_total"><?php echo TemplateHelper::ending($this->getParameter('total_unique', 1), 'просмотр', 'просмотра', 'просмотров'); ?> </span> </span> </div> <?php if (!$post['closed']) { ?> <form action="http://<?php echo TemplateHelper::getSiteUrl(); ?> /news/res/<?php echo $post['id']; ?> /add_comment/" method="post" id="comment_form">
} ?> " /> <img src="http://<?php echo TemplateHelper::getSiteUrl(); ?> /ico/key.gif" width="16" height="16" alt="" class="js-key-icon<?php if (empty($room['password'])) { ?> g-hidden<?php } ?> "/> </div> <div class="b-chat-rooms_b-room_b-info"> <em><?php echo TemplateHelper::ending(Chat_ChatRoomsModel::GetRoomOnline($room['room_id']), 'участник', 'участника', 'участников'); ?> </em> </div> <div class="b-chat-rooms_b-room_b-description"> <p><?php echo $room['description']; ?> </p> </div> </div> <?php } ?> </div>
<?php if (isset($room)) { ?> <div class="b-chat" id="room_<?php echo $room['room_id']; ?> "> <div class="b-chat_b-header"> <div class="b-chat_b-header_b-title js-room-title"><?php echo $room['title']; ?> </div> <div class="b-chat_b-header_b-statistics js-room-statistics"><?php $count = Chat_ChatRoomsModel::GetRoomOnline($room['room_id']); echo TemplateHelper::ending($count == 0 ? 1 : $count, 'участник', 'участника', 'участников'); ?> </div> </div> <div class="b-chat_b-messages g-clearfix"> <textarea id="template_message_password" style="display:none"> <div class="b-chat_b-message m-info"> <div class="b-chat_b-message_b-body"> <form action="" method="post" id="password_form"> <p> Для входа в комнату необходимо ввести пароль: <input type="text" class="js-room-password" value="" /> <input type="submit" value="Вход" /> </p> </form> </div> </div>
/** * Добавление новой ссылки (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()); }
/** * Создание поста (форма 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; }
<div class="l-comments-wrap"> <?php if ($post['count'] - 5 > 0) { ?> <div class="b-comments-load" id="board_<?php echo $post['board_id']; ?> _<?php echo $post['id']; ?> _thread_load"> <?php if (!$ENG) { ?> <span>Пропущено <?php echo TemplateHelper::ending($post['count'] - 5, 'ответ', 'ответа', 'ответов'); if ($post['count'] - 3 <= 44) { ?> . <a href="javascript://" class="js-thread-load" name="<?php echo $post['id']; ?> ">Загрузить</a><?php } ?> </span> <?php } else { ?> <span><?php echo $post['count'] - 5; ?>