/** * 处理话题日志 * @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; }
/** * 处理话题日志 * @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; }