public function mp_menu_action()
 {
     $this->crumb(AWS_APP::lang()->_t('菜单管理'), 'admin/weixin/mp_menu/');
     if (!isset($_GET['id'])) {
         $_GET['id'] = 0;
     }
     $accounts_list = $this->model('weixin')->get_accounts_info();
     $account_id = $accounts_list[$_GET['id']]['id'];
     if (!isset($account_id)) {
         H::redirect_msg(AWS_APP::lang()->_t('公众账号不存在'));
     }
     if ($accounts_list[$account_id]['weixin_account_role'] == 'base' or !$accounts_list[$account_id]['weixin_app_id'] or !$accounts_list[$account_id]['weixin_app_secret']) {
         H::redirect_msg(AWS_APP::lang()->_t('此功能不适用于未通过微信认证的订阅号'), '/admin/');
     }
     $this->model('weixin')->client_list_image_clean($accounts_list[$account_id]['weixin_mp_menu']);
     TPL::assign('account_id', $account_id);
     TPL::assign('mp_menu', $accounts_list[$account_id]['weixin_mp_menu']);
     TPL::assign('accounts_list', $accounts_list);
     TPL::assign('menu_list', $this->model('admin')->fetch_menu_list(803));
     TPL::assign('feature_list', $this->model('feature')->get_enabled_feature_list('id DESC', null, null));
     if (get_setting('category_enable') == 'Y') {
         TPL::assign('category_data', json_decode($this->model('system')->build_category_json('question'), true));
     }
     TPL::assign('reply_rule_list', $this->model('weixin')->fetch_unique_reply_rule_list($account_id));
     TPL::import_js('js/fileupload.js');
     TPL::import_js('js/md5.js');
     TPL::output('admin/weixin/mp_menu');
 }
Esempio n. 2
0
 public function index_action()
 {
     if (!$this->user_id) {
         HTTP::redirect('/explore/');
     }
     if (!$this->user_info['email']) {
         HTTP::redirect('/account/complete_profile/');
     }
     // 边栏可能感兴趣的人或话题
     if (TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'home/index')) {
         $recommend_users_topics = $this->model('module')->recommend_users_topics($this->user_id);
         TPL::assign('sidebar_recommend_users_topics', $recommend_users_topics);
     }
     // 边栏热门用户
     if (TPL::is_output('block/sidebar_hot_users.tpl.htm', 'home/index')) {
         $sidebar_hot_users = $this->model('module')->sidebar_hot_users($this->user_id);
         TPL::assign('sidebar_hot_users', $sidebar_hot_users);
     }
     $this->crumb(AWS_APP::lang()->_t('动态'), '/home/');
     TPL::import_js('js/app/index.js');
     if ($_GET['first_login']) {
         TPL::import_js('js/ajaxupload.js');
     }
     TPL::output('home/index');
 }
Esempio n. 3
0
 public function index_action()
 {
     if (is_digits($_GET['id'])) {
         $feature_info = $this->model('feature')->get_feature_by_id($_GET['id']);
     } else {
         $feature_info = $this->model('feature')->get_feature_by_url_token($_GET['id']);
     }
     if (!$feature_info) {
         header('HTTP/1.1 404 Not Found');
         H::redirect_msg(AWS_APP::lang()->_t('专题不存在'), '/');
     }
     if (!$feature_info['enabled']) {
         H::redirect_msg(AWS_APP::lang()->_t('专题未启用'), '/');
     }
     if ($feature_info['url_token'] != $_GET['id'] and !$_GET['sort_type'] and !$_GET['is_recommend']) {
         HTTP::redirect('/feature/' . $feature_info['url_token']);
     }
     if (!($topic_list = $this->model('topic')->get_topics_by_ids($this->model('feature')->get_topics_by_feature_id($feature_info['id'])))) {
         H::redirect_msg(AWS_APP::lang()->_t('专题下必须包含一个以上话题'), '/');
     }
     if ($feature_info['seo_title']) {
         TPL::assign('page_title', $feature_info['seo_title']);
     } else {
         $this->crumb($feature_info['title'], '/feature/' . $feature_info['url_token']);
     }
     TPL::assign('sidebar_hot_topics', $topic_list);
     TPL::assign('feature_info', $feature_info);
     TPL::import_js('js/app/feature.js');
     TPL::output('feature/detail');
 }
Esempio n. 4
0
 public function login_action()
 {
     $url = base64_decode($_GET['url']);
     if ($this->user_id) {
         if ($url) {
             header('Location: ' . $url);
         } else {
             HTTP::redirect('/');
         }
     }
     if (is_mobile()) {
         HTTP::redirect('/m/login/url-' . $_GET['url']);
     }
     $this->crumb(AWS_APP::lang()->_t('登录'), '/account/login/');
     TPL::import_css('css/login.css');
     // md5 password...
     if (get_setting('ucenter_enabled') != 'Y') {
         TPL::import_js('js/md5.js');
     }
     if ($_GET['url']) {
         $return_url = htmlspecialchars(base64_decode($_GET['url']));
     } else {
         $return_url = htmlspecialchars($_SERVER['HTTP_REFERER']);
     }
     TPL::assign('return_url', $return_url);
     TPL::output("account/login");
 }
Esempio n. 5
0
 public function setup()
 {
     HTTP::no_cache_header();
     TPL::import_clean();
     TPL::import_css(array('mobile/css/icon.css', 'mobile/css/mobile.css'));
     TPL::import_js(array('js/jquery.2.js', 'js/jquery.form.js', 'mobile/js/framework.js', 'mobile/js/aws-mobile.js', 'mobile/js/app.js', 'mobile/js/aw-mobile-template.js'));
 }
Esempio n. 6
0
 public function nav_menu_action()
 {
     $this->crumb(AWS_APP::lang()->_t('导航设置'), 'admin/nav_menu/');
     if (!$this->user_info['permission']['is_administortar']) {
         H::redirect_msg(AWS_APP::lang()->_t('你没有访问权限, 请重新登录'), '/');
     }
     TPL::assign('nav_menu_list', $this->model('menu')->get_nav_menu_list());
     TPL::assign('category_list', $this->model('system')->build_category_html('question', 0, 0, null, true));
     TPL::assign('setting', get_setting());
     TPL::import_js(array('js/fileupload.js'));
     TPL::assign('menu_list', $this->model('admin')->fetch_menu_list(307));
     TPL::output('admin/nav_menu');
 }
