Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- acp_logs.php, mcp_logs.php:
- FIND
- $sql = 'DELETE FROM ' . LOG_TABLE . "
- WHERE log_type = {$this->log_type}
- $where_sql";
- $db->sql_query($sql);
- REPLACE WITH
- $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
- // Use no preg_quote for $keywords because this would lead to sole backslashes being added
- // We also use an OR connection here for spaces and the | string. Currently, regex is not supported for searching (but may come later).
- $keywords = preg_split('#[\s|]+#u', utf8_strtolower($keywords), 0, PREG_SPLIT_NO_EMPTY);
- $sql_keywords = '';
- if ($deleteall && !empty($keywords))
- {
- $keywords_pattern = array();
- // Build pattern and keywords...
- for ($i = 0, $num_keywords = sizeof($keywords); $i < $num_keywords; $i++)
- {
- $keywords_pattern[] = preg_quote($keywords[$i], '#');
- $keywords[$i] = $db->sql_like_expression($db->any_char . $keywords[$i] . $db->any_char);
- }
- $keywords_pattern = '#' . implode('|', $keywords_pattern) . '#ui';
- $operations = array();
- foreach ($user->lang as $key => $value)
- {
- if (substr($key, 0, 4) == 'LOG_' && preg_match($keywords_pattern, $value))
- {
- $operations[] = $key;
- }
- }
- $sql_keywords = ' AND (';
- if (!empty($operations))
- {
- $sql_keywords .= $db->sql_in_set('log_operation', $operations) . ' OR ';
- }
- $sql_keywords .= 'LOWER(log_data) ' . implode(' OR LOWER(log_data) ', $keywords) . ')';
- }
- $sql = 'DELETE FROM ' . LOG_TABLE . "
- WHERE log_type = {$this->log_type}
- $where_sql
- $sql_keywords";
- $db->sql_query($sql);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement