Пример #1
0
 /**
  * 处理话题日志
  * @param array $log_list
  *
  * @return array
  */
 public function analysis_log($log_list, $published_uid = 0, $anonymous = 0)
 {
     if (!$log_list) {
         return $log_list;
     }
     foreach ($log_list as $key => $log) {
         $log_user_ids[] = $log['uid'];
     }
     if ($log_user_ids) {
         $log_users_info = $this->model('account')->get_user_info_by_uids($log_user_ids);
     }
     foreach ($log_list as $key => $log) {
         $title_list = null;
         $user_info = $log_users_info[$log['uid']];
         $user_name = $user_info['user_name'];
         $user_url = 'people/' . $user_info['url_token'];
         if ($published_uid == $log['uid'] and $anonymous) {
             $user_name_string = '匿名用户';
         } else {
             $user_name_string = '<a href="' . $user_url . '">' . $user_name . '</a>';
         }
         switch ($log['associate_action']) {
             case ACTION_LOG::ADD_QUESTION:
                 $title_list = $user_name_string . ' 添加了该问题</p><p>' . $log['associate_content'] . '</p><p>' . $log['associate_attached'] . '';
                 break;
             case ACTION_LOG::MOD_QUESTON_TITLE:
                 //修改问题标题
                 $title_list = $user_name_string . ' 修改了问题标题';
                 if ($log['addon_data']['modify_reason']) {
                     $title_list .= '[' . $log['addon_data']['modify_reason'] . ']';
                 }
                 $Services_Diff = new Services_Diff($log['associate_attached'], $log['associate_content']);
                 $title_list .= '<p>' . $Services_Diff->get_Text_Diff_Renderer_inline() . '</p>';
                 break;
             case ACTION_LOG::MOD_QUESTION_DESCRI:
                 //修改问题
                 $title_list = $user_name_string . ' 修改了问题内容';
                 if ($log['addon_data']['modify_reason']) {
                     $title_list .= '[' . $log['addon_data']['modify_reason'] . ']';
                 }
                 $Services_Diff = new Services_Diff($log['associate_attached'], $log['associate_content']);
                 $title_list .= '<p>' . $Services_Diff->get_Text_Diff_Renderer_inline() . '</p>';
                 break;
             case ACTION_LOG::ADD_TOPIC:
                 //添加话题
                 $topic_info = $this->model('topic')->get_topic_by_id($log['associate_attached']);
                 $title_list = $user_name_string . ' 给该问题添加了一个话题 <p><a href="topic/' . $topic_info['url_token'] . '">' . $log['associate_content'] . '</a>';
                 break;
             case ACTION_LOG::DELETE_TOPIC:
                 //移除话题
                 $topic_info = $this->model('topic')->get_topic_by_id($log['associate_attached']);
                 $title_list = $user_name_string . ' 移除了该问题的一个话题 <p><a href="topic/' . $topic_info['url_token'] . '">' . $log['associate_content'] . '</a>';
                 break;
             case ACTION_LOG::MOD_QUESTION_CATEGORY:
                 //修改分类
                 $title_list = $user_name_string . ' 修改了该问题的分类 <p><a href="explore/category-' . $log['associate_attached'] . '">' . $log['associate_content'] . '</a>';
                 break;
             case ACTION_LOG::MOD_QUESTION_ATTACH:
                 //修改附件
                 $title_list = $user_name_string . ' 修改了该问题的附件 ';
                 break;
             case ACTION_LOG::REDIRECT_QUESTION:
                 //问题重定向
                 $question_info = $this->get_question_info_by_id($log['associate_attached']);
                 if ($question_info) {
                     $title_list = $user_name_string . ' 将问题重定向至:<a href="question/' . $log['associate_attached'] . '">' . $question_info['question_content'] . '</a>';
                 }
                 break;
             case ACTION_LOG::DEL_REDIRECT_QUESTION:
                 //取消问题重定向
                 $title_list = $user_name_string . ' 取消了问题重定向 ';
                 break;
         }
         $data_list[] = $title_list ? array('title' => $title_list, 'add_time' => date('Y-m-d H:i:s', $log['add_time']), 'log_id' => sprintf('%06s', $log['history_id'])) : '';
     }
     return $data_list;
 }
