mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
[ticket/15540] Fix tests and small fixes
PHPBB3-15540
This commit is contained in:
parent
cc0d4efc8f
commit
5fd2c51ca8
8 changed files with 43 additions and 168 deletions
|
@ -1,121 +0,0 @@
|
|||
<?php
|
||||
|
||||
//
|
||||
// Security message:
|
||||
//
|
||||
// This script is potentially dangerous.
|
||||
// Remove or comment the next line (die(".... ) to enable this script.
|
||||
// Do NOT FORGET to either remove this script or disable it after you have used it.
|
||||
//
|
||||
|
||||
//
|
||||
// Security message:
|
||||
//
|
||||
// This script is potentially dangerous.
|
||||
// Remove or comment the next line (die(".... ) to enable this script.
|
||||
// Do NOT FORGET to either remove this script or disable it after you have used it.
|
||||
//
|
||||
die("Please read the first lines of this script for instructions on how to enable it");
|
||||
|
||||
//
|
||||
// Do not change anything below this line.
|
||||
//
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = '../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
$auth->acl($user->data);
|
||||
$user->setup();
|
||||
|
||||
$search_type = $config['search_type'];
|
||||
|
||||
if (!class_exists($search_type))
|
||||
{
|
||||
trigger_error('NO_SUCH_SEARCH_MODULE');
|
||||
}
|
||||
|
||||
$search = new $search_type($auth, $config, $db, $phpbb_dispatcher, $user, $phpbb_root_path, $phpEx);
|
||||
|
||||
print "<html>\n<body>\n";
|
||||
|
||||
//
|
||||
// Fetch a batch of posts_text entries
|
||||
//
|
||||
$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id
|
||||
FROM ". POSTS_TABLE;
|
||||
if ( !($result = $db->sql_query($sql)) )
|
||||
{
|
||||
$error = $db->sql_error();
|
||||
die("Couldn't get maximum post ID :: " . $sql . " :: " . $error['message']);
|
||||
}
|
||||
|
||||
$max_post_id = $db->sql_fetchrow($result);
|
||||
|
||||
$totalposts = $max_post_id['total'];
|
||||
$max_post_id = $max_post_id['max_post_id'];
|
||||
|
||||
$postcounter = (!isset($HTTP_GET_VARS['batchstart'])) ? 0 : $HTTP_GET_VARS['batchstart'];
|
||||
|
||||
$batchsize = 200; // Process this many posts per loop
|
||||
$batchcount = 0;
|
||||
for(;$postcounter <= $max_post_id; $postcounter += $batchsize)
|
||||
{
|
||||
$batchstart = $postcounter + 1;
|
||||
$batchend = $postcounter + $batchsize;
|
||||
$batchcount++;
|
||||
|
||||
$sql = "SELECT *
|
||||
FROM " . POSTS_TABLE . "
|
||||
WHERE post_id
|
||||
BETWEEN $batchstart
|
||||
AND $batchend";
|
||||
if( !($result = $db->sql_query($sql)) )
|
||||
{
|
||||
$error = $db->sql_error();
|
||||
die("Couldn't get post_text :: " . $sql . " :: " . $error['message']);
|
||||
}
|
||||
|
||||
$rowset = $db->sql_fetchrowset($result);
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$post_rows = count($rowset);
|
||||
|
||||
if( $post_rows )
|
||||
{
|
||||
|
||||
// $sql = "LOCK TABLES ".POST_TEXT_TABLE." WRITE";
|
||||
// $result = $db->sql_query($sql);
|
||||
print "\n<p>\n<a href='{$_SERVER['PHP_SELF']}?batchstart=$batchstart'>Restart from posting $batchstart</a><br>\n";
|
||||
|
||||
// For every post in the batch:
|
||||
for($post_nr = 0; $post_nr < $post_rows; $post_nr++ )
|
||||
{
|
||||
print ".";
|
||||
flush();
|
||||
|
||||
$post_id = $rowset[$post_nr]['post_id'];
|
||||
|
||||
$search->index('post', $rowset[$post_nr]['post_id'], $rowset[$post_nr]['post_text'], $rowset[$post_nr]['post_subject'], $rowset[$post_nr]['poster_id']);
|
||||
}
|
||||
// $sql = "UNLOCK TABLES";
|
||||
// $result = $db->sql_query($sql);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
print "<br>Removing common words (words that appear in more than 50% of the posts)<br>\n";
|
||||
flush();
|
||||
$search->tidy();
|
||||
print "Removed words that where too common.<br>";
|
||||
|
||||
echo "<br>Done";
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -149,66 +149,49 @@ class acp_search
|
|||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_SEARCH');
|
||||
}
|
||||
|
||||
if (isset($cfg_array['search_type']) && in_array($cfg_array['search_type'], $search_types, true) && ($cfg_array['search_type'] != $config['search_type']))
|
||||
if (isset($cfg_array['search_type']) && ($cfg_array['search_type'] != $config['search_type']))
|
||||
{
|
||||
$search = null;
|
||||
$error = false;
|
||||
|
||||
if (!$this->init_search($cfg_array['search_type'], $search, $error))
|
||||
$search_backend_factory = $phpbb_container->get('search.backend_factory');
|
||||
$search = $search_backend_factory->get($cfg_array['search_type']);
|
||||
if (confirm_box(true))
|
||||
{
|
||||
if (confirm_box(true))
|
||||
if (!method_exists($search, 'init') || !($error = $search->init()))
|
||||
{
|
||||
if (!method_exists($search, 'init') || !($error = $search->init()))
|
||||
{
|
||||
$config->set('search_type', $cfg_array['search_type']);
|
||||
$config->set('search_type', $cfg_array['search_type']);
|
||||
|
||||
if (!$updated)
|
||||
{
|
||||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_SEARCH');
|
||||
}
|
||||
$extra_message = '<br />' . $user->lang['SWITCHED_SEARCH_BACKEND'] . '<br /><a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=search&mode=index') . '">» ' . $user->lang['GO_TO_SEARCH_INDEX'] . '</a>';
|
||||
}
|
||||
else
|
||||
if (!$updated)
|
||||
{
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_CONFIG_SEARCH');
|
||||
}
|
||||
$extra_message = '<br />' . $user->lang['SWITCHED_SEARCH_BACKEND'] . '<br /><a href="' . append_sid("{$phpbb_admin_path}index.$phpEx", 'i=search&mode=index') . '">» ' . $user->lang['GO_TO_SEARCH_INDEX'] . '</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
confirm_box(false, $user->lang['CONFIRM_SEARCH_BACKEND'], build_hidden_fields(array(
|
||||
'i' => $id,
|
||||
'mode' => $mode,
|
||||
'submit' => true,
|
||||
'updated' => $updated,
|
||||
'config' => array('search_type' => $cfg_array['search_type']),
|
||||
)));
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
confirm_box(false, $user->lang['CONFIRM_SEARCH_BACKEND'], build_hidden_fields(array(
|
||||
'i' => $id,
|
||||
'mode' => $mode,
|
||||
'submit' => true,
|
||||
'updated' => $updated,
|
||||
'config' => array('search_type' => $cfg_array['search_type']),
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
$search = null;
|
||||
$error = false;
|
||||
if (!$this->init_search($config['search_type'], $search, $error))
|
||||
if ($updated)
|
||||
{
|
||||
if ($updated)
|
||||
if (method_exists($search, 'config_updated'))
|
||||
{
|
||||
if (method_exists($search, 'config_updated'))
|
||||
if ($search->config_updated())
|
||||
{
|
||||
if ($search->config_updated())
|
||||
{
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
trigger_error($user->lang['CONFIG_UPDATED'] . $extra_message . adm_back_link($this->u_action));
|
||||
}
|
||||
|
|
|
@ -275,7 +275,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_block_size'
|
|||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_gc', '7200');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_interval', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_store_results', '1800');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_type', '\phpbb\search\backend\fulltext_native');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('search_type', 'phpbb\search\backend\fulltext_native');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('secure_allow_deny', '1');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('secure_allow_empty_referer', '1');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('secure_downloads', '0');
|
||||
|
|
|
@ -1735,7 +1735,7 @@ class fulltext_native extends base implements search_backend_interface
|
|||
$totaltime = microtime(true) - $starttime;
|
||||
$rows_per_second = $row_count / $totaltime;
|
||||
meta_refresh(1, $u_action);
|
||||
trigger_error($user->lang('SEARCH_INDEX_CREATE_REDIRECT', (int) $row_count, $post_counter) . $user->lang('SEARCH_INDEX_CREATE_REDIRECT_RATE', $rows_per_second));
|
||||
trigger_error($this->user->lang('SEARCH_INDEX_CREATE_REDIRECT', (int) $row_count, $post_counter) . $this->user->lang('SEARCH_INDEX_CREATE_REDIRECT_RATE', $rows_per_second));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,24 +15,25 @@ namespace phpbb\search;
|
|||
|
||||
use phpbb\config\config;
|
||||
use phpbb\di\service_collection;
|
||||
use phpbb\search\backend\search_backend_interface;
|
||||
|
||||
class search_backend_factory
|
||||
{
|
||||
/**
|
||||
* @var \phpbb\config\config
|
||||
* @var config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @var \phpbb\di\service_collection
|
||||
* @var service_collection
|
||||
*/
|
||||
protected $search_backends;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \phpbb\config\config $config
|
||||
* @param \phpbb\di\service_collection $search_backends
|
||||
* @param config $config
|
||||
* @param service_collection $search_backends
|
||||
*/
|
||||
public function __construct(config $config, service_collection $search_backends)
|
||||
{
|
||||
|
@ -45,7 +46,7 @@ class search_backend_factory
|
|||
*
|
||||
* @param string $class
|
||||
*
|
||||
* @return \phpbb\search\backend\search_backend_interface
|
||||
* @return search_backend_interface
|
||||
*/
|
||||
public function get($class)
|
||||
{
|
||||
|
@ -55,7 +56,7 @@ class search_backend_factory
|
|||
/**
|
||||
* Obtains active search backend
|
||||
*
|
||||
* @return \phpbb\search\backend\search_backend_interface
|
||||
* @return search_backend_interface
|
||||
*/
|
||||
public function get_active()
|
||||
{
|
||||
|
|
|
@ -295,7 +295,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
|
|||
|
||||
// Select which method we'll use to obtain the post_id or topic_id information
|
||||
$search_backend_factory = $phpbb_container->get('search.backend_factory');
|
||||
$search = $search_backend_factory->get_search();
|
||||
$search = $search_backend_factory->get_active();
|
||||
|
||||
// let the search module split up the keywords
|
||||
if ($keywords)
|
||||
|
|
|
@ -323,6 +323,11 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case
|
|||
// Works as a workaround for tests
|
||||
$phpbb_container->set('attachment.manager', $attachment_delete);
|
||||
|
||||
$search_backend = $this->createMock(\phpbb\search\backend\search_backend_interface::class);
|
||||
$search_backend_factory = $this->createMock(\phpbb\search\search_backend_factory::class);
|
||||
$search_backend_factory->method('get_active')->willReturn($search_backend);
|
||||
$phpbb_container->set('search.backend_factory', $search_backend_factory);
|
||||
|
||||
delete_post($forum_id, $topic_id, $post_id, $data, $is_soft, $reason);
|
||||
|
||||
$result = $db->sql_query('SELECT post_id, post_visibility, post_delete_reason
|
||||
|
|
|
@ -54,6 +54,13 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case
|
|||
'auth.provider_collection',
|
||||
$provider_collection
|
||||
);
|
||||
|
||||
$search_backend = $this->createMock(\phpbb\search\backend\search_backend_interface::class);
|
||||
$search_backend_factory = $this->createMock(\phpbb\search\search_backend_factory::class);
|
||||
$search_backend_factory->method('get_active')->willReturn($search_backend);
|
||||
$phpbb_container->set('search.backend_factory', $search_backend_factory);
|
||||
|
||||
|
||||
$phpbb_container->setParameter('tables.auth_provider_oauth_token_storage', 'phpbb_oauth_tokens');
|
||||
$phpbb_container->setParameter('tables.auth_provider_oauth_states', 'phpbb_oauth_states');
|
||||
$phpbb_container->setParameter('tables.auth_provider_oauth_account_assoc', 'phpbb_oauth_accounts');
|
||||
|
|
Loading…
Add table
Reference in a new issue