コード例 #1
0
ファイル: setting_controller.php プロジェクト: xpd1437/swap
 public static function about_action()
 {
     // 拦截
     self::role('member');
     $setting = setting_model::get_by_id(setting_model::id_about);
     if (visitor::is_post()) {
         // 拦截
         self::csrf('member');
         try {
             // 校验
             $checker = new lazy_checker(p());
             $checker->check('content', array('change_to' => 'string', 'cannot_be' => array('', '关于不能为空')));
             // 执行
             $setting->value = $checker->content;
             $setting->save();
             // 成功
             self::json_result(true, '关于信息编辑成功。', 0, url('site/about'));
         } catch (check_failed $e) {
             // 失败
             self::json_result(false, $e->get_reasons());
         }
     } else {
         // 呈现
         self::set('content', $setting->value);
         self::show_page();
     }
 }
コード例 #2
0
ファイル: user_controller.php プロジェクト: xpd1437/swap
 public static function do_register_action()
 {
     self::method('post');
     try {
         $checker = new lazy_checker(p());
         $checker->check('name', array('change_to' => 'string', 'cannot_be' => array('', '用户名不能为空'), 'char_size' => array(3, user_model::name_len, '用户名的长度为%d-%d个字符'), 'callback' => function ($name) {
             if (user_model::get_one(array('name' => $name)) !== null) {
                 return '该用户已被注册';
             }
         }));
         $checker->check('pass', array('change_to' => 'string', 'cannot_be' => array('', '密码不能为空'), 'char_size' => array(6, -1, '密码长度必须大于等于%d个字符')));
         if (p_str('re_pass') !== $checker->pass) {
             $checker->failed('pass', '两次输入的密码不一致');
         }
         $salt = random_sha1();
         $pass = user_model::get_crypted_pass($checker->pass, $salt);
         $user = array('name' => $checker->name, 'pass' => $pass, 'salt' => $salt, 'register_time' => clock::get_stamp());
         $user_id = user_model::add($user);
         visitor::set_role('user', $user_id, 0, array('name' => $user['name']));
         online_service::refresh_online_count();
         self::json_result(true, '', 0, url('site/index'));
     } catch (check_failed $e) {
         self::json_result(false, $e->get_reasons());
     }
 }
コード例 #3
0
ファイル: member_controller.php プロジェクト: xpd1437/swap
 public static function edit_action()
 {
     // 拦截
     self::role('member');
     $member = member_model::get_by_id(g_int('id'));
     self::forward_404_if($member === null, '用户不存在');
     if (visitor::is_post()) {
         // 拦截
         self::csrf('member');
         try {
             // 校验
             $checker = new lazy_checker(p());
             $checker->check_model_rules('member', 'edit', $member);
             // 执行
             $member->name = $checker->name;
             $pass = $checker->pass;
             if ($pass !== '') {
                 $member->set_pass($pass);
             }
             $member->save();
             visitor::set_role_var('member', 'name', $member->name);
             // 成功
             self::json_result(true, '用户编辑成功。', 0, url('member/index'));
         } catch (check_failed $e) {
             // 失败
             self::json_result(false, $e->get_reasons());
         }
     } else {
         // 呈现
         self::set('member', $member);
         self::show_page();
     }
 }
コード例 #4
0
ファイル: message_controller.php プロジェクト: xpd1437/swap
 public static function edit_action()
 {
     // 拦截
     self::role('member');
     $message = message_model::get_by_id(g_int('id'));
     self::forward_404_if($message === null, '留言不存在');
     if (visitor::is_post()) {
         // 拦截
         self::csrf('member');
         try {
             // 校验
             $checker = new lazy_checker(p());
             $checker->check_model_rules('message');
             // 执行
             $message->add_props($checker->get_all());
             $message->save();
             // 成功
             self::json_result(true, '留言编辑成功。', 0, url('site/about'));
         } catch (check_failed $e) {
             // 失败
             self::json_result(false, $e->get_reasons());
         }
     } else {
         // 呈现
         self::set('message', $message);
         self::show_page('', 'two');
     }
 }
コード例 #5
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());
     }
 }
コード例 #6
0
ファイル: site_controller.php プロジェクト: xpd1437/swap
 public static function logout_action()
 {
     self::csrf('user');
     visitor::del_role('user');
     online_service::refresh_online_count();
     self::redirect_to('site/index');
 }
コード例 #7
0
ファイル: category_controller.php プロジェクト: xpd1437/swap
 public static function edit_action()
 {
     // 拦截
     self::role('member');
     $category = category_model::get_by_id(g_int('id'));
     self::forward_404_if($category === null, '分类不存在');
     if (visitor::is_post()) {
         // 拦截
         self::csrf('member');
         try {
             // 校验
             $checker = new lazy_checker(p());
             $checker->check_model_rules('category');
             // 执行
             $category->name = $checker->name;
             $category->save();
             // 成功
             self::json_result(true, '分类编辑成功。', 0, url('category/index'));
         } catch (check_failed $e) {
             // 失败
             self::json_result(false, $e->get_reasons());
         }
     } else {
         // 呈现
         self::set('category', $category);
         self::show_page();
     }
 }
