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(); }
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']); }