1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-04 06:39:14 +02:00

- author search should use clean names for searching [Bug #5752]

- local moderators are moderators too!
- don't show a "word is not contained in any post" message for ignored common words
- bold search words in search error messages [Bug #5762]


git-svn-id: file:///svn/phpbb/trunk@6708 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Nils Adermann 2006-12-03 18:03:33 +00:00
parent 3d38552c69
commit 9d9624a886
6 changed files with 17 additions and 11 deletions

View File

@ -37,7 +37,7 @@ class custom_profile
case 'profile':
// Show hidden fields to moderators/admins
if (!$auth->acl_gets('a_', 'm_'))
if (!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
{
$sql_where .= ' AND f.field_hide = 0';
}
@ -199,7 +199,7 @@ class custom_profile
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . ' f
WHERE l.lang_id = ' . $user->get_iso_lang_id() . '
AND f.field_active = 1 ' .
((!$auth->acl_gets('a_', 'm_')) ? ' AND f.field_hide = 0 ' : '') . '
((!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_')) ? ' AND f.field_hide = 0 ' : '') . '
AND f.field_no_view = 0
AND l.field_id = f.field_id
ORDER BY f.field_order';
@ -264,7 +264,7 @@ class custom_profile
case 'profile':
// Show hidden fields to moderators/admins
if (!$auth->acl_gets('a_', 'm_'))
if (!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
{
$sql_where .= ' AND f.field_hide = 0';
}

View File

@ -187,6 +187,8 @@ class fulltext_native extends search_backend
preg_match_all('#([^\\s+\\-|*()]+)(?:$|[\\s+\\-|()])#u', $keywords, $exact_words);
$exact_words = $exact_words[1];
$common_ids = array();
if (sizeof($exact_words))
{
$sql = 'SELECT word_id, word_text, word_common
@ -200,6 +202,7 @@ class fulltext_native extends search_backend
if ($row['word_common'])
{
$this->common_words[] = $row['word_text'];
$common_ids[$row['word_text']] = (int) $row['word_id'];
continue;
}
@ -316,7 +319,10 @@ class fulltext_native extends search_backend
// throw an error if we shall not ignore unexistant words
else if (!$ignore_no_id)
{
trigger_error(sprintf($user->lang['WORD_IN_NO_POST'], $word));
if (!isset($common_ids[$word]))
{
trigger_error(sprintf($user->lang['WORD_IN_NO_POST'], $word));
}
}
}

View File

@ -1218,7 +1218,7 @@ class user extends session
if (!defined('DEBUG_EXTRA') && !defined('ADMIN_START') && !defined('IN_INSTALL') && !defined('IN_LOGIN') && file_exists($phpbb_root_path . 'install'))
{
// Adjust the message slightly according to the permissions
if ($auth->acl_gets('a_', 'm_'))
if ($auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))
{
$message = 'REMOVE_INSTALL';
}
@ -1231,7 +1231,7 @@ class user extends session
}
// Is board disabled and user not an admin or moderator?
if ($config['board_disable'] && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'm_'))
if ($config['board_disable'] && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
{
$message = (!empty($config['board_disable_msg'])) ? $config['board_disable_msg'] : 'BOARD_DISABLE';
trigger_error($message);
@ -1240,7 +1240,7 @@ class user extends session
// Is load exceeded?
if ($config['limit_load'] && $this->load !== false)
{
if ($this->load > floatval($config['limit_load']) && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'm_'))
if ($this->load > floatval($config['limit_load']) && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'm_') && !$auth->acl_gets('a_', 'm_'))
{
trigger_error('BOARD_UNAVAILABLE');
}

View File

@ -215,7 +215,7 @@ $lang = array_merge($lang, array(
'MBSTRING_FUNC_OVERLOAD' => 'Function overloading',
'MBSTRING_FUNC_OVERLOAD_EXPLAIN' => 'mbstring.func_overload must be set to either 0 or 4',
'MBSTRING_ENCODING_TRANSLATION' => 'Transparent character encoding',
'MBSTRING_ENCODING_TRANSLATION_EXPLAIN' => 'mbstring.encoding_translation must be set 0',
'MBSTRING_ENCODING_TRANSLATION_EXPLAIN' => 'mbstring.encoding_translation must be set to 0',
'MBSTRING_HTTP_INPUT' => 'HTTP input character conversion',
'MBSTRING_HTTP_INPUT_EXPLAIN' => 'mbstring.http_input must be set to pass',
'MBSTRING_HTTP_OUTPUT' => 'HTTP output character conversion',

View File

@ -50,8 +50,8 @@ $lang = array_merge($lang, array(
'NO_SEARCH' => 'Sorry but you are not permitted to use the search system.',
'NO_SEARCH_RESULTS' => 'No suitable matches were found.',
'NO_SEARCH_TIME' => 'Sorry but you cannot use search at this time. Please try again in a few minutes.',
'WORD_IN_NO_POST' => 'No posts were found because the word %s is not contained in any post.',
'WORDS_IN_NO_POST' => 'No posts were found because the words %s are not contained in any post.',
'WORD_IN_NO_POST' => 'No posts were found because the word <strong>%s</strong> is not contained in any post.',
'WORDS_IN_NO_POST' => 'No posts were found because the words <strong>%s</strong> are not contained in any post.',
'POST_CHARACTERS' => 'characters of posts',

View File

@ -103,7 +103,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$sql_where = (strpos($author, '*') !== false) ? ' LIKE ' : ' = ';
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . "
WHERE username $sql_where '" . $db->sql_escape(preg_replace('#\*+#', '%', $author)) . "'
WHERE username_clean $sql_where '" . $db->sql_escape(preg_replace('#\*+#', '%', utf8_clean_string($author))) . "'
AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query_limit($sql, 100);