Example #1
0
 /**
  * Добавление поста в базу данных:
  */
 public static function CreatePost($params, $safeMode = true)
 {
     $session = Session::getInstance();
     $cache = KVS::getInstance();
     $id = $cache->incr('Blog_BlogPostsModel', null, 'nextPostId');
     $text_original = $params['text'];
     $params['title'] = TexyHelper::typo($params['title']);
     $params['text'] = TexyHelper::markup($params['text'], !$session->isAdminSession());
     $params['text_full'] = TexyHelper::markup($params['text_full'], !$session->isAdminSession());
     $record = array('id' => $id, 'ip' => $_SERVER['REMOTE_ADDR'], 'category' => 0, 'created_at' => time(), 'updated_at' => time(), 'link' => htmlspecialchars($params['link']), 'title' => $params['title'], 'text' => $params['text'], 'text_full' => $params['text_full']);
     if (HomeBoardHelper::existsBoard($params['homeboard'])) {
         $record['author'] = $params['homeboard'];
     }
     if (!$safeMode) {
         $record = array_merge($record, array('hidden' => (bool) @$params['hidden'], 'pinned' => (bool) @$params['pinned'], 'rated' => (bool) @$params['rated'], 'closed' => (bool) @$params['closed'], 'rateable' => (bool) @$params['rateable'], 'bumpable' => (bool) @$params['bumpable'], 'special_comment' => @$params['special_comment']));
     }
     if (array_key_exists('category', $params) && !empty($params['category'])) {
         $category = Blog_BlogCategoryModel::GetCategoryByCode($params['category']);
         if ($category) {
             Blog_BlogCategoryModel::CountCategory($category['id'], true);
             $record['category'] = $category['id'];
         }
     }
     $dbh = PDOQuery::getInstance();
     $dbh->insert('1chan_post', $record);
     $cache->set(__CLASS__, $id, 'raters', serialize(array($_SERVER['REMOTE_ADDR'])));
     $record['text_original'] = $text_original;
     EventModel::getInstance()->Broadcast('add_post', $record);
     return $id;
 }
Example #2
0
 /**
  * Добавление комментария:
  */
 public static function CreateComment($params, $safeMode = true)
 {
     if (Blog_BlogPostsModel::PostExists($params['post_id'])) {
         $session = Session::getInstance();
         $post = Blog_BlogPostsModel::GetPost($params['post_id']);
         // Запрет комментирования закрытых тредов:
         if ($post['closed'] == true) {
             return false;
         }
         $cache = KVS::getInstance();
         $id = $cache->incr('Blog_BlogPostsModel', null, 'nextPostId');
         $text_original = $params['text'];
         // Обработка:
         $params['text'] = TexyHelper::markup($params['text'], !$session->isAdminSession());
         $record = array('id' => $id, 'post_id' => $params['post_id'], 'ip' => $_SERVER['REMOTE_ADDR'], 'created_at' => time(), 'text' => $params['text']);
         if (HomeBoardHelper::existsBoard($params['homeboard'])) {
             $record['author'] = $params['homeboard'];
         }
         if (!$safeMode) {
             $record = array_merge($record, array('special_comment' => @$params['special_comment']));
         }
         $dbh = PDOQuery::getInstance();
         $dbh->insert('1chan_comment', $record);
         if ($post['bumpable'] && time() - $post['created_at'] < 60 * 60 * 24 * 30) {
             $dbh->update_insecure('1chan_post', array('updated_at' => time(), 'comments' => '`comments`+1'), 'id = ' . $dbh->q($params['post_id']), 1, true);
         } else {
             $dbh->update_insecure('1chan_post', array('comments' => '`comments`+1'), 'id = ' . $dbh->q($params['post_id']), 1, true);
         }
         $record['text_original'] = $text_original;
         EventModel::getInstance()->Broadcast('add_comment', $record);
         /**
          * Сохраняем в кеше последние комментарии:
          */
         $record['post_title'] = $post['title'];
         $cache->listAdd(__CLASS__, null, 'lastComments', $id);
         $cache->listTrim(__CLASS__, null, 'lastComments', 0, 31);
         return $id;
     }
     return false;
 }
Example #3
0
 /**
  * Действие просмотра поста комментария:
  */
 public function getLastCommentsAjaxAction(Application $application)
 {
     $cache = KVS::getInstance();
     if ($cache->exists(__CLASS__, $_GET['id'], 'preview')) {
         return unserialize($cache->get(__CLASS__, $_GET['id'], 'preview'));
     }
     $comment = Blog_BlogCommentsModel::GetComment($_GET['id']);
     $result = false;
     if ($comment) {
         $post = Blog_BlogPostsModel::GetPost($comment['post_id']);
         $comment['post_title'] = $post['title'];
         $comment['created_at'] = TemplateHelper::date('d M Y @ H:i', $comment['created_at']);
         $comment['author'] = array($comment['author'], HomeBoardHelper::getBoard($comment['author']));
         unset($comment['ip']);
         $result = $comment;
     } elseif ($post = Blog_BlogPostsModel::GetPost($_GET['id'])) {
         $result = array('id' => $post['id'], 'post_id' => $post['id'], 'post_title' => $post['title'], 'text' => $post['text'], 'author' => array($post['author'], HomeBoardHelper::getBoard($post['author'])), 'created_at' => TemplateHelper::date('d M Y @ H:i', $post['created_at']), 'post_preview' => true);
     }
     $cache->set(__CLASS__, $_GET['id'], 'preview', serialize($result));
     $cache->expire(__CLASS__, $_GET['id'], 'preview', 60 * 60);
     return $result;
 }