Esempio n. 7
0
 public function profile_action()
 {
     $this->crumb(AWS_APP::lang()->_t('基本资料'), '/account/setting/profile/');
     for ($i = date('Y'); $i > 1900; $i--) {
         $birthday_y[$i] = $i;
     }
     TPL::assign('birthday_y', $birthday_y);
     for ($tmp_i = 1; $tmp_i <= 31; $tmp_i++) {
         $birthday_d[$tmp_i] = $tmp_i;
     }
     TPL::assign('birthday_d', $birthday_d);
     TPL::assign('job_list', $this->model('work')->get_jobs_list());
     TPL::assign('education_experience_list', $this->model('education')->get_education_experience_list($this->user_id));
     $jobs_list = $this->model('work')->get_jobs_list();
     if ($work_experience_list = $this->model('work')->get_work_experience_list($this->user_id)) {
         foreach ($work_experience_list as $key => $val) {
             $work_experience_list[$key]['job_name'] = $jobs_list[$val['job_id']];
         }
     }
     TPL::assign('work_experience_list', $work_experience_list);
     TPL::import_js('js/fileupload.js');
     TPL::output('account/setting/profile');
 }
Esempio n. 8
0
 public function index_action()
 {
     if ($_GET['notification_id']) {
         $this->model('notify')->read_notification($_GET['notification_id'], $this->user_id);
     }
     if (is_mobile()) {
         HTTP::redirect('/m/question/' . $_GET['id']);
     }
     if ($_GET['column'] == 'log' and !$this->user_id) {
         HTTP::redirect('/question/' . $_GET['id']);
     }
     if (!($question_info = $this->model('question')->get_question_info_by_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('问题不存在或已被删除'), '/question/');
     }
     if (!$_GET['sort'] or $_GET['sort'] != 'ASC') {
         $_GET['sort'] = 'DESC';
     } else {
         $_GET['sort'] = 'ASC';
     }
     if (get_setting('unfold_question_comments') == 'Y') {
         $_GET['comment_unfold'] = 'all';
     }
     $question_info['redirect'] = $this->model('question')->get_redirect($question_info['question_id']);
     if ($question_info['redirect']['target_id']) {
         $target_question = $this->model('question')->get_question_info_by_id($question_info['redirect']['target_id']);
     }
     if (is_digits($_GET['rf']) and $_GET['rf']) {
         if ($from_question = $this->model('question')->get_question_info_by_id($_GET['rf'])) {
             $redirect_message[] = AWS_APP::lang()->_t('从问题 %s 跳转而来', '<a href="' . get_js_url('/question/' . $_GET['rf'] . '?rf=false') . '">' . $from_question['question_content'] . '</a>');
         }
     }
     if ($question_info['redirect'] and !$_GET['rf']) {
         if ($target_question) {
             HTTP::redirect('/question/' . $question_info['redirect']['target_id'] . '?rf=' . $question_info['question_id']);
         } else {
             $redirect_message[] = AWS_APP::lang()->_t('重定向目标问题已被删除, 将不再重定向问题');
         }
     } else {
         if ($question_info['redirect']) {
             if ($target_question) {
                 $message = AWS_APP::lang()->_t('此问题将跳转至') . ' <a href="' . get_js_url('/question/' . $question_info['redirect']['target_id'] . '?rf=' . $question_info['question_id']) . '">' . $target_question['question_content'] . '</a>';
                 if ($this->user_id and ($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'] or !$this->question_info['lock'] and $this->user_info['permission']['redirect_question'])) {
                     $message .= '&nbsp; (<a href="javascript:;" onclick="AWS.ajax_request(G_BASE_URL + \'/question/ajax/redirect/\', \'item_id=' . $question_info['question_id'] . '\');">' . AWS_APP::lang()->_t('撤消重定向') . '</a>)';
                 }
                 $redirect_message[] = $message;
             } else {
                 $redirect_message[] = AWS_APP::lang()->_t('重定向目标问题已被删除, 将不再重定向问题');
             }
         }
     }
     if ($question_info['has_attach']) {
         $question_info['attachs'] = $this->model('publish')->get_attach('question', $question_info['question_id'], 'min');
         $question_info['attachs_ids'] = FORMAT::parse_attachs($question_info['question_detail'], true);
     }
     if ($question_info['category_id'] and get_setting('category_enable') == 'Y') {
         $question_info['category_info'] = $this->model('system')->get_category_info($question_info['category_id']);
     }
     $question_info['user_info'] = $this->model('account')->get_user_info_by_uid($question_info['published_uid'], true);
     if ($_GET['column'] != 'log') {
         $this->model('question')->calc_popular_value($question_info['question_id']);
         $this->model('question')->update_views($question_info['question_id']);
         if (is_digits($_GET['uid'])) {
             $answer_list_where[] = 'uid = ' . intval($_GET['uid']);
             $answer_count_where = 'uid = ' . intval($_GET['uid']);
         } else {
             if ($_GET['uid'] == 'focus' and $this->user_id) {
                 if ($friends = $this->model('follow')->get_user_friends($this->user_id, false)) {
                     foreach ($friends as $key => $val) {
                         $follow_uids[] = $val['uid'];
                     }
                 } else {
                     $follow_uids[] = 0;
                 }
                 $answer_list_where[] = 'uid IN(' . implode($follow_uids, ',') . ')';
                 $answer_count_where = 'uid IN(' . implode($follow_uids, ',') . ')';
                 $answer_order_by = 'add_time ASC';
             } else {
                 if ($_GET['sort_key'] == 'add_time') {
                     $answer_order_by = $_GET['sort_key'] . " " . $_GET['sort'];
                 } else {
                     $answer_order_by = "agree_count " . $_GET['sort'] . ", against_count ASC, add_time ASC";
                 }
             }
         }
         if ($answer_count_where) {
             $answer_count = $this->model('answer')->get_answer_count_by_question_id($question_info['question_id'], $answer_count_where);
         } else {
             $answer_count = $question_info['answer_count'];
         }
         if (isset($_GET['answer_id']) and (!$this->user_id or $_GET['single'])) {
             $answer_list = $this->model('answer')->get_answer_list_by_question_id($question_info['question_id'], 1, 'answer_id = ' . intval($_GET['answer_id']));
         } else {
             if (!$this->user_id and !$this->user_info['permission']['answer_show']) {
                 if ($question_info['best_answer']) {
                     $answer_list = $this->model('answer')->get_answer_list_by_question_id($question_info['question_id'], 1, 'answer_id = ' . intval($question_info['best_answer']));
                 } else {
                     $answer_list = $this->model('answer')->get_answer_list_by_question_id($question_info['question_id'], 1, null, 'agree_count DESC');
                 }
             } else {
                 if ($answer_list_where) {
                     $answer_list_where = implode(' AND ', $answer_list_where);
                 }
                 $answer_list = $this->model('answer')->get_answer_list_by_question_id($question_info['question_id'], calc_page_limit($_GET['page'], 100), $answer_list_where, $answer_order_by);
             }
         }
         // 最佳回复预留
         $answers[0] = '';
         if (!is_array($answer_list)) {
             $answer_list = array();
         }
         $answer_ids = array();
         $answer_uids = array();
         foreach ($answer_list as $answer) {
             $answer_ids[] = $answer['answer_id'];
             $answer_uids[] = $answer['uid'];
             if ($answer['has_attach']) {
                 $has_attach_answer_ids[] = $answer['answer_id'];
             }
         }
         if (!in_array($question_info['best_answer'], $answer_ids) and intval($_GET['page']) < 2) {
             $answer_list = array_merge($this->model('answer')->get_answer_list_by_question_id($question_info['question_id'], 1, 'answer_id = ' . $question_info['best_answer']), $answer_list);
         }
         if ($answer_ids) {
             $answer_agree_users = $this->model('answer')->get_vote_user_by_answer_ids($answer_ids);
             $answer_vote_status = $this->model('answer')->get_answer_vote_status($answer_ids, $this->user_id);
             $answer_users_rated_thanks = $this->model('answer')->users_rated('thanks', $answer_ids, $this->user_id);
             $answer_users_rated_uninterested = $this->model('answer')->users_rated('uninterested', $answer_ids, $this->user_id);
             $answer_attachs = $this->model('publish')->get_attachs('answer', $has_attach_answer_ids, 'min');
         }
         foreach ($answer_list as $answer) {
             if ($answer['has_attach']) {
                 $answer['attachs'] = $answer_attachs[$answer['answer_id']];
                 $answer['insert_attach_ids'] = FORMAT::parse_attachs($answer['answer_content'], true);
             }
             $answer['user_rated_thanks'] = $answer_users_rated_thanks[$answer['answer_id']];
             $answer['user_rated_uninterested'] = $answer_users_rated_uninterested[$answer['answer_id']];
             $answer['answer_content'] = $this->model('question')->parse_at_user(FORMAT::parse_attachs(nl2br(FORMAT::parse_bbcode($answer['answer_content']))));
             $answer['agree_users'] = $answer_agree_users[$answer['answer_id']];
             $answer['agree_status'] = $answer_vote_status[$answer['answer_id']];
             if ($question_info['best_answer'] == $answer['answer_id'] and intval($_GET['page']) < 2) {
                 $answers[0] = $answer;
             } else {
                 $answers[] = $answer;
             }
         }
         if (!$answers[0]) {
             unset($answers[0]);
         }
         if (get_setting('answer_unique') == 'Y') {
             if ($this->model('answer')->has_answer_by_uid($question_info['question_id'], $this->user_id)) {
                 TPL::assign('user_answered', 1);
             } else {
                 TPL::assign('user_answered', 0);
             }
         }
         TPL::assign('answers', $answers);
         TPL::assign('answer_count', $answer_count);
     }
     if ($this->user_id) {
         TPL::assign('question_thanks', $this->model('question')->get_question_thanks($question_info['question_id'], $this->user_id));
         TPL::assign('invite_users', $this->model('question')->get_invite_users($question_info['question_id']));
         TPL::assign('user_follow_check', $this->model('follow')->user_follow_check($this->user_id, $question_info['published_uid']));
         if ($this->user_info['draft_count'] > 0) {
             TPL::assign('draft_content', $this->model('draft')->get_data($question_info['question_id'], 'answer', $this->user_id));
         }
     }
     $question_info['question_detail'] = FORMAT::parse_attachs(nl2br(FORMAT::parse_bbcode($question_info['question_detail'])));
     TPL::assign('question_info', $question_info);
     TPL::assign('question_focus', $this->model('question')->has_focus_question($question_info['question_id'], $this->user_id));
     $question_topics = $this->model('topic')->get_topics_by_item_id($question_info['question_id'], 'question');
     if (sizeof($question_topics) == 0 and $this->user_id) {
         $related_topics = $this->model('question')->get_related_topics($question_info['question_content']);
         TPL::assign('related_topics', $related_topics);
     }
     TPL::assign('question_topics', $question_topics);
     TPL::assign('question_related_list', $this->model('question')->get_related_question_list($question_info['question_id'], $question_info['question_content']));
     TPL::assign('question_related_links', $this->model('related')->get_related_links('question', $question_info['question_id']));
     if ($this->user_id) {
         if ($question_topics) {
             foreach ($question_topics as $key => $val) {
                 $question_topic_ids[] = $val['topic_id'];
             }
         }
         if ($helpful_users = $this->model('topic')->get_helpful_users_by_topic_ids($question_topic_ids, 17)) {
             foreach ($helpful_users as $key => $val) {
                 if ($val['user_info']['uid'] == $this->user_id) {
                     unset($helpful_users[$key]);
                 } else {
                     $helpful_users[$key]['has_invite'] = $this->model('question')->has_question_invite($question_info['question_id'], $val['user_info']['uid'], $this->user_id);
                     $helpful_users[$key]['experience'] = end($helpful_users[$key]['experience']);
                 }
             }
             TPL::assign('helpful_users', $helpful_users);
         }
     }
     $this->crumb($question_info['question_content'], '/question/' . $question_info['question_id']);
     if ($_GET['column'] == 'log') {
         $this->crumb(AWS_APP::lang()->_t('日志'), '/question/id-' . $question_info['question_id'] . '__column-log');
     } else {
         TPL::assign('human_valid', human_valid('answer_valid_hour'));
         if ($this->user_id) {
             TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/question/id-' . $question_info['question_id'] . '__sort_key-' . $_GET['sort_key'] . '__sort-' . $_GET['sort'] . '__uid-' . $_GET['uid']), 'total_rows' => $answer_count, 'per_page' => 100))->create_links());
         }
     }
     TPL::set_meta('keywords', implode(',', $this->model('system')->analysis_keyword($question_info['question_content'])));
     TPL::set_meta('description', $question_info['question_content'] . ' - ' . cjk_substr(str_replace("\r\n", ' ', strip_tags($question_info['question_detail'])), 0, 128, 'UTF-8', '...'));
     if (get_setting('advanced_editor_enable') == 'Y') {
         import_editor_static_files();
     }
     if (get_setting('upload_enable') == 'Y') {
         // fileupload
         TPL::import_js('js/fileupload.js');
     }
     TPL::assign('attach_access_key', md5($this->user_id . time()));
     TPL::assign('redirect_message', $redirect_message);
     $recommend_posts = $this->model('posts')->get_recommend_posts_by_topic_ids($question_topic_ids);
     if ($recommend_posts) {
         foreach ($recommend_posts as $key => $value) {
             if ($value['question_id'] and $value['question_id'] == $question_info['question_id']) {
                 unset($recommend_posts[$key]);
                 break;
             }
         }
         TPL::assign('recommend_posts', $recommend_posts);
     }
     // 答题选项
     if (intval($question_info['quiz_id']) > 0) {
         $question_quiz = $this->model('quiz')->get_question_quiz_info_by_id($question_info['quiz_id']);
         TPL::import_js('js/quiz.js');
         TPL::import_css('css/quiz.css');
         TPL::import_js('js/app/question.js');
         TPL::assign('question_quiz', $question_quiz);
     }
     TPL::output('question/index');
 }
Esempio n. 9
0
 public function publish_action()
 {
     if ($_GET['id']) {
         if (!($question_info = $this->model('question')->get_question_info_by_id($_GET['id']))) {
             H::redirect_msg(AWS_APP::lang()->_t('指定主题不存在'));
         }
         if (!$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator'] and !$this->user_info['permission']['edit_question']) {
             if ($question_info['published_uid'] != $this->user_id) {
                 H::redirect_msg(AWS_APP::lang()->_t('你没有权限编辑这个主题'), '/m/question/' . $_GET['id']);
             }
         }
         TPL::assign('question_info', $question_info);
     } else {
         if (!$this->user_info['permission']['publish_question']) {
             H::redirect_msg(AWS_APP::lang()->_t('你所在用户组没有权限发布主题'));
         } else {
             if ($this->is_post() and $_POST['question_detail']) {
                 TPL::assign('question_info', array('question_content' => $_POST['question_content'], 'question_detail' => $_POST['question_detail']));
                 $question_info['category_id'] = $_POST['category_id'];
             } else {
                 if ($_GET['weixin_media_id']) {
                     $weixin_pic_url = AWS_APP::cache()->get('weixin_pic_url_' . md5(base64_decode($_GET['weixin_media_id'])));
                     if (!$weixin_pic_url) {
                         H::redirect_msg(AWS_APP::lang()->_t('图片已过期或 media_id 无效'));
                     }
                     TPL::assign('weixin_media_id', $_GET['weixin_media_id']);
                     TPL::assign('weixin_pic_url', $weixin_pic_url);
                 } else {
                     $draft_content = $this->model('draft')->get_data(1, 'question', $this->user_id);
                     TPL::assign('question_info', array('question_content' => $_POST['question_content'], 'question_detail' => $draft_content['message']));
                 }
             }
         }
     }
     if ($this->user_info['integral'] < 0 and get_setting('integral_system_enabled') == 'Y' and !$_GET['id']) {
         H::redirect_msg(AWS_APP::lang()->_t('你的剩余积分已经不足以进行此操作'));
     }
     if (!$question_info['category_id'] and $_GET['category_id']) {
         $question_info['category_id'] = $_GET['category_id'];
     }
     if (get_setting('category_enable') == 'Y') {
         TPL::assign('question_category_list', $this->model('system')->build_category_html('question', 0, $question_info['category_id']));
     }
     if ($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'] or $question_info['published_uid'] == $this->user_id and $_GET['id'] or !$_GET['id']) {
         TPL::assign('attach_access_key', md5($this->user_id . time()));
     }
     TPL::import_js(array('js/fileupload.js'));
     TPL::assign('body_class', 'active');
     TPL::assign('human_valid', human_valid('question_valid_hour'));
     TPL::output('m/publish');
 }
Esempio n. 10
0
 public function edit_action()
 {
     if (!($topic_info = $this->model('topic')->get_topic_by_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('话题不存在'), '/');
     }
     if (!($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'])) {
         if (!$this->user_info['permission']['edit_topic']) {
             H::redirect_msg(AWS_APP::lang()->_t('你没有权限进行此操作'));
         } else {
             if ($this->model('topic')->has_lock_topic($_GET['id'])) {
                 H::redirect_msg(AWS_APP::lang()->_t('已锁定的话题不能编辑'));
             }
         }
     }
     $this->crumb(AWS_APP::lang()->_t('话题编辑'), '/topic/edit/' . $topic_info['topic_id']);
     $this->crumb($topic_info['topic_title'], '/topic/' . $topic_info['topic_id']);
     TPL::assign('topic_info', $topic_info);
     TPL::assign('related_topics', $this->model('topic')->related_topics($_GET['id']));
     TPL::import_js('js/fileupload.js');
     if (get_setting('advanced_editor_enable') == 'Y') {
         import_editor_static_files();
     }
     TPL::output('topic/edit');
 }
Esempio n. 11
0
 public function record_action()
 {
     if (!($question_info = $this->model('question')->get_question_info_by_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('问题不存在或已被删除'), '/question/');
     }
     TPL::assign('question_info', $question_info);
     if ($_GET['uid']) {
         if (!($user_info = $this->model('account')->get_user_info_by_uid($_GET['uid']))) {
             H::redirect_msg(AWS_APP::lang()->_t('用户不存在'), '/question/' . $_GET['id']);
         }
         TPL::assign('quiz_user_info', $user_info);
         // 获取用户在该问题下的答题记录
         $user_quiz_record = $this->model('quiz')->get_question_quiz_record_by_user($question_info['question_id'], $user_info['uid'], $_GET['page'], 10);
         TPL::assign('user_quiz_record', $user_quiz_record);
         TPL::assign('user_quiz_record_count', $this->model('quiz')->get_question_quiz_record_user_count());
         TPL::assign('user_quiz_passed', $this->model('quiz')->user_question_quiz_passed($question_info['question_id'], $user_info['uid']));
         TPL::output('question/record_user');
     } else {
         if ($question_info['quiz_id'] > 0) {
             $question_info['quiz_info'] = $this->model('quiz')->get_question_quiz_info_by_id($question_info['quiz_id']);
         }
         // 获取问题答题纪录及统计
         $question_quiz_record = $this->model('quiz')->get_question_quiz_record_list_page($question_info['question_id'], $_GET['page'], 10);
         TPL::assign('question_quiz_record', $question_quiz_record);
         TPL::import_js('js/flot/jquery.flot.js');
         TPL::import_js('js/flot/jquery.flot.pie.js');
         TPL::import_js('js/flot/jquery.flot.resize.js');
         TPL::output('question/record');
     }
 }
Esempio n. 12
0
 public function edit_action()
 {
     $this->crumb(AWS_APP::lang()->_t('话题编辑'), 'admin/topic/edit/');
     if (!($topic_info = $this->model('topic')->get_topic_by_id($_GET['topic_id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('话题不存在'), '/admin/topic/list/');
     }
     TPL::assign('topic_info', $topic_info);
     TPL::assign('parent_topics', $this->model('topic')->get_parent_topics());
     TPL::import_js('js/ajaxupload.js');
     TPL::output('admin/topic/edit');
 }
Esempio n. 13
0
 public function publish_action()
 {
     if (!$this->user_info['permission']['publish_ticket']) {
         H::redirect_msg(AWS_APP::lang()->_t('你所在用户组没有权限发布工单'));
     }
     $this->crumb(AWS_APP::lang()->_t('发布工单'), '/ticket/publish/');
     TPL::assign('draft_content', $this->model('draft')->get_data(1, 'ticket', $this->user_id));
     TPL::assign('attach_access_key', md5($this->user_id . time()));
     TPL::assign('human_valid', human_valid('question_valid_hour'));
     TPL::import_js('js/app/publish.js');
     if (get_setting('advanced_editor_enable') == 'Y') {
         import_editor_static_files();
     }
     if (get_setting('upload_enable') == 'Y') {
         // fileupload
         TPL::import_js('js/fileupload.js');
     }
     TPL::output('ticket/publish');
 }
Esempio n. 14
0
 public function index_square_action()
 {
     if (!$_GET['page']) {
         $_GET['page'] = 1;
     }
     $this->crumb(AWS_APP::lang()->_t('用户列表'), '/people/');
     if ($_GET['topic_id']) {
         if ($helpful_users = $this->model('topic')->get_helpful_users_by_topic_ids($this->model('topic')->get_child_topic_ids($_GET['topic_id']), get_setting('contents_per_page'), 4)) {
             foreach ($helpful_users as $key => $val) {
                 $users_list[$key] = $val['user_info'];
                 $users_list[$key]['experience'] = $val['experience'];
                 foreach ($val['experience'] as $exp_key => $exp_val) {
                     $users_list[$key]['total_agree_count'] += $exp_val['agree_count'];
                 }
             }
         }
     } else {
         $where = array();
         if ($_GET['group_id']) {
             $where[] = 'group_id = ' . intval($_GET['group_id']);
         }
         if ($_GET['sort_type']) {
             switch ($_GET['sort_type']) {
                 case 'passed':
                     $sort_key = 'question_quiz_count_passed DESC';
                     break;
                 case 'poft':
                     $sort_key = 'question_quiz_poft_ratio DESC';
                     break;
                 case 'question_count':
                     $sort_key = 'question_count DESC';
                     break;
                 case 'quiz_count':
                     $sort_key = 'question_quiz_count_total DESC';
                     break;
                 case 'integral':
                     $sort_key = 'integral DESC';
                     break;
                 default:
                     $sort_key = 'question_quiz_success_ratio DESC';
                     break;
             }
         } else {
             $sort_key = 'question_quiz_success_ratio DESC';
         }
         $where[] = 'forbidden = 0 AND group_id >=4 AND group_id < 99';
         $users_list = $this->model('account')->get_users_list(implode('', $where), calc_page_limit($_GET['page'], get_setting('user_rank_list_perpage')), true, false, $sort_key);
         TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/people/sort_type-' . $_GET['sort_type'] . '__group_id-' . $_GET['group_id']), 'total_rows' => $this->model('account')->get_user_count(implode(' AND ', $where)), 'per_page' => get_setting('user_rank_list_perpage')))->create_links());
     }
     if ($users_list) {
         foreach ($users_list as $key => $val) {
             if ($val['reputation']) {
                 $reputation_users_ids[] = $val['uid'];
                 $users_reputations[$val['uid']] = $val['reputation'];
             }
             $uids[] = $val['uid'];
         }
         if (!$_GET['topic_id']) {
             $reputation_topics = $this->model('people')->get_users_reputation_topic($reputation_users_ids, $users_reputations, 5);
             foreach ($users_list as $key => $val) {
                 $users_list[$key]['reputation_topics'] = $reputation_topics[$val['uid']];
             }
         }
         if ($uids and $this->user_id) {
             $users_follow_check = $this->model('follow')->users_follow_check($this->user_id, $uids);
             foreach ($users_list as $key => $val) {
                 $users_list[$key]['focus'] = $users_follow_check[$val['uid']];
             }
         }
         TPL::assign('users_list', array_values($users_list));
     }
     if (!$_GET['group_id']) {
         TPL::assign('parent_topics', $this->model('topic')->get_parent_topics());
     }
     TPL::assign('custom_group', $this->model('account')->get_user_group_list(0, 1));
     if ($_GET['sort_type']) {
         TPL::assign('sort_type', $_GET['sort_type']);
     }
     TPL::import_js('js/app/rank.js');
     TPL::output('people/square');
 }
Esempio n. 15
0
 public function publish_action()
 {
     if ($_GET['id']) {
         if (!$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator']) {
             H::redirect_msg(AWS_APP::lang()->_t('你没有权限编辑这个项目'), '/project/' . $_GET['id']);
         }
         if (!($project_info = $this->model('project')->get_project_info_by_id($_GET['id']))) {
             H::redirect_msg(AWS_APP::lang()->_t('该活动不存在'), '/project/');
         }
         $this->crumb(AWS_APP::lang()->_t('编辑活动'), '/project/publish/' . $_GET['id']);
         TPL::assign('project_topics', $this->model('topic')->get_topics_by_item_id($project_info['id'], 'project'));
         TPL::assign('project_products', $this->model('project')->get_products_by_project_id($project_info['id']));
         TPL::assign('project_info', $project_info);
     } else {
         if (!$this->user_info['permission']['publish_project']) {
             H::redirect_msg(AWS_APP::lang()->_t('你所在用户组没有权限发布活动'), '/project/');
         }
         $this->crumb(AWS_APP::lang()->_t('发布活动'), '/project/publish/');
     }
     if (get_setting('advanced_editor_enable') == 'Y') {
         // editor
         TPL::import_js('js/editor/ckeditor/ckeditor.js');
         TPL::import_js('js/editor/ckeditor/adapters/jquery.js');
     }
     TPL::import_js('js/jquery.date_input.js');
     if (get_setting('category_enable') == 'Y') {
         TPL::assign('project_category_list', $this->model('system')->build_category_html('question', 0, $project_info['category_id']));
     }
     TPL::assign('attach_access_key', md5($this->user_id . time()));
     TPL::output('project/publish');
 }
Esempio n. 16
0
function import_editor_static_files()
{
    TPL::import_js('js/editor/Markdown.Converter.js');
    TPL::import_js('js/editor/Markdown.Sanitizer.js');
    TPL::import_js('js/editor/Markdown.Editor.js');
}
Esempio n. 17
0
 public function index_action()
 {
     if ($_GET['notification_id']) {
         $this->model('notify')->read_notification($_GET['notification_id'], $this->user_id);
     }
     if (!($article_info = $this->model('article')->get_article_info_by_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('文章不存在或已被删除'), '/');
     }
     if ($article_info['has_attach']) {
         $article_info['attachs'] = $this->model('publish')->get_attach('article', $article_info['id'], 'min');
         $article_info['attachs_ids'] = FORMAT::parse_attachs($article_info['message'], true);
     }
     $article_info['user_info'] = $this->model('account')->get_user_info_by_uid($article_info['uid'], true);
     $article_info['message'] = FORMAT::parse_attachs(nl2br(FORMAT::parse_bbcode($article_info['message'])));
     if ($this->user_id) {
         $article_info['vote_info'] = $this->model('article')->get_article_vote_by_id('article', $article_info['id'], null, $this->user_id);
     }
     $article_info['vote_users'] = $this->model('article')->get_article_vote_users_by_id('article', $article_info['id'], 1, 10);
     // 是否为推荐到首页
     $article_info['is_recommend_homepage'] = $this->model('recommend')->recommend_homepage_check('article', $article_info['id']);
     TPL::assign('article_info', $article_info);
     $article_topics = $this->model('topic')->get_topics_by_item_id($article_info['id'], 'article');
     if ($article_topics) {
         TPL::assign('article_topics', $article_topics);
         foreach ($article_topics as $topic_info) {
             $article_topic_ids[] = $topic_info['topic_id'];
         }
     }
     TPL::assign('reputation_topics', $this->model('people')->get_user_reputation_topic($article_info['user_info']['uid'], $user['reputation'], 5));
     $this->crumb($article_info['title'], '/article/' . $article_info['id']);
     TPL::assign('human_valid', human_valid('answer_valid_hour'));
     if ($_GET['item_id']) {
         $comments[] = $this->model('article')->get_comment_by_id($_GET['item_id']);
     } else {
         $comments = $this->model('article')->get_comments($article_info['id'], $_GET['page'], 50);
     }
     if ($comments and $this->user_id) {
         foreach ($comments as $key => $val) {
             $comments[$key]['vote_info'] = $this->model('article')->get_article_vote_by_id('comment', $val['id'], 1, $this->user_id);
             $comments[$key]['message'] = $this->model('question')->parse_at_user($val['message']);
         }
     }
     if ($this->user_id) {
         TPL::assign('user_follow_check', $this->model('follow')->user_follow_check($this->user_id, $article_info['uid']));
     }
     TPL::assign('question_related_list', $this->model('question')->get_related_question_list(null, $article_info['title']));
     // 最新推荐文章
     $hot_articles = $this->model('article')->get_articles_list(null, 1, 5, 'votes DESC', null);
     foreach ($hot_articles as $key => $val) {
         $article_ids[] = $val['id'];
     }
     $article_attachs = $this->model('publish')->get_attachs('article', $article_ids, 'min');
     foreach ($hot_articles as $key => $val) {
         $hot_articles[$key]['attachs'] = $article_attachs[$val['id']];
     }
     TPL::assign('hot_articles', $hot_articles);
     // 推荐专题
     if (TPL::is_output('block/sidebar_hot_topics.tpl.htm', 'question/square')) {
         TPL::assign('sidebar_hot_topics', $this->model('module')->sidebar_hot_topics($_GET['category'], 4));
     }
     $this->model('article')->update_views($article_info['id']);
     TPL::assign('comments', $comments);
     TPL::assign('comments_count', $article_info['comments']);
     TPL::assign('human_valid', human_valid('answer_valid_hour'));
     TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/article/id-' . $article_info['id']), 'total_rows' => $article_info['comments'], 'per_page' => 50))->create_links());
     TPL::set_meta('keywords', implode(',', $this->model('system')->analysis_keyword($article_info['title'])));
     TPL::set_meta('description', $article_info['title'] . ' - ' . cjk_substr(str_replace("\r\n", ' ', strip_tags($article_info['message'])), 0, 128, 'UTF-8', '...'));
     TPL::assign('attach_access_key', md5($this->user_id . time()));
     $recommend_posts = $this->model('posts')->get_recommend_posts_by_topic_ids($article_topic_ids);
     if ($recommend_posts) {
         foreach ($recommend_posts as $key => $value) {
             if ($value['id'] and $value['id'] == $article_info['id']) {
                 unset($recommend_posts[$key]);
                 break;
             }
         }
         TPL::assign('recommend_posts', $recommend_posts);
     }
     // 收藏数量
     $bookmark_count = $this->model('favorite')->get_favorite_counts('article', $article_info['id']);
     TPL::assign('bookmark_count', $bookmark_count);
     TPL::import_js('js/sweetalert.min.js');
     TPL::import_css('css/sweetalert.css');
     TPL::import_js('js/jquery-qrcode.min.js');
     TPL::import_js('js/share.js');
     TPL::output('article/index');
 }
Esempio n. 18
0
function import_editor_static_files()
{
    TPL::import_js('js/editor/ckeditor/ckeditor.js');
    TPL::import_js('js/editor/ckeditor/adapters/jquery.js');
}
Esempio n. 19
0
 public function article_action()
 {
     if ($_GET['id']) {
         if (!($article_info = $this->model('article')->get_article_info_by_id($_GET['id']))) {
             H::redirect_msg(AWS_APP::lang()->_t('指定文章不存在'));
         }
         if (!$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator'] and !$this->user_info['permission']['edit_article'] and $article_info['uid'] != $this->user_id) {
             H::redirect_msg(AWS_APP::lang()->_t('你没有权限编辑这个文章'), '/article/' . $article_info['id']);
         }
         TPL::assign('article_topics', $this->model('topic')->get_topics_by_item_id($article_info['id'], 'article'));
     } else {
         if (!$this->user_info['permission']['publish_article']) {
             H::redirect_msg(AWS_APP::lang()->_t('你所在用户组没有权限发布文章'));
         } else {
             if ($this->is_post() and $_POST['message']) {
                 $article_info = array('title' => htmlspecialchars($_POST['title']), 'message' => htmlspecialchars($_POST['message']), 'category_id' => intval($_POST['category_id']));
             } else {
                 $draft_content = $this->model('draft')->get_data(1, 'article', $this->user_id);
                 $article_info = array('title' => htmlspecialchars($_POST['title']), 'message' => htmlspecialchars($draft_content['message']));
             }
         }
     }
     if ($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'] or $article_info['uid'] == $this->user_id and $_GET['id'] or !$_GET['id']) {
         TPL::assign('attach_access_key', md5($this->user_id . time()));
     }
     if (!$article_info['category_id']) {
         $article_info['category_id'] = $_GET['category_id'] ? intval($_GET['category_id']) : 0;
     }
     if (get_setting('category_enable') == 'Y') {
         TPL::assign('article_category_list', $this->model('system')->build_category_html('question', 0, $article_info['category_id']));
     }
     TPL::assign('human_valid', human_valid('question_valid_hour'));
     TPL::import_js('js/app/publish.js');
     if (get_setting('advanced_editor_enable') == 'Y') {
         import_editor_static_files();
     }
     if (get_setting('upload_enable') == 'Y') {
         // fileupload
         TPL::import_js('js/fileupload.js');
     }
     TPL::assign('recent_topics', @unserialize($this->user_info['recent_topics']));
     TPL::assign('article_info', $article_info);
     TPL::output('publish/article');
 }
Esempio n. 20
0
 public function index_action()
 {
     if ($this->user_id) {
         $this->crumb(AWS_APP::lang()->_t('精选'), '/explore');
         if (!$this->user_info['email']) {
             HTTP::redirect('/account/complete_profile/');
         }
     }
     if ($_GET['category']) {
         if (is_digits($_GET['category'])) {
             $category_info = $this->model('system')->get_category_info($_GET['category']);
         } else {
             $category_info = $this->model('system')->get_category_info_by_url_token($_GET['category']);
         }
     }
     if ($category_info) {
         TPL::assign('category_info', $category_info);
         $this->crumb($category_info['title'], '/category-' . $category_info['id']);
         $meta_description = $category_info['title'];
         if ($category_info['description']) {
             $meta_description .= ' - ' . $category_info['description'];
         }
         TPL::set_meta('description', $meta_description);
     }
     // 首页幻灯片
     $slides = $this->model('slide')->get_frontend_slides();
     foreach ($slides as $key => $val) {
         $slides[$key]['category_info'] = $this->model('slide')->get_slide_category_info($val['category']);
     }
     TPL::assign('slides', $slides);
     // 导航
     if (TPL::is_output('block/content_nav_menu.tpl.htm', 'explore/index')) {
         TPL::assign('content_nav_menu', $this->model('menu')->get_nav_menu_list('explore'));
     }
     // 置顶问题
     $recommend_items = $this->model('recommend')->get_recommend_homepage_items('top_question', $limit = 4);
     foreach ($recommend_items as $key => $item) {
         $question_info = $this->model('question')->get_question_info_by_id($item['item_id']);
         if ($question_info['has_attach']) {
             $question_info['attachs'] = $this->model('publish')->get_attach('question', $question_info['question_id'], 'square');
         }
         // 答题选项
         if ($question_info['quiz_id'] > 0) {
             $question_info['quiz_info'] = $this->model('quiz')->get_question_quiz_info_by_id($question_info['quiz_id']);
         }
         // 分类信息
         $question_info['category_info'] = $this->model('system')->get_category_info($question_info['category_id']);
         $top_question_list[$key] = $question_info;
     }
     TPL::assign('top_question_list', $top_question_list);
     // 精选问题
     $filter_info = array('sort_type' => $_GET['sort_type'], 'category_id' => $category_info['id'], 'difficulty' => intval($_GET['difficulty']), 'quiztype' => intval($_GET['quiztype']), 'countdown' => intval($_GET['countdown']), 'urecord' => $_GET['urecord'], 'date' => $_GET['date'], 'url_base' => '/');
     TPL::assign('filter_info', $filter_info);
     $recommend_question_list = $this->model('question')->get_homepage_recommend_question_list($_GET['page'], get_setting('contents_per_page'), $_GET['sort_type'], $category_info['id'], $_GET['difficulty'], $_GET['quiztype'], $_GET['countdown'], $_GET['urecord'], $_GET['date'], $this->user_id);
     if ($recommend_question_list) {
         foreach ($recommend_question_list as $key => $val) {
             $this->model('question')->load_list_question_info($recommend_question_list[$key], $val, $this->user_id);
         }
     }
     TPL::assign('recommend_homepage_questions', $recommend_question_list);
     // TPL::assign('pagination', AWS_APP::pagination()->initialize(array(
     // 	'base_url' => get_js_url('/sort_type-' . preg_replace("/[\(\)\.;']/", '', $_GET['sort_type']) . '__category-' . $category_info['id'] . '__difficulty-' . $_GET['difficulty'] . '__quiztype-' . $_GET['quiztype'] . '__countdown-' . $_GET['countdown'] . '__is_recommend-' . $_GET['is_recommend'] . '__urecord-' . $_GET['urecord'] . '__date-' . $_GET['date']),
     // 	'total_rows' => $this->model('question')->get_homepage_recommend_question_list_total(),
     // 	'per_page' => get_setting('contents_per_page'),
     // 	'num_links' => 2
     // ))->create_links());
     // 精选专题
     $recommend_items = $this->model('recommend')->get_recommend_homepage_items('topic', $limit = 4);
     foreach ($recommend_items as $key => $item) {
         $topic_info = $this->model('topic')->get_topic_by_id($item['item_id']);
         $topic_info['topic_description'] = nl2br(FORMAT::parse_bbcode($topic_info['topic_description']));
         if ($topic_info['parent_id']) {
             $parent_topic_info = $this->model('topic')->get_topic_by_id($topic_info['parent_id']);
             $topic_info['category'] = $parent_topic_info['topic_title'];
             $topic_info['category_id'] = $parent_topic_info['topic_id'];
         }
         $recommend_homepage_topics[$key] = $topic_info;
     }
     TPL::assign('recommend_homepage_topics', $recommend_homepage_topics);
     // 精选知识
     $recommend_items = $this->model('recommend')->get_recommend_homepage_items('article', $limit = 5);
     foreach ($recommend_items as $key => $item) {
         $article_ids[] = $item['item_id'];
     }
     // 获取文章缩略图
     $article_attachs = $this->model('publish')->get_attachs('article', $article_ids, 'min');
     foreach ($recommend_items as $key => $item) {
         $article_info = $this->model('article')->get_article_info_by_id($item['item_id']);
         $article_info['attachs'] = $article_attachs[$article_info['id']];
         $recommend_homepage_articles[$key] = $article_info;
     }
     TPL::assign('recommend_homepage_articles', $recommend_homepage_articles);
     // 边栏可能感兴趣的人
     if (TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'explore/index')) {
         TPL::assign('sidebar_recommend_users_topics', $this->model('module')->recommend_users_topics($this->user_id));
     }
     // 边栏热门用户
     if (TPL::is_output('block/sidebar_hot_users.tpl.htm', 'explore/index')) {
         TPL::assign('sidebar_hot_users', $this->model('module')->sidebar_hot_users($this->user_id, 5));
     }
     // 边栏热门话题
     if (TPL::is_output('block/sidebar_hot_topics.tpl.htm', 'explore/index')) {
         TPL::assign('sidebar_hot_topics', $this->model('module')->sidebar_hot_topics($category_info['id']));
     }
     // 边栏专题
     if (TPL::is_output('block/sidebar_feature.tpl.htm', 'explore/index')) {
         TPL::assign('feature_list', $this->model('module')->feature_list());
     }
     // if (! $_GET['sort_type'] AND !$_GET['is_recommend'])
     // {
     // 	$_GET['sort_type'] = 'new';
     // }
     // if ($_GET['sort_type'] == 'hot')
     // {
     // 	$posts_list = $this->model('posts')->get_hot_posts(null, $category_info['id'], null, $_GET['day'], $_GET['page'], get_setting('contents_per_page'));
     // }
     // else
     // {
     // 	$posts_list = $this->model('posts')->get_posts_list(null, $_GET['page'], get_setting('contents_per_page'), $_GET['sort_type'], null, $category_info['id'], $_GET['answer_count'], $_GET['day'], $_GET['is_recommend']);
     // }
     // if ($posts_list)
     // {
     // 	foreach ($posts_list AS $key => $val)
     // 	{
     // 		if ($val['answer_count'])
     // 		{
     // 			$posts_list[$key]['answer_users'] = $this->model('question')->get_answer_users_by_question_id($val['question_id'], 2, $val['published_uid']);
     // 		}
     // 	}
     // }
     // TPL::assign('pagination', AWS_APP::pagination()->initialize(array(
     // 	'base_url' => get_js_url('/sort_type-' . preg_replace("/[\(\)\.;']/", '', $_GET['sort_type']) . '__category-' . $category_info['id'] . '__day-' . intval($_GET['day']) . '__is_recommend-' . intval($_GET['is_recommend'])),
     // 	'total_rows' => $this->model('posts')->get_posts_list_total(),
     // 	'per_page' => get_setting('contents_per_page')
     // ))->create_links());
     // TPL::assign('posts_list', $posts_list);
     // TPL::assign('posts_list_bit', TPL::output('explore/ajax/list', false));
     // 是否签到成功
     TPL::assign('signed_in', $this->model('sign')->is_signed_today($this->user_id));
     // 用户排行榜
     TPL::assign('top_user_list_success_ratio', array_values($this->model('account')->get_top_users('success_ratio', 3)));
     TPL::assign('top_user_list_integral', array_values($this->model('account')->get_top_users('integral', 3)));
     TPL::import_js('js/sweetalert.min.js');
     TPL::import_css('css/sweetalert.css');
     TPL::output('explore/index');
 }
 public function __construct()
 {
     parent::__construct(false);
     if ($_GET['app'] != 'admin') {
         return false;
     }
     TPL::import_clean();
     if (defined('SYSTEM_LANG')) {
         TPL::import_js(base_url() . '/language/' . SYSTEM_LANG . '.js');
     }
     if (HTTP::is_browser('ie', 8)) {
         TPL::import_js('js/jquery.js');
     } else {
         TPL::import_js('js/jquery.2.js');
     }
     TPL::import_js(array('admin/js/aws_admin.js', 'admin/js/aws_admin_template.js', 'js/jquery.form.js', 'admin/js/framework.js', 'admin/js/global.js'));
     TPL::import_css(array('admin/css/common.css'));
     if (in_array($_GET['act'], array('login', 'login_process'))) {
         return true;
     }
     if ($admin_info = H::decode_hash(AWS_APP::session()->admin_login)) {
         if ($admin_info['uid'] != $this->user_id or $admin_info['UA'] != $_SERVER['HTTP_USER_AGENT'] or !AWS_APP::session()->permission['is_administortar'] and !AWS_APP::session()->permission['is_moderator']) {
             unset(AWS_APP::session()->admin_login);
             if ($_POST['_post_type'] == 'ajax') {
                 H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('会话超时, 请重新登录')));
             } else {
                 H::redirect_msg(AWS_APP::lang()->_t('会话超时, 请重新登录'), '/admin/login/url-' . base64_encode($_SERVER['REQUEST_URI']));
             }
         }
     } else {
         if ($_POST['_post_type'] == 'ajax') {
             H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('会话超时, 请重新登录')));
         } else {
             HTTP::redirect('/admin/login/url-' . base64_encode($_SERVER['REQUEST_URI']));
         }
     }
     $this->setup();
 }