Пример #2
0
 /**
  * 处理话题日志
  * @param array $log_list
  *
  * @return array
  */
 public function analysis_log($log_list)
 {
     $uid_list = array();
     $topic_list = array();
     if (!$log_list) {
         return false;
     }
     foreach ($log_list as $key => $log) {
         if (!in_array($log['uid'], $uid_list)) {
             $uid_list[] = $log['uid'];
         }
         if ($log['associate_attached'] and is_digits($log['associate_attached']) and !in_array($log['associate_attached'], $topic_list)) {
             $topic_list[] = $log['associate_attached'];
         }
         if ($log['associate_content'] and is_digits($log['associate_content']) and !in_array($log['associate_content'], $topic_list)) {
             $topic_list[] = $log['associate_content'];
         }
     }
     /**
      * 格式话简单数据类型
      */
     if ($topics_array = $this->get_topics_by_ids($topic_list)) {
         foreach ($topics_array as $key => $val) {
             $topic_title_list[$val['topic_id']] = $val['topic_title'];
         }
     }
     if ($user_name_array = $this->model('account')->get_user_info_by_uids($uid_list)) {
         foreach ($user_name_array as $user_info) {
             $user_info_list[$user_info['uid']] = $user_info;
         }
     }
     /**
      * 格式话数组
      */
     foreach ($log_list as $key => $log) {
         $user_name = $user_info_list[$log['uid']]['user_name'];
         $user_url = get_js_url('people/' . $user_info_list[$log['uid']]['url_token']);
         switch ($log['associate_action']) {
             case ACTION_LOG::ADD_TOPIC:
                 //增加话题
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('创建了该话题') . '</p>';
                 break;
             case ACTION_LOG::ADD_TOPIC_FOCUS:
                 //关注话题
                 break;
             case ACTION_LOG::DELETE_TOPIC:
                 //删除话题
                 break;
             case ACTION_LOG::MOD_TOPIC:
                 //修改话题标题
                 $Services_Diff = new Services_Diff($log['associate_attached'], $log['associate_content']);
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('修改了话题标题') . ' <p>' . $Services_Diff->get_Text_Diff_Renderer_inline() . "</p>";
                 break;
             case ACTION_LOG::MOD_TOPIC_DESCRI:
                 //修改话题描述
                 $log['associate_attached'] = trim($log['associate_attached']);
                 $log['associate_content'] = trim($log['associate_content']);
                 $Services_Diff = new Services_Diff($log['associate_attached'], $log['associate_content']);
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('修改了话题描述') . ' <p>' . $Services_Diff->get_Text_Diff_Renderer_inline() . '</p>';
                 break;
             case ACTION_LOG::MOD_TOPIC_PIC:
                 //修改话题图片
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('修改了话题图片');
                 break;
             case ACTION_LOG::ADD_RELATED_TOPIC:
                 //添加相关话题
                 $topic_info = $this->get_topic_by_id($log['associate_attached']);
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('添加了相关话题') . '<p><a href="topic/' . rawurlencode($topic_info['topic_title']) . '">' . $topic_info['topic_title'] . '</a></p>';
                 break;
             case ACTION_LOG::DELETE_RELATED_TOPIC:
                 //删除相关话题
                 $topic_info = $this->get_topic_by_id($log['associate_attached']);
                 $title_list = '<a href="' . $user_url . '">' . $user_name . '</a> ' . AWS_APP::lang()->_t('删除了相关话题') . '<p><a href="topic/' . rawurlencode($topic_info['topic_title']) . '">' . $topic_info['topic_title'] . '</a></p>';
                 break;
         }
         $data_list[] = $title_list ? array('user_name' => $user_name, 'title' => $title_list, 'add_time' => date('Y-m-d', $log['add_time']), 'log_id' => sprintf('%06s', $log['history_id']), 'user_url' => $user_url) : '';
     }
     return $data_list;
 }