mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Merge PR #844 branch 'dhruvgoel92/ticket/10936' into develop
* dhruvgoel92/ticket/10936: [ticket/10936] remove PCRE and mbstring support check [ticket/10936] fix language key
This commit is contained in:
commit
820ad818dd
2 changed files with 10 additions and 97 deletions
|
@ -27,8 +27,6 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
var $split_words = array();
|
var $split_words = array();
|
||||||
var $search_query;
|
var $search_query;
|
||||||
var $common_words = array();
|
var $common_words = array();
|
||||||
var $pcre_properties = false;
|
|
||||||
var $mbstring_regex = false;
|
|
||||||
|
|
||||||
public function __construct(&$error)
|
public function __construct(&$error)
|
||||||
{
|
{
|
||||||
|
@ -36,18 +34,6 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
|
|
||||||
$this->word_length = array('min' => $config['fulltext_mysql_min_word_len'], 'max' => $config['fulltext_mysql_max_word_len']);
|
$this->word_length = array('min' => $config['fulltext_mysql_min_word_len'], 'max' => $config['fulltext_mysql_max_word_len']);
|
||||||
|
|
||||||
// PHP may not be linked with the bundled PCRE lib and instead with an older version
|
|
||||||
if (phpbb_pcre_utf8_support())
|
|
||||||
{
|
|
||||||
$this->pcre_properties = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (function_exists('mb_ereg'))
|
|
||||||
{
|
|
||||||
$this->mbstring_regex = true;
|
|
||||||
mb_regex_encoding('UTF-8');
|
|
||||||
}
|
|
||||||
|
|
||||||
$error = false;
|
$error = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +56,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
|
|
||||||
if ($db->sql_layer != 'mysql4' && $db->sql_layer != 'mysqli')
|
if ($db->sql_layer != 'mysql4' && $db->sql_layer != 'mysqli')
|
||||||
{
|
{
|
||||||
return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_VERSION'];
|
return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_DATABASE'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->sql_query('SHOW TABLE STATUS LIKE \'' . POSTS_TABLE . '\'');
|
$result = $db->sql_query('SHOW TABLE STATUS LIKE \'' . POSTS_TABLE . '\'');
|
||||||
|
@ -133,40 +119,10 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
$split_keywords = preg_replace("#[\n\r\t]+#", ' ', trim(htmlspecialchars_decode($keywords)));
|
$split_keywords = preg_replace("#[\n\r\t]+#", ' ', trim(htmlspecialchars_decode($keywords)));
|
||||||
|
|
||||||
// Split words
|
// Split words
|
||||||
if ($this->pcre_properties)
|
|
||||||
{
|
|
||||||
$split_keywords = preg_replace('#([^\p{L}\p{N}\'*"()])#u', '$1$1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
$split_keywords = preg_replace('#([^\p{L}\p{N}\'*"()])#u', '$1$1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
||||||
}
|
|
||||||
else if ($this->mbstring_regex)
|
|
||||||
{
|
|
||||||
$split_keywords = mb_ereg_replace('([^\w\'*"()])', '\\1\\1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$split_keywords = preg_replace('#([^\w\'*"()])#u', '$1$1', str_replace('\'\'', '\' \'', trim($split_keywords)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->pcre_properties)
|
|
||||||
{
|
|
||||||
$matches = array();
|
$matches = array();
|
||||||
preg_match_all('#(?:[^\p{L}\p{N}*"()]|^)([+\-|]?(?:[\p{L}\p{N}*"()]+\'?)*[\p{L}\p{N}*"()])(?:[^\p{L}\p{N}*"()]|$)#u', $split_keywords, $matches);
|
preg_match_all('#(?:[^\p{L}\p{N}*"()]|^)([+\-|]?(?:[\p{L}\p{N}*"()]+\'?)*[\p{L}\p{N}*"()])(?:[^\p{L}\p{N}*"()]|$)#u', $split_keywords, $matches);
|
||||||
$this->split_words = $matches[1];
|
$this->split_words = $matches[1];
|
||||||
}
|
|
||||||
else if ($this->mbstring_regex)
|
|
||||||
{
|
|
||||||
mb_ereg_search_init($split_keywords, '(?:[^\w*"()]|^)([+\-|]?(?:[\w*"()]+\'?)*[\w*"()])(?:[^\w*"()]|$)');
|
|
||||||
|
|
||||||
while (($word = mb_ereg_search_regs()))
|
|
||||||
{
|
|
||||||
$this->split_words[] = $word[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$matches = array();
|
|
||||||
preg_match_all('#(?:[^\w*"()]|^)([+\-|]?(?:[\w*"()]+\'?)*[\w*"()])(?:[^\w*"()]|$)#u', $split_keywords, $matches);
|
|
||||||
$this->split_words = $matches[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// We limit the number of allowed keywords to minimize load on the database
|
// We limit the number of allowed keywords to minimize load on the database
|
||||||
if ($config['max_num_search_keywords'] && sizeof($this->split_words) > $config['max_num_search_keywords'])
|
if ($config['max_num_search_keywords'] && sizeof($this->split_words) > $config['max_num_search_keywords'])
|
||||||
|
@ -271,41 +227,10 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
// Split words
|
// Split words
|
||||||
if ($this->pcre_properties)
|
|
||||||
{
|
|
||||||
$text = preg_replace('#([^\p{L}\p{N}\'*])#u', '$1$1', str_replace('\'\'', '\' \'', trim($text)));
|
$text = preg_replace('#([^\p{L}\p{N}\'*])#u', '$1$1', str_replace('\'\'', '\' \'', trim($text)));
|
||||||
}
|
|
||||||
else if ($this->mbstring_regex)
|
|
||||||
{
|
|
||||||
$text = mb_ereg_replace('([^\w\'*])', '\\1\\1', str_replace('\'\'', '\' \'', trim($text)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$text = preg_replace('#([^\w\'*])#u', '$1$1', str_replace('\'\'', '\' \'', trim($text)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->pcre_properties)
|
|
||||||
{
|
|
||||||
$matches = array();
|
$matches = array();
|
||||||
preg_match_all('#(?:[^\p{L}\p{N}*]|^)([+\-|]?(?:[\p{L}\p{N}*]+\'?)*[\p{L}\p{N}*])(?:[^\p{L}\p{N}*]|$)#u', $text, $matches);
|
preg_match_all('#(?:[^\p{L}\p{N}*]|^)([+\-|]?(?:[\p{L}\p{N}*]+\'?)*[\p{L}\p{N}*])(?:[^\p{L}\p{N}*]|$)#u', $text, $matches);
|
||||||
$text = $matches[1];
|
$text = $matches[1];
|
||||||
}
|
|
||||||
else if ($this->mbstring_regex)
|
|
||||||
{
|
|
||||||
mb_ereg_search_init($text, '(?:[^\w*]|^)([+\-|]?(?:[\w*]+\'?)*[\w*])(?:[^\w*]|$)');
|
|
||||||
|
|
||||||
$text = array();
|
|
||||||
while (($word = mb_ereg_search_regs()))
|
|
||||||
{
|
|
||||||
$text[] = $word[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$matches = array();
|
|
||||||
preg_match_all('#(?:[^\w*]|^)([+\-|]?(?:[\w*]+\'?)*[\w*])(?:[^\w*]|$)#u', $text, $matches);
|
|
||||||
$text = $matches[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove too short or too long words
|
// remove too short or too long words
|
||||||
$text = array_values($text);
|
$text = array_values($text);
|
||||||
|
@ -908,14 +833,6 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||||
global $user, $config;
|
global $user, $config;
|
||||||
|
|
||||||
$tpl = '
|
$tpl = '
|
||||||
<dl>
|
|
||||||
<dt><label>' . $user->lang['FULLTEXT_MYSQL_PCRE'] . '</label><br /><span>' . $user->lang['FULLTEXT_MYSQL_PCRE_EXPLAIN'] . '</span></dt>
|
|
||||||
<dd>' . (($this->pcre_properties) ? $user->lang['YES'] : $user->lang['NO']) . ' (PHP ' . PHP_VERSION . ')</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt><label>' . $user->lang['FULLTEXT_MYSQL_MBSTRING'] . '</label><br /><span>' . $user->lang['FULLTEXT_MYSQL_MBSTRING_EXPLAIN'] . '</span></dt>
|
|
||||||
<dd>' . (($this->mbstring_regex) ? $user->lang['YES'] : $user->lang['NO']). '</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label>' . $user->lang['MIN_SEARCH_CHARS'] . ':</label><br /><span>' . $user->lang['FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
<dt><label>' . $user->lang['MIN_SEARCH_CHARS'] . ':</label><br /><span>' . $user->lang['FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||||
<dd>' . $config['fulltext_mysql_min_word_len'] . '</dd>
|
<dd>' . $config['fulltext_mysql_min_word_len'] . '</dd>
|
||||||
|
|
|
@ -51,13 +51,9 @@ $lang = array_merge($lang, array(
|
||||||
'DELETING_INDEX_IN_PROGRESS' => 'Deleting the index in progress',
|
'DELETING_INDEX_IN_PROGRESS' => 'Deleting the index in progress',
|
||||||
'DELETING_INDEX_IN_PROGRESS_EXPLAIN' => 'The search backend is currently cleaning its index. This can take a few minutes.',
|
'DELETING_INDEX_IN_PROGRESS_EXPLAIN' => 'The search backend is currently cleaning its index. This can take a few minutes.',
|
||||||
|
|
||||||
'FULLTEXT_MYSQL_INCOMPATIBLE_VERSION' => 'The MySQL fulltext backend can only be used with MySQL4 and above.',
|
'FULLTEXT_MYSQL_INCOMPATIBLE_DATABASE' => 'The MySQL fulltext backend can only be used with MySQL4 and above.',
|
||||||
'FULLTEXT_MYSQL_NOT_MYISAM' => 'MySQL fulltext indexes can only be used with MyISAM tables.',
|
'FULLTEXT_MYSQL_NOT_MYISAM' => 'MySQL fulltext indexes can only be used with MyISAM tables.',
|
||||||
'FULLTEXT_MYSQL_TOTAL_POSTS' => 'Total number of indexed posts',
|
'FULLTEXT_MYSQL_TOTAL_POSTS' => 'Total number of indexed posts',
|
||||||
'FULLTEXT_MYSQL_MBSTRING' => 'Support for non-latin UTF-8 characters using mbstring:',
|
|
||||||
'FULLTEXT_MYSQL_PCRE' => 'Support for non-latin UTF-8 characters using PCRE:',
|
|
||||||
'FULLTEXT_MYSQL_MBSTRING_EXPLAIN' => 'If PCRE does not have unicode character properties, the search backend will try to use mbstring’s regular expression engine.',
|
|
||||||
'FULLTEXT_MYSQL_PCRE_EXPLAIN' => 'This search backend requires PCRE unicode character properties, only available in PHP 4.4, 5.1 and above, if you want to search for non-latin characters.',
|
|
||||||
'FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN' => 'Words with at least this many characters will be indexed for searching. You or your host can only change this setting by changing the mysql configuration.',
|
'FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN' => 'Words with at least this many characters will be indexed for searching. You or your host can only change this setting by changing the mysql configuration.',
|
||||||
'FULLTEXT_MYSQL_MAX_SEARCH_CHARS_EXPLAIN' => 'Words with no more than this many characters will be indexed for searching. You or your host can only change this setting by changing the mysql configuration.',
|
'FULLTEXT_MYSQL_MAX_SEARCH_CHARS_EXPLAIN' => 'Words with no more than this many characters will be indexed for searching. You or your host can only change this setting by changing the mysql configuration.',
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue