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_action() { // 拦截 self::method('post'); $post_id = g_int('post_id'); $post = post_model::get_by_id($post_id); self::forward_404_if($post === null, '文章不存在,无法评论'); try { // 校验 $checker = new lazy_checker(p()); $checker->check('captcha', array('should_be' => array(setting_model::get_by_id(setting_model::id_captcha_answer)->value, '验证码不正确'))); $checker->del('captcha'); $checker->check_model_rules('comment'); $comment = $checker->get_all(); if (!visitor::has_role('member') && member_model::get_one(array('name' => $comment['author'])) !== null) { $checker->failed('author', '您不能使用管理员的昵称'); } // 执行 $comment['post_id'] = $post_id; $comment['pub_time'] = clock::get_stamp(); comment_model::add($comment); post_model::inc_by_id(array('comment_count' => 1), $post_id); setting_model::inc_by_id(array('value' => 1), setting_model::id_comment_count); // 成功 self::json_result(true, '评论成功', 0, url('post/show?id=' . $post_id)); } catch (check_failed $e) { // 失败 self::json_result(false, $e->get_reasons()); } }
public static function run(array $context) { $logined = visitor::has_role('user'); self::set('logined', $logined); if ($logined) { self::set('user', user_model::get_by_id(visitor::get_role_id('user'))); } self::render(); }
public static function about_action() { // 呈现 self::set('about', setting_model::get_about()); list($pager, $messages) = message_model::pager_all(array(array('id' => 'DESC'), g_int('page', 1), 10)); $pager['target'] = 'site/about'; self::set('pager', $pager); self::set('messages', $messages); self::set('logined', visitor::has_role('member')); self::set('captcha_question', setting_model::get_by_id(setting_model::id_captcha_question)->value); self::show_page('', 'three'); }
public static function show_action() { // 呈现 $post_id = g_int('id'); $post = post_model::get_by_id($post_id); self::forward_404_if($post === null, '文章不存在'); binder::bind($post, 'belongs_to', 'member'); binder::bind($post, 'belongs_to', 'category'); binder::bind($post, 'many_many', 'tag', array('post_tag', 0)); self::set('post', $post); $order_limit = array(array('id' => 'DESC'), g_int('page', 1), 10); list($pager, $comments) = comment_model::pager_with_count($post->comment_count, array('post_id' => $post_id), $order_limit); $pager['target'] = 'post/show?id=' . $post_id; self::set('pager', $pager); self::set('comments', $comments); self::set('logined', visitor::has_role('member')); self::set('captcha_question', setting_model::get_by_id(setting_model::id_captcha_question)->value); self::show_page('', 'four'); }
public static function run(array $context) { self::set('logined', visitor::has_role('member')); self::set('settings', setting_service::get_settings()); self::render(); }