Example #4
0
							<textarea id="comment_form_text" name="text" rows="5"><?php 
        echo @htmlspecialchars($blog_form['text']);
        ?>
</textarea>
							<input type="submit" value="Отправить" />

							<span class="b-homeboard-form">
								<img src="http://<?php 
        echo TemplateHelper::getSiteUrl();
        ?>
/ico/homeboards/anonymous.png" class="b-homeboard-form_icon js-homeboard-icon" /> 
								<a href="javascript://" class="b-homeboard-form_link js-homeboard-link g-dynamic">Сменить</a>
								<div class="b-homeboard-form_select js-homeboard-select g-hidden">
								<?php 
        foreach (HomeBoardHelper::getBoards() as $board => $data) {
            ?>
									<a href="javascript://" name="<?php 
            echo $board;
            ?>
" title="<?php 
            echo $data[1];
            ?>
" class="js-homeboard-select-link">
										<img src="http://<?php 
            echo TemplateHelper::getSiteUrl();
            ?>
/ico/homeboards/<?php 
            echo $data[0];
            ?>
" class="b-homeboard-form_icon" />
Example #5
0
							<span>
								<a href="http://<?php 
        echo TemplateHelper::getSiteUrl();
        ?>
/news/res/<?php 
        echo $post['id'];
        ?>
/" class="g-disabled">
									№<?php 
        echo $post['id'];
        ?>
</a>
							</span>
							<?php 
        if ($post['author'] != 'anonymous') {
            $author = HomeBoardHelper::getBoard($post['author']);
            ?>
							<span>|</span>
							<a href="http://<?php 
            echo $post['author'];
            ?>
/" class="b-comment_b-homeboard" title="Аноним выбрал принадлежность «<?php 
            echo $author[1];
            ?>
»">
								<img src="http://<?php 
            echo TemplateHelper::getSiteUrl();
            ?>
/ico/homeboards/<?php 
            echo $author[0];
            ?>
Example #6
0
 /**
  * Получение коммента:
  */
 public function getPostCommentAjaxAction()
 {
     $cache = KVS::getInstance();
     $comment = Blog_BlogCommentsModel::GetComment($_GET['id']);
     $session = Session::getInstance();
     $session->activeSet('last_visit_post_' . $comment['post_id'], time());
     if ($comment) {
         if ($_GET['title']) {
             $post = Blog_BlogPostsModel::GetPost($comment['post_id']);
             $comment['post_title'] = $post['title'];
         }
         $comment['created_at'] = TemplateHelper::date('d M Y @ H:i', $comment['created_at']);
         $comment['author'] = array($comment['author'], HomeBoardHelper::getBoard($comment['author']));
         unset($comment['ip']);
         return $comment;
     }
     return false;
 }
Example #7
0
</a>)<?php 
        }
        ?>
								<a href="#" class="js-remove-button g-hidden"><img src="http://<?php 
        echo TemplateHelper::getSiteUrl();
        ?>
/ico/remove.gif" width="16" height="16" alt="<?php 
        echo $comment['board_id'];
        ?>
/<?php 
        echo $comment['id'];
        ?>
" /></a>
								<?php 
        if ($comment['author'] && $comment['author'] != 'anonymous') {
            $author = HomeBoardHelper::getBoard($comment['author']);
            ?>
								<a href="http://<?php 
            echo $comment['author'];
            ?>
/" class="b-comment_b-homeboard" title="Аноним выбрал принадлежность «<?php 
            echo $author[1];
            ?>
»">
									<img src="http://<?php 
            echo TemplateHelper::getSiteUrl();
            ?>
/ico/homeboards/<?php 
            echo $author[0];
            ?>
" width="16" height="16" alt="" />
Example #8
0
 /**
  * Получение поста(ов) (ajax):
  */
 public function getAjaxAction(Application $application)
 {
     $board = new Board_BoardModel($_GET['board']);
     $settings = $board->getSettings();
     if (array_key_exists('id', $_GET)) {
         if (is_array($_GET['id'])) {
             $result = array();
             foreach ($_GET['id'] as $id) {
                 if ($post = $board->getPost($id)) {
                     $post['created_at'] = TemplateHelper::date($_GET['board'] != 'int' ? 'd M Y @ H:i' : 'Y-m-d @ H:i', $post['created_at']);
                     $post['board_title'] = $settings['title'];
                     $post['author'] = array($post['author'] ? $post['author'] : 'anonymous', HomeBoardHelper::getBoard($post['author']));
                     unset($post['ip']);
                     $result[] = $post;
                 }
             }
             return $result;
         } else {
             if ($post = $board->getPost($_GET['id'])) {
                 $post['created_at'] = TemplateHelper::date($_GET['board'] != 'int' ? 'd M Y @ H:i' : 'Y-m-d @ H:i', $post['created_at']);
                 $post['board_title'] = $settings['title'];
                 $post['author'] = array($post['author'] ? $post['author'] : 'anonymous', HomeBoardHelper::getBoard($post['author']));
                 unset($post['ip']);
                 return $post;
             }
             return false;
         }
     }
     if (array_key_exists('thread_id', $_GET)) {
         if ($thread = $board->getThread($_GET['thread_id'], true)) {
             $result = array();
             foreach ($thread['posts'] as $id => $post) {
                 $post['created_at'] = TemplateHelper::date($_GET['board'] != 'int' ? 'd M Y @ H:i' : 'Y-m-d @ H:i', $post['created_at']);
                 $post['board_title'] = $settings['title'];
                 $post['author'] = array($post['author'] ? $post['author'] : 'anonymous', HomeBoardHelper::getBoard($post['author']));
                 unset($post['ip']);
                 $result[] = $post;
             }
             return $result;
         }
     }
     return false;
 }