コード例 #1
0
ファイル: topic_controller.php プロジェクト: xpd1437/swap
 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
ファイル: comment_controller.php プロジェクト: xpd1437/swap
 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());
     }
 }
コード例 #3
0
ファイル: header_helper.php プロジェクト: xpd1437/swap
 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();
 }
コード例 #4
0
ファイル: site_controller.php プロジェクト: xpd1437/swap
 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');
 }
コード例 #5
0
ファイル: post_controller.php プロジェクト: xpd1437/swap
 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');
 }
コード例 #6
0
ファイル: header_helper.php プロジェクト: xpd1437/swap
 public static function run(array $context)
 {
     self::set('logined', visitor::has_role('member'));
     self::set('settings', setting_service::get_settings());
     self::render();
 }