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(); } }
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()); } }
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(); } }
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'); } }
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 logout_action() { self::csrf('user'); visitor::del_role('user'); online_service::refresh_online_count(); self::redirect_to('site/index'); }
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(); } }
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(); } }
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'); }
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 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()); } }
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()); } }
public static function logout_action() { self::csrf('admin'); visitor::del_role('admin'); self::redirect_to('admin-site/login'); }
public static function run(array $context) { self::set('logined', visitor::has_role('member')); self::set('settings', setting_service::get_settings()); self::render(); }
function f_has($key) { return visitor::f_has($key); }
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()); } }
public static function browser_denied_action($e) { visitor::set_status(406, 'Browser Not Allowed'); self::show_page('', false); }