本文整理汇总了PHP中cjk_substr函数的典型用法代码示例。如果您正苦于以下问题:PHP cjk_substr函数的具体用法?PHP cjk_substr怎么用?PHP cjk_substr使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cjk_substr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index_action
public function index_action()
{
$_GET['per_page'] = $_GET['per_page'] ? intval($_GET['per_page']) : get_setting('contents_per_page');
$result = $this->model('search')->search(cjk_substr($_GET['q'], 0, 64), $_GET['type'], $_GET['page'], $_GET['per_page'], $_GET['topic_ids'], $_GET['is_recommend']);
if (!$result) {
$result = array();
}
if ($_GET['is_question_id'] and is_digits($_GET['q'])) {
$question_info = $this->model('question')->get_question_info_by_id($_GET['q']);
if ($question_info) {
$result[] = $this->model('search')->prase_result_info($question_info);
}
}
if ($result) {
$key_arr = array('type', 'search_id', 'name', 'detail');
foreach ($result as $key => $val) {
foreach ($val as $k => $v) {
if (!in_array($k, $key_arr)) {
unset($result[$key][$k]);
}
}
}
}
H::ajax_json_output(AWS_APP::RSM(array('total_rows' => count($result), 'rows' => $result), 1, null));
}
示例2: topic_info_action
public function topic_info_action()
{
$topic_info = $this->model('topic')->get_topic_by_id($_GET['topic_id']);
$topic_info['type'] = 'topic';
$topic_info['topic_description'] = cjk_substr(strip_tags($topic_info['topic_description']), 0, 80, 'UTF-8', '...');
$topic_info['focus_count'] = $topic_info['focus_count'];
if ($this->user_id) {
$topic_info['focus'] = $this->model('topic')->has_focus_topic($this->user_id, $topic_info['topic_id']);
}
$topic_info['topic_pic'] = get_topic_pic_url('mid', $topic_info['topic_pic']);
$topic_info['url'] = get_js_url('/topic/' . $topic_info['url_token']);
H::ajax_json_output($topic_info);
}
示例3: search_action
public function search_action()
{
$result = $this->model('search')->search(cjk_substr($_GET['q'], 0, 64), $_GET['type'], 1, $_GET['limit'], $_GET['topic_ids'], $_GET['is_recommend']);
if (!$result) {
$result = array();
}
if ($_GET['is_question_id'] and is_digits($_GET['q'])) {
$question_info = $this->model('question')->get_question_info_by_id($_GET['q']);
if ($question_info) {
$result[] = $this->model('search')->prase_result_info($question_info);
}
}
H::ajax_json_output($result);
}
示例4: get_favorite_article_action
public function get_favorite_article_action()
{
if (empty($_GET['page'])) {
$_GET['page'] = 1;
}
if (empty($_GET['per_page'])) {
$_GET['per_page'] = 10;
}
$uid = $this->user_id;
if (!empty($_GET['uid'])) {
$uid = intval($_GET['uid']);
}
$data = $this->model('api')->get_favorite_article($uid, $_GET['page'], $_GET['per_page']);
if (!empty($data['rows'])) {
foreach ($data['rows'] as $k => $v) {
$data['rows'][$k]['message'] = cjk_substr(strip_ubb($v['message']), 0, 80, 'utf-8');
}
}
if (empty($data['rows'])) {
$data['rows'] = null;
$data['total_rows'] = 0;
}
H::ajax_json_output(AWS_APP::RSM($data, 1, null));
}
示例5: get_last_messages
public function get_last_messages($dialog_ids)
{
if (!is_array($dialog_ids)) {
return false;
}
foreach ($dialog_ids as $dialog_id) {
$dialog_message = $this->fetch_row('inbox', 'dialog_id = ' . intval($dialog_id), 'id DESC');
$last_message[$dialog_id] = cjk_substr($dialog_message['message'], 0, 60, 'UTF-8', '...');
}
return $last_message;
}
示例6: fetch_share_data_action
public function fetch_share_data_action()
{
switch ($_GET['type']) {
case 'question':
$question_info = $this->model('question')->get_question_info_by_id($_GET['item_id']);
$question_info['question_content'] = trim(cjk_substr($question_info['question_content'], 0, 100, 'UTF-8', '...'), "\r\n\t");
$url = get_js_url('/question/' . $question_info['question_id'] . '?fromuid=' . $this->user_id);
$message = AWS_APP::lang()->_t('我看到一个不错的问题, 想和你分享:') . ' ' . $question_info['question_content'] . ' ' . $url;
break;
case 'answer':
$answer_info = $this->model('answer')->get_answer_by_id($_GET['item_id']);
$user_info = $this->model('account')->get_user_info_by_uid($answer_info['uid']);
$question_info = $this->model('question')->get_question_info_by_id($answer_info['question_id']);
$answer_info['answer_content'] = trim(cjk_substr($answer_info['answer_content'], 0, 100, 'UTF-8', '...'), "\r\n\t");
$answer_info['answer_content'] = str_replace(array("\r", "\n", "\t"), ' ', $answer_info['answer_content']);
$url = get_js_url('/question/' . $answer_info['question_id'] . '?fromuid=' . $this->user_id . '&answer_id=' . $answer_info['answer_id'] . '&single=true');
if ($answer_info['anonymous']) {
$user_info['user_name'] = AWS_APP::lang()->_t('匿名用户');
}
$message = AWS_APP::lang()->_t('我看到一个不错的问题, 想和你分享:') . ' ' . $question_info['question_content'] . ' - ' . $user_info['user_name'] . ": " . $answer_info['answer_content'] . ' ' . $url;
break;
case 'article':
$article_info = $this->model('article')->get_article_info_by_id($_GET['item_id']);
$article_info['message'] = trim(cjk_substr($article_info['message'], 0, 100, 'UTF-8', '...'), "\r\n\t");
$article_info['message'] = str_replace(array("\r", "\n", "\t"), ' ', $article_info['message']);
$url = get_js_url('/article/' . $article_info['id'] . '?fromuid=' . $this->user_id);
$message = AWS_APP::lang()->_t('我看到一个不错的文章, 想和你分享:') . ' ' . $article_info['title'] . ": " . $article_info['message'] . ' ' . $url;
break;
}
$data = array('message' => $message, 'url' => $url, 'sina_akey' => get_setting('sina_akey') ? get_setting('sina_akey') : '3643094708', 'qq_app_key' => get_setting('qq_app_key') ? get_setting('qq_app_key') : '801158211');
H::ajax_json_output(AWS_APP::RSM(array('share_txt' => $data), 1, null));
}
示例7: index_action
//.........这里部分代码省略.........
}
} 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_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);
}
foreach ($answer_list as $answer) {
$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'] = cjk_substr(strip_ubb($answer['answer_content']), 0, 100);
//$answer['agree_users'] = $answer_agree_users[$answer['answer_id']];
$answer['agree_status'] = $answer_vote_status[$answer['answer_id']];
$answer['user_info']['avatar_file'] = get_avatar_url($answer['uid']);
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]);
}
$question_info['user_answered'] = 0;
//如果系统设置了用户只能回答一次
if (get_setting('answer_unique') == 'Y') {
if ($this->model('answer')->has_answer_by_uid($question_info['question_id'], $this->user_id)) {
$question_info['user_answered'] = 1;
} else {
$question_info['user_answered'] = 0;
}
}
}
$question_info['user_follow_check'] = 0;
$question_info['user_question_focus'] = 0;
$question_info['user_thanks'] = 0;
if ($this->user_id) {
if ($this->model('question')->get_question_thanks($question_info['question_id'], $this->user_id)) {
$question_info['user_thanks'] = 1;
}
//当前用户是否已关注该问题作者
if ($this->model('follow')->user_follow_check($this->user_id, $question_info['published_uid'])) {
$question_info['user_follow_check'] = 1;
示例8: create_comment
public function create_comment($access_token, $id, $comment)
{
$client = new Services_Weibo_WeiboClient(get_setting('sina_akey'), get_setting('sina_skey'), $access_token);
return $client->send_comment($id, cjk_substr($comment, 0, 140, 'UTF-8', '...'));
}
示例9: excerpt
function excerpt($html, $start, $length, $dot = '...')
{
return cjk_substr(trim(preg_replace('/(\\s|\\ \\;| |\\xc2\\xa0|[[attach].*[\\/attach]]|[[\\/\\!]*?[^\\[\\]]*?]|si)/', '', strip_tags($html))), intval($start), intval($start) + intval($length), 'UTF-8', $dot);
}
示例10: user_actions_by_where_action
public function user_actions_by_where_action()
{
if (isset($_GET['perpage']) and intval($_GET['perpage']) > 0) {
$this->per_page = intval($_GET['perpage']);
}
$associate_type = $_GET['type'];
if (!in_array($associate_type, array(ACTION_LOG::CATEGORY_ARTICLE, ACTION_LOG::CATEGORY_QUESTION, ACTION_LOG::CATEGORY_ANSWER, ACTION_LOG::CATEGORY_NEWS))) {
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('参数有误')));
}
$associate_action = $_GET['actions'];
if (empty($_GET['page'])) {
$_GET['page'] = 0;
}
if ($data = $this->model('actions')->get_user_action_by_where($associate_type, $associate_action, $_GET['uid'], intval($_GET['page']) * $this->per_page . ", {$this->per_page}")) {
foreach ($data as $k => $v) {
if (!empty($v['info']['message']) and strlen($v['info']['message']) > 80) {
$data[$k]['info']['message'] = cjk_substr(strip_tags($v['info']['message']), 0, 80, 'utf-8') . '...';
}
}
} else {
$data = null;
}
H::ajax_json_output(AWS_APP::RSM(array('total_rows' => count($data), 'rows' => $data), 1, null));
}
示例11: index_action
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');
}
示例12: index_action
public function index_action()
{
if (is_mobile()) {
HTTP::redirect('/m/topic/' . $_GET['id']);
}
if (is_digits($_GET['id'])) {
if (!($topic_info = $this->model('topic')->get_topic_by_id($_GET['id']))) {
$topic_info = $this->model('topic')->get_topic_by_title($_GET['id']);
}
} else {
if (!($topic_info = $this->model('topic')->get_topic_by_title($_GET['id']))) {
$topic_info = $this->model('topic')->get_topic_by_url_token($_GET['id']);
}
}
if (!$topic_info) {
header('HTTP/1.1 404 Not Found');
H::redirect_msg(AWS_APP::lang()->_t('话题不存在'), '/');
}
if ($topic_info['merged_id'] and $topic_info['merged_id'] != $topic_info['topic_id']) {
if ($this->model('topic')->get_topic_by_id($topic_info['merged_id'])) {
HTTP::redirect('/topic/' . $topic_info['merged_id'] . '?rf=' . $topic_info['topic_id']);
} else {
$this->model('topic')->remove_merge_topic($topic_info['topic_id'], $topic_info['merged_id']);
}
}
if (urldecode($topic_info['url_token']) != $_GET['id']) {
HTTP::redirect('/topic/' . $topic_info['url_token'] . '?rf=' . $_GET['rf']);
}
if (is_digits($_GET['rf']) and $_GET['rf']) {
if ($from_topic = $this->model('topic')->get_topic_by_id($_GET['rf'])) {
$redirect_message[] = AWS_APP::lang()->_t('话题 (%s) 已与当前话题合并', $from_topic['topic_title']);
}
}
if ($topic_info['seo_title']) {
TPL::assign('page_title', $topic_info['seo_title']);
} else {
$this->crumb($topic_info['topic_title'], '/topic/' . $topic_info['url_token']);
}
if ($this->user_id) {
$topic_info['has_focus'] = $this->model('topic')->has_focus_topic($this->user_id, $topic_info['topic_id']);
}
if ($topic_info['topic_description']) {
TPL::set_meta('description', $topic_info['topic_title'] . ' - ' . cjk_substr(str_replace("\r\n", ' ', strip_tags($topic_info['topic_description'])), 0, 128, 'UTF-8', '...'));
}
$topic_info['topic_description'] = nl2br(FORMAT::parse_bbcode($topic_info['topic_description']));
TPL::assign('topic_info', $topic_info);
TPL::assign('best_answer_users', $this->model('topic')->get_best_answer_users_by_topic_id($topic_info['topic_id'], 5));
switch ($topic_info['model_type']) {
default:
$related_topics_ids = array();
$page_keywords[] = $topic_info['topic_title'];
if ($related_topics = $this->model('topic')->related_topics($topic_info['topic_id'])) {
foreach ($related_topics as $key => $val) {
$related_topics_ids[$val['topic_id']] = $val['topic_id'];
$page_keywords[] = $val['topic_title'];
}
}
TPL::set_meta('keywords', implode(',', $page_keywords));
TPL::set_meta('description', cjk_substr(str_replace("\r\n", ' ', strip_tags($topic_info['topic_description'])), 0, 128, 'UTF-8', '...'));
if ($child_topic_ids = $this->model('topic')->get_child_topic_ids($topic_info['topic_id'])) {
foreach ($child_topic_ids as $key => $topic_id) {
$related_topics_ids[$topic_id] = $topic_id;
}
}
TPL::assign('related_topics', $related_topics);
$log_list = ACTION_LOG::get_action_by_event_id($topic_info['topic_id'], 10, ACTION_LOG::CATEGORY_TOPIC, implode(',', array(ACTION_LOG::ADD_TOPIC, ACTION_LOG::MOD_TOPIC, ACTION_LOG::MOD_TOPIC_DESCRI, ACTION_LOG::MOD_TOPIC_PIC, ACTION_LOG::DELETE_TOPIC, ACTION_LOG::ADD_RELATED_TOPIC, ACTION_LOG::DELETE_RELATED_TOPIC)), -1);
$log_list = $this->model('topic')->analysis_log($log_list);
$contents_topic_id = $topic_info['topic_id'];
$contents_topic_title = $topic_info['topic_title'];
if ($merged_topics = $this->model('topic')->get_merged_topic_ids($topic_info['topic_id'])) {
foreach ($merged_topics as $key => $val) {
$merged_topic_ids[] = $val['source_id'];
}
$contents_topic_id .= ',' . implode(',', $merged_topic_ids);
if ($merged_topics_info = $this->model('topic')->get_topics_by_ids($merged_topic_ids)) {
foreach ($merged_topics_info as $key => $val) {
$merged_topic_title[] = $val['topic_title'];
}
}
if ($merged_topic_title) {
$contents_topic_title .= ',' . implode(',', $merged_topic_title);
}
}
$contents_related_topic_ids = array_merge($related_topics_ids, explode(',', $contents_topic_id));
TPL::assign('contents_related_topic_ids', implode(',', $contents_related_topic_ids));
if ($posts_list = $this->model('posts')->get_posts_list(null, 1, get_setting('contents_per_page'), 'new', $contents_related_topic_ids)) {
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('posts_list', $posts_list);
TPL::assign('all_list_bit', TPL::output('explore/ajax/list', false));
if ($posts_list = $this->model('posts')->get_posts_list(null, 1, get_setting('contents_per_page'), null, $contents_related_topic_ids, null, null, 30, true)) {
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']);
}
}
//.........这里部分代码省略.........
示例13: topic_best_answer_list_action
public function topic_best_answer_list_action()
{
if (!$_GET['topic_id']) {
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('参数错误')));
}
$_GET['page'] = $_GET['page'] ? $_GET['page'] - 1 : 0;
$per_page = get_setting('contents_per_page');
if ($_GET['per_page']) {
$per_page = intval($_GET['per_page']);
}
//$action_list = $this->model('topic')->get_topic_best_answer_action_list(intval($_GET['topic_id']), $this->user_id, intval($_GET['page']) * get_setting('contents_per_page') . ', ' . get_setting('contents_per_page'));
$action_list = $this->model('topic')->get_topic_best_answer_action_list(intval($_GET['topic_id']), $this->user_id, intval($_GET['page']) * $per_page . ', ' . $per_page);
$question_info_key = array('question_id', 'question_content');
$answer_info_key = array('answer_id', 'answer_content', 'add_time', 'against_count', 'agree_count', 'comment_count', 'thanks_count', 'agree_status');
if ($action_list) {
foreach ($action_list as $key => $val) {
foreach ($val as $kk => $vv) {
if (!in_array($kk, array('question_info', 'user_info', 'answer_info'))) {
unset($action_list[$key][$kk]);
}
if ($kk == 'question_info') {
foreach ($vv as $k => $v) {
if (!in_array($k, $question_info_key)) {
unset($action_list[$key][$kk][$k]);
}
}
}
if ($kk == 'user_info') {
$action_list[$key][$kk] = $this->model('myapi')->get_clean_user_info($vv);
}
if ($kk == 'answer_info') {
foreach ($vv as $k => $v) {
if (!in_array($k, $answer_info_key)) {
unset($action_list[$key][$kk][$k]);
}
}
$vv['answer_content'] = $this->model('question')->parse_at_user(FORMAT::parse_attachs(nl2br(FORMAT::parse_bbcode($vv['answer_content']))));
$action_list[$key][$kk]['answer_content'] = cjk_substr(trim(strip_tags($vv['answer_content'])), 0, 100);
}
}
}
} else {
$action_list = null;
}
H::ajax_json_output(AWS_APP::RSM(array('total_rows' => count($action_list), 'rows' => array_values($action_list)), 1, null));
}
示例14: reply_ticket
public function reply_ticket($ticket_id, $message, $uid, $attach_access_key = null)
{
$ticket_info = $this->get_ticket_info_by_id($ticket_id);
if (!$ticket_info or $ticket_info['status'] == 'closed') {
return false;
}
$now = time();
$reply_id = $this->insert('ticket_reply', array('ticket_id' => $ticket_info['id'], 'message' => htmlspecialchars($message), 'uid' => intval($uid), 'time' => $now, 'uid' => intval($uid), 'ip' => ip2long(fetch_ip())));
if (!$reply_id) {
return false;
}
set_human_valid('answer_valid_hour');
if ($attach_access_key) {
$this->model('publish')->update_attach('ticket_reply', $reply_id, $attach_access_key);
}
if (!$ticket_info['reply_time']) {
$this->shutdown_update('ticket', array('reply_time' => $now), 'id = ' . $ticket_info['id']);
}
if ($ticket_info['weibo_msg_id']) {
$this->model('openid_weibo_weibo')->reply_answer_to_sina($question_info['question_id'], cjk_substr($answer_content, 0, 110, 'UTF-8', '...'));
}
if ($ticket_info['received_email_id']) {
$this->model('edm')->reply_answer_by_email($question_info['question_id'], nl2br(FORMAT::parse_bbcode($answer_content)));
}
return $reply_id;
}
示例15: index_action
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');
}