Пример #1
0
 public static function show_action()
 {
     $topic_id = g_int('id');
     $topic = topic_model::get_by_id($topic_id);
     binder::bind($topic, 'belongs_to', 'user');
     self::forward_404_if($topic === null, '主题不存在。');
     self::set('topic', $topic);
     $board = board_model::get_by_id($topic->board_id);
     self::set('board', $board);
     $page = g_int('page', 1);
     list($pager, $replies) = reply_model::pager(array('topic_id' => $topic_id), array(array('id' => 'ASC'), $page, 10));
     binder::bind($replies, 'belongs_to', 'user');
     $pager['target'] = 'topic/show?id=' . $topic_id;
     if ($replies === []) {
         $replies = array($topic);
     } else {
         if ($page === 1) {
             array_unshift($replies, $topic);
         }
     }
     self::set('pager', $pager);
     self::set('replies', $replies);
     $logined = visitor::has_role('user');
     self::set('logined', $logined);
     self::show_page();
 }
Пример #2
0
 public static function new_reply(array $reply)
 {
     reply_model::add($reply);
     $user = user_model::get_by_id($reply['user_id']);
     topic_model::set_and_inc_by_id(array('last_post_user' => $user->name, 'last_post_time' => $reply['pub_time']), array('reply_count' => 1), $reply['topic_id']);
     board_model::set_and_inc_by_id(array('last_post_user' => $user->name, 'last_post_time' => $reply['pub_time']), array('reply_count' => 1), $reply['board_id']);
     user_model::inc_by_id(array('reply_count' => 1), $reply['user_id']);
 }