コード例 #8
0
ファイル: link_controller.php プロジェクト: xpd1437/swap
 public static function edit_action()
 {
     // 拦截
     self::role('member');
     $id = g_int('id');
     $link = link_model::get_by_id($id);
     self::forward_404_if($link === null, '链接不存在');
     if (visitor::is_post()) {
         // 拦截
         self::csrf('member');
         try {
             // 校验
             $checker = new lazy_checker(p());
             $checker->check_model_rules('link');
             // 执行
             $link->add_props($checker->get_all());
             $link->save();
             // 成功
             self::json_result(true, '链接编辑成功。', 0, url('link/index'));
         } catch (check_failed $e) {
             // 失败
             self::json_result(false, $e->get_reasons());
         }
     } else {
         // 呈现
         self::set('link', $link);
         self::show_page();
     }
 }
コード例 #9
0
ファイル: site_controller.php プロジェクト: xpd1437/swap
 public static function admin_action()
 {
     // 拦截
     self::role('member');
     // 呈现
     $member = member_model::get_by_id(visitor::get_role_id('member'));
     self::set('name', $member->name);
     self::show_page('', 'two');
 }
コード例 #10
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();
 }
コード例 #11
0
ファイル: topic_controller.php プロジェクト: xpd1437/swap
 public static function do_new_action()
 {
     self::method('post');
     self::role('user');
     self::csrf('user');
     $board_id = g_int('board_id', 1);
     $board = board_model::get_by_id($board_id);
     try {
         $checker = new lazy_checker(p());
         $checker->check('title', array('change_to' => 'string', 'char_size' => array(3, topic_model::title_len, '标题长度为%d到%d个字符')));
         $checker->check('content', array('change_to' => 'string', 'char_size' => array(6, topic_model::content_len, '内容长度为%d到%d个字符')));
         $user_id = visitor::get_role_id('user');
         $topic = array('board_id' => $board_id, 'user_id' => $user_id, 'pub_time' => clock::get_stamp(), 'title' => $checker->title, 'content' => $checker->content);
         $topic_id = topic_service::new_topic($topic);
         self::json_result(true, '', 0, url('topic/show?id=' . $topic_id));
     } catch (check_failed $e) {
         self::json_result(false, $e->get_reasons());
     }
 }
コード例 #12
0
ファイル: reply_controller.php プロジェクト: xpd1437/swap
 public static function new_action()
 {
     self::method('post');
     self::role('user', 'forward_to', 'site/login');
     self::csrf('user');
     $topic_id = g_int('topic_id');
     $topic = topic_model::get_by_id($topic_id);
     self::forward_404_if($topic === null, '主题不存在。');
     try {
         $checker = new lazy_checker(p());
         $checker->check('content', array('change_to' => 'string', 'char_size' => array(6, reply_model::content_len, '内容长度为%d到%d个字符')));
         $pub_time = clock::get_stamp();
         $user_id = visitor::get_role_id('user');
         $reply = array('board_id' => $topic->board_id, 'topic_id' => $topic_id, 'user_id' => $user_id, 'pub_time' => $pub_time, 'content' => $checker->content);
         reply_service::new_reply($reply);
         self::json_result(true, '', 0, url('topic/show?id=' . $topic_id));
     } catch (check_failed $e) {
         self::json_result(false, $e->get_reasons());
     }
 }
コード例 #13
0
ファイル: site_controller.php プロジェクト: xpd1437/swap
 public static function logout_action()
 {
     self::csrf('admin');
     visitor::del_role('admin');
     self::redirect_to('admin-site/login');
 }
コード例 #14
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();
 }
コード例 #15
0
ファイル: global.php プロジェクト: xpd1437/swap
function f_has($key)
{
    return visitor::f_has($key);
}
コード例 #16
0
ファイル: post_controller.php プロジェクト: xpd1437/swap
 public static function do_new_action()
 {
     // 拦截
     self::method('post');
     self::role('member');
     self::csrf('member');
     try {
         // 校验
         $checker = new lazy_checker(p());
         $checker->check_model_rules('post');
         // 执行
         $props = $checker->get_all();
         $tags = $props['tags'];
         unset($props['tags']);
         $props['member_id'] = visitor::get_role_id('member');
         $props['pub_time'] = clock::get_stamp();
         $post = new post_model();
         $post->set_props($props);
         publish_service::publish($post, $tags);
         // 成功
         self::json_result(true, '文章发表成功', 0, url('post/show?id=' . $post->id));
     } catch (check_failed $e) {
         // 失败
         self::json_result(false, $e->get_reasons());
     }
 }
コード例 #17
0
ファイル: except_controller.php プロジェクト: xpd1437/swap
 public static function browser_denied_action($e)
 {
     visitor::set_status(406, 'Browser Not Allowed');
     self::show_page('', false);
 }