diff options
Diffstat (limited to 'phpBB/includes/acp/acp_logs.php')
-rw-r--r-- | phpBB/includes/acp/acp_logs.php | 88 |
1 files changed, 5 insertions, 83 deletions
diff --git a/phpBB/includes/acp/acp_logs.php b/phpBB/includes/acp/acp_logs.php index 861df90777..35f2a3bf6b 100644 --- a/phpBB/includes/acp/acp_logs.php +++ b/phpBB/includes/acp/acp_logs.php @@ -105,87 +105,8 @@ class acp_logs $sql_where = ($sort_days) ? (time() - ($sort_days * 86400)) : 0; $sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC'); - $log_operation = request_var('log_operation', ''); - $log_operation_param = !empty($log_operation) ? '&log_operation=' . urlencode(htmlspecialchars_decode($log_operation)) : ''; - $s_lang_keys = '<option value="">' . $user->lang['SHOW_ALL_OPERATIONS'] . '</option>'; - - switch ($mode) - { - case 'admin': - $log_type = LOG_ADMIN; - $sql_forum = ''; - break; - - case 'mod': - $log_type = LOG_MOD; - - if ($topic_id) - { - $sql_forum = 'AND topic_id = ' . intval($topic_id); - } - else if (is_array($forum_id)) - { - $sql_forum = 'AND ' . $db->sql_in_set('forum_id', array_map('intval', $forum_id)); - } - else - { - $sql_forum = ($forum_id) ? 'AND forum_id = ' . intval($forum_id) : ''; - } - break; - - case 'user': - $log_type = LOG_USERS; - $sql_forum = 'AND reportee_id = ' . (int) $user_id; - break; - - case 'users': - $log_type = LOG_USERS; - $sql_forum = ''; - break; - - case 'critical': - $log_type = LOG_CRITICAL; - $sql_forum = ''; - break; - - default: - return; - } - - $sql = "SELECT DISTINCT log_operation - FROM " . LOG_TABLE . " - WHERE log_type = $log_type - " . (($limit_days) ? "AND log_time >= $sql_where " : ' ') . - $sql_forum; - $result = $db->sql_query($sql); - - while ($row = $db->sql_fetchrow($result)) - { - if (empty($row['log_operation'])) - { - continue; - } - - $selected = ($log_operation == $row['log_operation']) ? ' selected="selected"' : ''; - - if (isset($user->lang[$row['log_operation']])) - { - $text = htmlspecialchars(strip_tags(str_replace('<br />', ' ', $user->lang[$row['log_operation']])), ENT_COMPAT, 'UTF-8'); - - // Fill in sprintf placeholders with translated placeholder text - if (substr_count($text, '%')) - { - $text = vsprintf($text, array_fill(0, substr_count($text, '%'), $user->lang['LOGS_PLACEHOLDER'])); - } - } - else - { - $text = ucfirst(str_replace('_', ' ', strtolower($row['log_operation']))); - } - - $s_lang_keys .= '<option value="' . $row['log_operation'] . '"' . $selected . '>' . $text . '</option>'; - } - $db->sql_freeresult($result); + $keywords = utf8_normalize_nfc(request_var('keywords', '', true)); + $keywords_param = !empty($keywords) ? '&keywords=' . urlencode(htmlspecialchars_decode($keywords)) : ''; $l_title = $user->lang['ACP_' . strtoupper($mode) . '_LOGS']; $l_title_explain = $user->lang['ACP_' . strtoupper($mode) . '_LOGS_EXPLAIN']; @@ -206,7 +127,7 @@ class acp_logs // Grab log data $log_data = array(); $log_count = 0; - view_log($mode, $log_data, $log_count, $config['topics_per_page'], $start, $forum_id, 0, 0, $sql_where, $sql_sort, $log_operation); + view_log($mode, $log_data, $log_count, $config['topics_per_page'], $start, $forum_id, 0, 0, $sql_where, $sql_sort, $keywords); $template->assign_vars(array( 'L_TITLE' => $l_title, @@ -214,13 +135,14 @@ class acp_logs 'U_ACTION' => $this->u_action, 'S_ON_PAGE' => on_page($log_count, $config['topics_per_page'], $start), - 'PAGINATION' => generate_pagination($this->u_action . "&$u_sort_param$log_operation_param", $log_count, $config['topics_per_page'], $start, true), + 'PAGINATION' => generate_pagination($this->u_action . "&$u_sort_param$keywords_param", $log_count, $config['topics_per_page'], $start, true), 'S_LIMIT_DAYS' => $s_limit_days, 'S_SORT_KEY' => $s_sort_key, 'S_SORT_DIR' => $s_sort_dir, 'S_LANG_KEYS' => $s_lang_keys, 'S_CLEARLOGS' => $auth->acl_get('a_clearlogs'), + 'S_KEYWORDS' => $keywords, ) ); |