Esempio n. 22
0
 public function index_action()
 {
     if ($_GET['notification_id']) {
         $this->model('notify')->read_notification($_GET['notification_id'], $this->user_id);
     }
     if (is_mobile()) {
         HTTP::redirect('/m/article/' . $_GET['id']);
     }
     if (!($article_info = $this->model('article')->get_article_info_by_id($_GET['id']))) {
         H::redirect_msg(AWS_APP::lang()->_t('文章不存在或已被删除'), '/');
     }
     if ($article_info['has_attach']) {
         $article_info['attachs'] = $this->model('publish')->get_attach('article', $article_info['id'], 'min');
         $article_info['attachs_ids'] = FORMAT::parse_attachs($article_info['message'], true);
     }
     $article_info['user_info'] = $this->model('account')->get_user_info_by_uid($article_info['uid'], true);
     $article_info['message'] = FORMAT::parse_attachs(nl2br(FORMAT::parse_markdown($article_info['message'])));
     if ($this->user_id) {
         $article_info['vote_info'] = $this->model('article')->get_article_vote_by_id('article', $article_info['id'], null, $this->user_id);
     }
     $article_info['vote_users'] = $this->model('article')->get_article_vote_users_by_id('article', $article_info['id'], 1, 10);
     TPL::assign('article_info', $article_info);
     $article_topics = $this->model('topic')->get_topics_by_item_id($article_info['id'], 'article');
     if ($article_topics) {
         TPL::assign('article_topics', $article_topics);
         foreach ($article_topics as $topic_info) {
             $article_topic_ids[] = $topic_info['topic_id'];
         }
     }
     TPL::assign('reputation_topics', $this->model('people')->get_user_reputation_topic($article_info['user_info']['uid'], $user['reputation'], 5));
     $this->crumb($article_info['title'], '/article/' . $article_info['id']);
     TPL::assign('human_valid', human_valid('answer_valid_hour'));
     if ($_GET['item_id']) {
         $comments[] = $this->model('article')->get_comment_by_id($_GET['item_id']);
     } else {
         $comments = $this->model('article')->get_comments($article_info['id'], $_GET['page'], 100);
     }
     if ($comments and $this->user_id) {
         foreach ($comments as $key => $val) {
             $comments[$key]['vote_info'] = $this->model('article')->get_article_vote_by_id('comment', $val['id'], 1, $this->user_id);
         }
     }
     if ($this->user_id) {
         TPL::assign('user_follow_check', $this->model('follow')->user_follow_check($this->user_id, $article_info['uid']));
     }
     TPL::assign('question_related_list', $this->model('question')->get_related_question_list(null, $article_info['title']));
     $this->model('article')->update_views($article_info['id']);
     TPL::assign('comments', $comments);
     TPL::assign('comments_count', $article_info['comments']);
     TPL::assign('human_valid', human_valid('answer_valid_hour'));
     TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/article/id-' . $article_info['id']), 'total_rows' => $article_info['comments'], 'per_page' => 100))->create_links());
     TPL::set_meta('keywords', implode(',', $this->model('system')->analysis_keyword($article_info['title'])));
     TPL::set_meta('description', $article_info['title'] . ' - ' . cjk_substr(str_replace("\r\n", ' ', strip_tags($article_info['message'])), 0, 128, 'UTF-8', '...'));
     TPL::assign('attach_access_key', md5($this->user_id . time()));
     $recommend_posts = $this->model('posts')->get_recommend_posts_by_topic_ids($article_topic_ids);
     if ($recommend_posts) {
         foreach ($recommend_posts as $key => $value) {
             if ($value['id'] and $value['id'] == $article_info['id']) {
                 unset($recommend_posts[$key]);
                 break;
             }
         }
         TPL::assign('recommend_posts', $recommend_posts);
     }
     if (get_setting('advanced_editor_enable') == 'Y') {
         TPL::import_js('js/editor/prettify.js');
     }
     TPL::output('article/index');
 }