aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB')
-rwxr-xr-xphpBB/adm/images/progress_bar.gifbin0 -> 12892 bytes
-rw-r--r--phpBB/adm/style/acp_search.html119
-rw-r--r--phpBB/adm/style/search_index_progress_bar.html38
-rw-r--r--phpBB/includes/acp/acp_board.php37
-rw-r--r--phpBB/includes/acp/acp_search.php522
-rw-r--r--phpBB/includes/search/fulltext_mysql.php167
-rw-r--r--phpBB/includes/search/fulltext_phpbb.php96
-rw-r--r--phpBB/install/schemas/schema_data.sql239
-rw-r--r--phpBB/language/en/acp/board.php26
-rw-r--r--phpBB/language/en/acp/common.php5
-rw-r--r--phpBB/language/en/acp/search.php90
-rw-r--r--phpBB/language/en/common.php3
12 files changed, 1153 insertions, 189 deletions
diff --git a/phpBB/adm/images/progress_bar.gif b/phpBB/adm/images/progress_bar.gif
new file mode 100755
index 0000000000..75cf61c59e
--- /dev/null
+++ b/phpBB/adm/images/progress_bar.gif
Binary files differ
diff --git a/phpBB/adm/style/acp_search.html b/phpBB/adm/style/acp_search.html
new file mode 100644
index 0000000000..3ec8095720
--- /dev/null
+++ b/phpBB/adm/style/acp_search.html
@@ -0,0 +1,119 @@
+<!-- INCLUDE overall_header.html -->
+
+<a name="maincontent"></a>
+
+<!-- IF S_SETTINGS -->
+<h1>{L_ACP_SEARCH_SETTINGS}</h1>
+
+<p>{L_ACP_SEARCH_SETTINGS_EXPLAIN}</p>
+
+<form id="acp_search" method="post" action="{U_ACTION}">
+<fieldset>
+ <legend>{L_GENERAL_SEARCH_SETTINGS}</legend>
+
+ <dl>
+ <dt><label for="load_search">{L_YES_SEARCH}:</label><br /><span>{L_YES_SEARCH_EXPLAIN}</span></dt>
+ <dd><input type="radio" id="load_search" name="config[load_search]" value="1"<!-- IF S_YES_SEARCH --> checked="checked"<!-- ENDIF --> class="radio" />&nbsp;{L_YES}&nbsp;&nbsp;<input type="radio" name="config[load_search]" value="0"<!-- IF not S_YES_SEARCH --> checked="checked"<!-- ENDIF --> class="radio" />&nbsp;{L_NO}</dd>
+ </dl>
+ <dl>
+ <dt><label for="search_interval">{L_SEARCH_INTERVAL}:</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
+ <dd><input id="search_interval" type="text" size="4" maxlength="4" name="config[search_interval]" value="{SEARCH_INTERVAL}" /></dd>
+ </dl>
+ <dl>
+ <dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}:</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
+ <dd><input id="limit_search_load" type="text" size="4" maxlength="4" name="config[limit_search_load]" value="{LIMIT_SEARCH_LOAD}" /></dd>
+ </dl>
+ <dl>
+ <dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}:</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
+ <dd><input id="min_search_author_chars" type="text" size="4" maxlength="4" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
+ </dl>
+ <dl>
+ <dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}:</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
+ <dd><input id="search_store_results" type="text" size="4" maxlength="6" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /></dd>
+ </dl>
+</fieldset>
+
+<fieldset>
+ <legend>{L_SEARCH_TYPE}</legend>
+
+ <dl>
+ <dt><label for="search_type">{L_SEARCH_TYPE}:</label><br /><span>{L_SEARCH_TYPE_EXPLAIN}</span></dt>
+ <dd><select id="search_type" name="config[search_type]">{S_SEARCH_TYPES}</select></dd>
+ </dl>
+</fieldset>
+
+<!-- BEGIN backend -->
+<fieldset>
+ <legend>{backend.NAME}</legend>
+
+ {backend.SETTINGS}
+</fieldset>
+<!-- END backend -->
+
+<fieldset class="submit-buttons">
+ <input class="button1" type="submit" id="submit" name="submit" value="Submit" />&nbsp;
+ <input class="button2" type="reset" id="reset" name="reset" value="Reset" />
+</fieldset>
+
+</form>
+
+<!-- ELSEIF S_INDEX -->
+<script language="javascript" type="text/javascript">
+<!--
+ function popup_progress_bar(progress_type)
+ {
+ close_waitscreen = 0;
+ window.open('{U_PROGRESS_BAR}&type=' + progress_type, '_index', 'HEIGHT=200,resizable=yes,scrollbars=no,WIDTH=400');
+ }
+//-->
+</script>
+
+<h1>{L_ACP_SEARCH_INDEX}</h1>
+
+<p>{L_ACP_SEARCH_INDEX_EXPLAIN}</p>
+
+<!-- IF S_CONTINUE_INDEXING -->
+ <a href="{U_CONTINUE_INDEXING}" onclick="javascript:popup_progress_bar('{S_CONTINUE_INDEXING}');">{L_CONTINUE}</a>
+
+ <p>{L_CONTINUE_EXPLAIN}</p>
+<!-- ELSE -->
+<!-- BEGIN backend -->
+<!-- IF backend.S_STATS -->
+<table cellspacing="1">
+ <caption>&raquo; {L_INDEX_STATS}: {backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></caption>
+ <col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
+ <thead>
+ <tr>
+ <th>{L_STATISTIC}</th>
+ <th>{L_VALUE}</th>
+ <th>{L_STATISTIC}</th>
+ <th>{L_VALUE}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <!-- BEGIN data -->
+ <tr>
+ <td>{backend.data.STATISTIC_1}:</td>
+ <td>{backend.data.VALUE_1}</td>
+ <td>{backend.data.STATISTIC_2}<!-- IF backend.data.STATISTIC_2 -->:<!-- ENDIF --></td>
+ <td>{backend.data.VALUE_2}</td>
+ </tr>
+ <!-- END data -->
+ </tbody>
+</table>
+<!-- ENDIF -->
+<form id="acp_search_index_{backend.NAME}" method="post" action="{U_ACTION}">
+{backend.S_HIDDEN_FIELDS}
+ <fieldset class="quick">
+ <!-- IF backend.S_INDEXED -->
+ <input class="button2" type="submit" name="action[delete]" value="{L_DELETE_INDEX}" onclick="javascript:popup_progress_bar('delete')" />
+ <!-- ELSE -->
+ <input class="button2" type="submit" name="action[create]" value="{L_CREATE_INDEX}" onclick="javascript:popup_progress_bar('create')" />
+ <!-- ENDIF -->
+ </fieldset>
+</form>
+<!-- END backend -->
+<!-- ENDIF -->
+<!-- ENDIF -->
+
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/adm/style/search_index_progress_bar.html b/phpBB/adm/style/search_index_progress_bar.html
new file mode 100644
index 0000000000..a55d4a3a77
--- /dev/null
+++ b/phpBB/adm/style/search_index_progress_bar.html
@@ -0,0 +1,38 @@
+<!-- INCLUDE simple_header.html -->
+
+<script language="javascript" type="text/javascript">
+<!--
+ function close_popup()
+ {
+ if (opener != null)
+ {
+ if (opener.close_waitscreen != null)
+ {
+ if (opener.close_waitscreen == 1)
+ {
+ opener.close_waitscreen = 0;
+ self.close();
+ return 0;
+ }
+ }
+ }
+ setTimeout("close_popup()", 1000);
+ return 0;
+ }
+//-->
+</script>
+
+
+<div class="successbox">
+ <h3>{L_PROGRESS}</h3>
+ <img src="images/progress_bar.gif" alt="{L_PROGRESS}" />
+ <p>{L_PROGRESS_EXPLAIN}</p>
+</div>
+
+<script language="javascript" type="text/javascript">
+<!--
+ close_popup();
+//-->
+</script>
+
+<!-- INCLUDE simple_footer.html --> \ No newline at end of file
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index d386103df7..d39316226b 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -165,15 +165,7 @@ class acp_board
'load_moderators' => array('lang' => 'YES_MODERATORS', 'type' => 'radio:yes_no', 'explain' => false),
'load_jumpbox' => array('lang' => 'YES_JUMPBOX', 'type' => 'radio:yes_no', 'explain' => false),
'load_user_activity' => array('lang' => 'LOAD_USER_ACTIVITY','type' => 'radio:yes_no', 'explain' => true),
- 'load_tplcompile' => array('lang' => 'RECOMPILE_TEMPLATES', 'type' => 'radio:yes_no', 'explain' => true),
-
- 'legend3' => 'SEARCH_SETTINGS',
- 'load_search' => array('lang' => 'YES_SEARCH', 'type' => 'radio:yes_no', 'explain' => true),
- 'search_interval' => array('lang' => 'SEARCH_INTERVAL', 'type' => 'text:3:4', 'explain' => true),
- 'search_type' => array('lang' => 'SEARCH_TYPE', 'type' => 'select', 'method' => 'select_search_type', 'explain' => true),
- 'load_search_upd' => array('lang' => 'YES_SEARCH_UPDATE', 'type' => 'radio:yes_no', 'explain' => true),
- 'min_search_chars' => array('lang' => 'MIN_SEARCH_CHARS', 'type' => 'text:3:3', 'explain' => true),
- 'max_search_chars' => array('lang' => 'MAX_SEARCH_CHARS', 'type' => 'text:3:3', 'explain' => true)
+ 'load_tplcompile' => array('lang' => 'RECOMPILE_TEMPLATES', 'type' => 'radio:yes_no', 'explain' => true)
)
);
break;
@@ -571,33 +563,6 @@ class acp_board
return h_radio('config[board_disable]', $radio_ary, $value) . '<br /><input id="' . $key . '" type="text" name="config[board_disable_msg]" maxlength="255" size="40" value="' . $this->new_config['board_disable_msg'] . '" />';
}
-
- function select_search_type($selected_type, $key = '')
- {
- global $phpbb_root_path, $phpEx;
-
- $search_plugins = array();
-
- $dp = opendir($phpbb_root_path . 'includes/search');
- while (($file = readdir($dp)) !== false)
- {
- if ((preg_match('#\.' . $phpEx . '$#', $file)) && ($file != "search.$phpEx"))
- {
- $search_plugins[] = preg_replace('#^(.*?)\.' . $phpEx . '$#', '\1', $file);
- }
- }
-
- sort($search_plugins);
-
- $search_select = '';
- foreach ($search_plugins as $type)
- {
- $selected = ($selected_type == $type) ? ' selected="selected"' : '';
- $search_select .= '<option value="' . $type . '"' . $selected . '>' . ucfirst(strtolower(str_replace('_', ' ', $type))) . '</option>';
- }
-
- return $search_select;
- }
}
/**
diff --git a/phpBB/includes/acp/acp_search.php b/phpBB/includes/acp/acp_search.php
new file mode 100644
index 0000000000..e174f9712e
--- /dev/null
+++ b/phpBB/includes/acp/acp_search.php
@@ -0,0 +1,522 @@
+<?php
+/**
+*
+* @package acp
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* @package acp
+*/
+class acp_search
+{
+ var $u_action;
+ var $state;
+ var $search;
+ var $max_post_id;
+ var $batch_size = 4000;
+
+ function main($id, $mode)
+ {
+ global $user;
+
+ $user->add_lang('acp/search');
+
+ switch ($mode)
+ {
+ case 'settings':
+ $this->settings($id, $mode);
+ break;
+
+ case 'index':
+ $this->index($id, $mode);
+ break;
+ }
+ }
+
+ function settings($id, $mode)
+ {
+ global $db, $user, $auth, $template, $cache;
+ global $config, $SID, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+
+ $submit = (isset($_POST['submit'])) ? true : false;
+
+ $search_types = $this->get_search_types();
+
+ $settings = array(
+ 'search_interval' => 'integer',
+ 'load_search' => 'bool',
+ 'limit_search_load' => 'float',
+ 'min_search_author_chars' => 'integer',
+ 'search_store_results' => 'integer',
+ );
+
+ $search = null;
+ $error = false;
+ $search_options = '';
+ foreach ($search_types as $type)
+ {
+ if ($this->init_search($type, $search, $error))
+ {
+ continue;
+ }
+
+ $name = ucfirst(strtolower(str_replace('_', ' ', $type)));
+ $selected = ($config['search_type'] == $type) ? ' selected="selected"' : '';
+ $search_options .= '<option value="' . $type . '"' . $selected . '>' . $name . '</option>';
+
+ if (method_exists($search, 'acp'))
+ {
+ $vars = $search->acp();
+
+ if (!$submit)
+ {
+ $template->assign_block_vars('backend', array(
+ 'NAME' => $name,
+ 'SETTINGS' => $vars['tpl'])
+ );
+ }
+ else if (is_array($vars['config']))
+ {
+ $settings = array_merge($settings, $vars['config']);
+ }
+ }
+ }
+ unset($search);
+ unset($error);
+
+ $cfg_array = (isset($_REQUEST['config'])) ? request_var('config', array('' => '')) : array();
+ $updated = request_var('updated', false);
+
+ foreach ($settings as $config_name => $var_type)
+ {
+ if (!isset($cfg_array[$config_name]))
+ {
+ continue;
+ }
+
+ $config_value = $cfg_array[$config_name];
+ settype($config_value, $var_type);
+
+ if ($submit)
+ {
+ set_config($config_name, $config_value);
+ $updated = true;
+ }
+ }
+
+ if ($submit)
+ {
+ $extra_message = '';
+ if ($updated)
+ {
+ add_log('admin', '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']))
+ {
+ $search = null;
+ $error = false;
+
+ if (!$this->init_search($cfg_array['search_type'], $search, $error))
+ {
+ if (confirm_box(true))
+ {
+ if (!method_exists($search, 'init') || !($error = $search->init()))
+ {
+ set_config('search_type', $cfg_array['search_type']);
+
+ if (!$updated)
+ {
+ add_log('admin', 'LOG_CONFIG_SEARCH');
+ }
+ $extra_message = '<br />' . $user->lang['SWITCHED_SEARCH_BACKEND'] . "<br /><a href=\"{$phpbb_admin_path}index.$phpEx$SID&amp;i=search&amp;mode=index\">&raquo; " . $user->lang['GO_TO_SEARCH_INDEX'] . '</a>';
+ }
+ else
+ {
+ trigger_error($error);
+ }
+ }
+ 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']),
+ )));
+ }
+ }
+ else
+ {
+ trigger_error($error);
+ }
+ }
+
+ trigger_error($user->lang['CONFIG_UPDATED'] . $extra_message . adm_back_link($this->u_action));
+ }
+ unset($cfg_array);
+
+ $this->tpl_name = 'acp_search';
+ $this->page_title = 'ACP_SEARCH_SETTINGS';
+
+ $template->assign_vars(array(
+ 'LIMIT_SEARCH_LOAD' => $config['limit_search_load'],
+ 'MIN_SEARCH_AUTHOR_CHARS' => $config['min_search_author_chars'],
+ 'SEARCH_INTERVAL' => $config['search_interval'],
+ 'SEARCH_STORE_RESULTS' => $config['search_store_results'],
+
+ 'S_SEARCH_TYPES' => $search_options,
+ 'S_YES_SEARCH' => (bool) $config['load_search'],
+ 'S_SETTINGS' => true,
+
+ 'U_ACTION' => $this->u_action)
+ );
+ }
+
+ function index($id, $mode)
+ {
+ global $db, $user, $auth, $template, $cache;
+ global $config, $SID, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+
+ $action = (isset($_REQUEST['action']) && is_array($_REQUEST['action'])) ? key(request_var('action', array('' => false))) : request_var('action', '');
+ $this->state = explode(',', $config['search_indexing_state']);
+
+ if ($action)
+ {
+ switch ($action)
+ {
+ case 'progress_bar':
+ $type = request_var('type', '');
+ $this->display_progress_bar($type);
+ break;
+
+ case 'delete':
+ $this->state[1] = 'delete';
+ break;
+
+ case 'create':
+ $this->state[1] = 'create';
+ break;
+
+ default:
+ trigger_error('NO_ACTION');
+ }
+
+ if (empty($this->state[0]))
+ {
+ $this->state[0] = request_var('search_type', '');
+ }
+
+ $this->search = null;
+ $error = false;
+ if ($this->init_search($this->state[0], $this->search, $error))
+ {
+ trigger_error($error);
+ }
+
+ $action = &$this->state[1];
+
+ @set_time_limit(0);
+
+ $this->max_post_id = $this->get_max_post_id();
+
+ $post_counter = (isset($this->state[2])) ? $this->state[2] : 0;
+ $this->state[2] = &$post_counter;
+ $this->save_state();
+
+ if ($action == 'delete')
+ {
+ if (method_exists($this->search, 'delete_index'))
+ {
+ // pass a reference to myself so the $search object can make use of save_state() and attributes
+ $this->search->delete_index($this, $phpbb_admin_path . "index.$phpEx$SID&i=$id&mode=$mode&action=delete");
+ }
+ else
+ {
+ $sql = 'SELECT post_id, poster_id
+ FROM ' . POSTS_TABLE . '
+ WHERE post_id >= ' . (int) ($post_counter + 1) . '
+ AND post_id < ' . (int) ($post_counter + $this->batch_size);
+ $result = $db->sql_query($sql);
+
+ $ids = $posters = array();
+ while (false !== ($row = $db->sql_fetchrow($result)))
+ {
+ $ids[] = $row['post_id'];
+ $posters[] = $row['poster_id'];
+ }
+ $db->sql_freeresult($result);
+
+ if (sizeof($ids))
+ {
+ $this->search->index_remove($ids, $posters);
+ }
+
+ $post_counter += $this->batch_size;
+
+ // save the current state
+ $this->save_state();
+
+ if ($post_counter <= $this->max_post_id)
+ {
+ redirect($phpbb_admin_path . "index.$phpEx$SID&i=$id&mode=$mode&action=delete", 3);
+ }
+ }
+
+ $this->search->tidy();
+
+ $this->state = array('');
+ $this->save_state();
+
+ /**
+ * @todo remove Javascript
+ */
+ trigger_error($user->lang['SEARCH_INDEX_REMOVED'] . adm_back_link($this->u_action) . '<script language="javascript" type="text/javascript">
+ <!--
+ close_waitscreen = 1;
+ //-->
+ </script>');
+ }
+ else
+ {
+ if (method_exists($this->search, 'create_index'))
+ {
+ // pass a reference to myself so the $search object can make use of save_state() and attributes
+ $this->search->create_index($this, $phpbb_admin_path . "index.$phpEx$SID&i=$id&mode=$mode&action=create");
+ }
+ else
+ {
+ $sql = 'SELECT post_id, post_subject, post_text, poster_id
+ FROM ' . POSTS_TABLE . '
+ WHERE post_id >= ' . (int) ($post_counter + 1) . '
+ AND post_id < ' . (int) ($post_counter + $this->batch_size);
+ $result = $db->sql_query($sql);
+
+ while (false !== ($row = $db->sql_fetchrow($result)))
+ {
+ $this->search->index('post', $row['post_id'], $row['post_text'], $row['post_subject'], $row['poster_id']);
+ }
+ $db->sql_freeresult($result);
+
+ $post_counter += $this->batch_size;
+
+ // save the current state
+ $this->save_state();
+
+ if ($post_counter <= $this->max_post_id)
+ {
+ redirect($phpbb_admin_path . "index.$phpEx$SID&i=$id&mode=$mode&action=create", 3);
+ }
+ }
+
+ $this->search->tidy();
+
+ $this->state = array('');
+ $this->save_state();
+
+ /**
+ * @todo remove Javascript
+ */
+ trigger_error($user->lang['SEARCH_INDEX_CREATED'] . adm_back_link($this->u_action) . '<script language="javascript" type="text/javascript">
+ <!--
+ close_waitscreen = 1;
+ //-->
+ </script>');
+ }
+ }
+
+ $search_types = $this->get_search_types();
+
+ $search = null;
+ $error = false;
+ $search_options = '';
+ foreach ($search_types as $type)
+ {
+ if ($this->init_search($type, $search, $error) || !method_exists($search, 'index_created'))
+ {
+ continue;
+ }
+
+ $name = ucfirst(strtolower(str_replace('_', ' ', $type)));
+
+ $data = array();
+ if (method_exists($search, 'index_stats'))
+ {
+ $data = $search->index_stats();
+ }
+
+ $statistics = array();
+ foreach ($data as $statistic => $value)
+ {
+ $n = sizeof($statistics);
+ if ($n && sizeof($statistics[$n - 1]) < 3)
+ {
+ $statistics[$n - 1] += array('statistic_2' => $statistic, 'value_2' => $value);
+ }
+ else
+ {
+ $statistics[] = array('statistic_1' => $statistic, 'value_1' => $value);
+ }
+ }
+
+ $template->assign_block_vars('backend', array(
+ 'L_NAME' => $name,
+ 'NAME' => $type,
+
+ 'S_ACTIVE' => ($type == $config['search_type']) ? true : false,
+ 'S_HIDDEN_FIELDS' => build_hidden_fields(array('search_type' => $type)),
+ 'S_INDEXED' => (bool) $search->index_created(),
+ 'S_STATS' => (bool) sizeof($statistics))
+ );
+
+ foreach ($statistics as $statistic)
+ {
+ $template->assign_block_vars('backend.data', array(
+ 'STATISTIC_1' => $statistic['statistic_1'],
+ 'VALUE_1' => $statistic['value_1'],
+ 'STATISTIC_2' => (isset($statistic['statistic_2'])) ? $statistic['statistic_2'] : '',
+ 'VALUE_2' => (isset($statistic['value_2'])) ? $statistic['value_2'] : '')
+ );
+ }
+ }
+ unset($search);
+ unset($error);
+ unset($statistics);
+ unset($data);
+
+ $this->tpl_name = 'acp_search';
+ $this->page_title = 'ACP_SEARCH_INDEX';
+
+ $template->assign_vars(array(
+ 'S_INDEX' => true,
+ 'U_ACTION' => $this->u_action,
+ 'U_PROGRESS_BAR' => $phpbb_admin_path . "index.$phpEx$SID&i=$id&mode=$mode&action=progress_bar") // don't use &amp; here
+ );
+
+ if (isset($this->state[1]))
+ {
+ $template->assign_vars(array(
+ 'S_CONTINUE_INDEXING' => $this->state[1],
+ 'U_CONTINUE_INDEXING' => $phpbb_admin_path . "index.$phpEx$SID&amp;i=$id&amp;mode=$mode&amp;action=" . $this->state[1],
+ 'L_CONTINUE' => ($this->state[1] == 'create') ? $user->lang['CONTINUE_INDEXING'] : $user->lang['CONTINUE_INDEX_DELETING'],
+ 'L_CONTINUE_EXPLAIN' => ($this->state[1] == 'create') ? $user->lang['CONTINUE_INDEXING_EXPLAIN'] : $user->lang['CONTINUE_INDEX_DELETING_EXPLAIN'])
+ );
+ }
+ }
+
+ function display_progress_bar($type)
+ {
+ global $template, $user;
+ adm_page_header('PROGRESS_BAR');
+
+ $template->set_filenames(array(
+ 'body' => 'search_index_progress_bar.html')
+ );
+
+ $template->assign_vars(array(
+ 'L_PROGRESS' => ($type == 'create') ? $user->lang['INDEXING_IN_PROGRESS'] : $user->lang['DELETING_INDEX_IN_PROGRESS'],
+ 'L_PROGRESS_EXPLAIN' => ($type == 'create') ? $user->lang['INDEXING_IN_PROGRESS_EXPLAIN'] : $user->lang['DELETING_INDEX_IN_PROGRESS_EXPLAIN'])
+ );
+
+ adm_page_footer();
+ }
+
+ function get_search_types()
+ {
+ global $phpbb_root_path, $phpEx;
+
+ $search_types = array();
+
+ $dp = opendir($phpbb_root_path . 'includes/search');
+ while (($file = readdir($dp)) !== false)
+ {
+ if ((preg_match('#\.' . $phpEx . '$#', $file)) && ($file != "search.$phpEx"))
+ {
+ $search_types[] = preg_replace('#^(.*?)\.' . $phpEx . '$#', '\1', $file);
+ }
+ }
+ sort($search_types);
+
+ return $search_types;
+ }
+
+ function get_max_post_id()
+ {
+ global $db;
+
+ $sql = 'SELECT MAX(post_id) as max_post_id
+ FROM '. POSTS_TABLE;
+ $result = $db->sql_query($sql);
+
+ return $db->sql_fetchfield('max_post_id', 0, $result);
+ }
+
+ function save_state($state = false)
+ {
+ if ($state)
+ {
+ $this->state = $state;
+ }
+
+ ksort($this->state);
+
+ set_config('search_indexing_state', implode(',', $this->state), true);
+ }
+
+ /**
+ * Initialises a search backend object
+ *
+ * @return false if no error occured else an error message
+ */
+ function init_search($type, &$search, &$error)
+ {
+ global $phpbb_root_path, $phpEx, $user;
+
+ if (!preg_match('#^\w+$#', $type) || !file_exists("{$phpbb_root_path}includes/search/$type.$phpEx"))
+ {
+ $error = $user->lang['NO_SUCH_SEARCH_MODULE'];
+ return $error;
+ }
+
+ include_once("{$phpbb_root_path}includes/search/$type.$phpEx");
+
+ $error = false;
+ $search = new $type($error);
+
+ return $error;
+ }
+}
+
+/**
+* @package module_install
+*/
+class acp_search_info
+{
+ function module()
+ {
+ return array(
+ 'filename' => 'acp_search',
+ 'title' => 'ACP_SEARCH',
+ 'version' => '1.0.0',
+ 'modes' => array(
+ 'settings' => array('title' => 'ACP_SEARCH_SETTINGS', 'auth' => 'acl_a_server'),
+ 'index' => array('title' => 'ACP_SEARCH_INDEX', 'auth' => 'acl_a_server'),
+ ),
+ );
+ }
+
+ function install()
+ {
+ }
+
+ function uninstall()
+ {
+ }
+}
+
+?> \ No newline at end of file
diff --git a/phpBB/includes/search/fulltext_mysql.php b/phpBB/includes/search/fulltext_mysql.php
index 26ca4a6e0d..3d5381e2bc 100644
--- a/phpBB/includes/search/fulltext_mysql.php
+++ b/phpBB/includes/search/fulltext_mysql.php
@@ -11,7 +11,7 @@
/**
* @ignore
*/
-include($phpbb_root_path . 'includes/search/search.' . $phpEx);
+include_once($phpbb_root_path . 'includes/search/search.' . $phpEx);
/**
* @package search
@@ -20,30 +20,49 @@ include($phpbb_root_path . 'includes/search/search.' . $phpEx);
*/
class fulltext_mysql extends search_backend
{
+ var $stats;
+
function fulltext_mysql(&$error)
{
- global $db;
+ $error = false;
+ }
- /**
- * @todo Move some of this to ACP
- * @todo Add SET SESSION ft_stopword_file = '' to ACP?
- */
+ /**
+ * Checks for correct MySQL version and stores max/min word length in the config
+ */
+ function init()
+ {
+ global $db, $user;
- $result = $db->sql_query('SELECT VERSION() AS mysql_version', 7200);
- $version = ($row = $db->sql_fetchrow($result)) ? $row['mysql_version'] : '';
+ if (strpos(SQL_LAYER, 'mysql') === false)
+ {
+ return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_VERSION'];
+ }
+
+ $result = $db->sql_query('SELECT VERSION() AS mysql_version');
+ $version = $db->sql_fetchfield('mysql_version', 0, $result);
$db->sql_freeresult($result);
+ if (!preg_match('#^4|5|6#s', $version))
+ {
+ return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_VERSION'];
+ }
+
$sql = 'SHOW VARIABLES
LIKE \'ft\_%\'';
- $result = $db->sql_query($sql, 7200);
+ $result = $db->sql_query($sql);
+ $mysql_info = array();
while ($row = $db->sql_fetchrow($result))
{
- $this->mysql_info[$row['Variable_name']] = $row['Value'];
+ $mysql_info[$row['Variable_name']] = $row['Value'];
}
$db->sql_freeresult($result);
- $error = (!preg_match('#^4|5|6#s', $version)) ? true : false;
+ set_config('fulltext_mysql_max_word_len', $mysql_info['ft_max_word_len']);
+ set_config('fulltext_mysql_min_word_len', $mysql_info['ft_min_word_len']);
+
+ return false;
}
/**
@@ -100,7 +119,7 @@ class fulltext_mysql extends search_backend
// check word length
$clean_len = strlen(str_replace('*', '', $clean_word));
- if (($clean_len < $this->mysql_info['ft_min_word_len']) || ($clean_len > $this->mysql_info['ft_max_word_len']))
+ if (($clean_len < $config['fulltext_mysql_min_word_len']) || ($clean_len > $config['fulltext_mysql_max_word_len']))
{
$this->common_words[] = $word;
unset($this->split_words[$i]);
@@ -146,7 +165,7 @@ class fulltext_mysql extends search_backend
for ($i = 0, $n = sizeof($text); $i < $n; $i++)
{
$text[$i] = trim($text[$i]);
- if (strlen($text[$i]) < $this->mysql_info['ft_min_word_len'] || strlen($text[$i]) > $this->mysql_info['ft_max_word_len'])
+ if (strlen($text[$i]) < $config['fulltext_mysql_min_word_len'] || strlen($text[$i]) > $this->config['fulltext_mysql_max_word_len'])
{
unset($text[$i]);
}
@@ -564,6 +583,128 @@ class fulltext_mysql extends search_backend
// destroy too old cached search results
$this->destroy_cache(array());
}
+
+ /**
+ * Create fulltext index
+ */
+ function create_index($acp_module, $u_action)
+ {
+ global $db;
+
+ if (strpos(SQL_LAYER, 'mysql') === false)
+ {
+ return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_VERSION'];
+ }
+
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ if (!isset($this->stats['post_subject']))
+ {
+ $db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' ADD FULLTEXT (post_subject)');
+ }
+
+ if (!isset($this->stats['post_text']))
+ {
+ $db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' ADD FULLTEXT (post_text)');
+ }
+
+ $db->sql_query('TRUNCATE ' . SEARCH_TABLE);
+ }
+
+ /**
+ * Drop fulltext index
+ */
+ function delete_index($acp_module, $u_action)
+ {
+ global $db;
+
+ if (strpos(SQL_LAYER, 'mysql') === false)
+ {
+ return $user->lang['FULLTEXT_MYSQL_INCOMPATIBLE_VERSION'];
+ }
+
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ if (isset($this->stats['post_subject']))
+ {
+ $db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' DROP INDEX post_subject');
+ }
+
+ if (isset($this->stats['post_text']))
+ {
+ $db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' DROP INDEX post_text');
+ }
+
+ $db->sql_query('TRUNCATE ' . SEARCH_TABLE);
+ }
+
+ /**
+ * Returns true if both FULLTEXT indexes exist
+ */
+ function index_created()
+ {
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ return (isset($this->stats['post_text']) && isset($this->stats['post_subject'])) ? true : false;
+ }
+
+ /**
+ * Returns an associative array containing information about the indexes
+ */
+ function index_stats()
+ {
+ global $user;
+
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ return array(
+ $user->lang['FULLTEXT_MYSQL_TOTAL_POSTS'] => ($this->index_created()) ? $this->stats['total_posts'] : 0,
+ $user->lang['FULLTEXT_MYSQL_TEXT_CARDINALITY'] => isset($this->stats['post_text']['Cardinality']) ? $this->stats['post_text']['Cardinality'] : 0,
+ $user->lang['FULLTEXT_MYSQL_SUBJECT_CARDINALITY'] => isset($this->stats['post_subject']['Cardinality']) ? $this->stats['post_subject']['Cardinality'] : 0);
+ }
+
+ function get_stats()
+ {
+ global $db;
+
+ $sql = 'SHOW INDEX
+ FROM ' . POSTS_TABLE;
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if ($row['Index_type'] == 'FULLTEXT' || $row['Comment'] == 'FULLTEXT')
+ {
+ if ($row['Column_name'] == 'post_text')
+ {
+ $this->stats['post_text'] = $row;
+ }
+ else if ($row['Column_name'] == 'post_subject')
+ {
+ $this->stats['post_subject'] = $row;
+ }
+ }
+ }
+ $db->sql_freeresult($result);
+
+ $sql = 'SELECT COUNT(*) as total_posts
+ FROM ' . POSTS_TABLE;
+ $result = $db->sql_query($sql);
+ $this->stats['total_posts'] = $db->sql_fetchfield('total_posts', 0, $result);
+ $db->sql_freeresult($result);
+ }
}
?> \ No newline at end of file
diff --git a/phpBB/includes/search/fulltext_phpbb.php b/phpBB/includes/search/fulltext_phpbb.php
index 6259e7b984..341e9abb87 100644
--- a/phpBB/includes/search/fulltext_phpbb.php
+++ b/phpBB/includes/search/fulltext_phpbb.php
@@ -11,7 +11,7 @@
/**
* @ignore
*/
-include($phpbb_root_path . 'includes/search/search.' . $phpEx);
+include_once($phpbb_root_path . 'includes/search/search.' . $phpEx);
/**
* @package search
@@ -20,6 +20,8 @@ include($phpbb_root_path . 'includes/search/search.' . $phpEx);
*/
class fulltext_phpbb extends search_backend
{
+ var $stats;
+
function fulltext_phpbb(&$error)
{
$error = false;
@@ -887,13 +889,13 @@ class fulltext_phpbb extends search_backend
$destroy_cache_words = array();
- // Remove common (> 50% of posts ) words
+ // Remove common (> 60% of posts ) words
if ($config['num_posts'] >= 100)
{
$sql = 'SELECT word_id
FROM ' . SEARCH_MATCH_TABLE . '
GROUP BY word_id
- HAVING COUNT(word_id) > ' . floor($config['num_posts'] * 0.5);
+ HAVING COUNT(word_id) > ' . floor($config['num_posts'] * 0.6);
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
@@ -951,6 +953,94 @@ class fulltext_phpbb extends search_backend
// destroy cached search results containing any of the words that are now common or were removed
$this->destroy_cache(array_unique($destroy_cache_words));
}
+
+ /**
+ * Deletes all words from the index
+ */
+ function delete_index($acp_module, $u_action)
+ {
+ global $db;
+
+ $db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE ' : 'DELETE FROM ') . SEARCH_WORD_TABLE);
+ $db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE ' : 'DELETE FROM ') . SEARCH_MATCH_TABLE);
+ $db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE ' : 'DELETE FROM ') . SEARCH_TABLE);
+ }
+
+ /**
+ * Returns true if both FULLTEXT indexes exist
+ */
+ function index_created()
+ {
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ return ($this->stats['total_words'] && $this->stats['total_matches']) ? true : false;
+ }
+
+ /**
+ * Returns an associative array containing information about the indexes
+ */
+ function index_stats()
+ {
+ global $user;
+
+ if (!is_array($this->stats))
+ {
+ $this->get_stats();
+ }
+
+ return array(
+ $user->lang['TOTAL_WORDS'] => $this->stats['total_words'],
+ $user->lang['TOTAL_MATCHES'] => $this->stats['total_matches']);
+ }
+
+ function get_stats()
+ {
+ global $db;
+
+ $sql = 'SELECT COUNT(*) as total_words
+ FROM ' . SEARCH_WORD_TABLE;
+ $result = $db->sql_query($sql);
+ $this->stats['total_words'] = $db->sql_fetchfield('total_words', 0, $result);
+ $db->sql_freeresult($result);
+
+ $sql = 'SELECT COUNT(*) as total_matches
+ FROM ' . SEARCH_MATCH_TABLE;
+ $result = $db->sql_query($sql);
+ $this->stats['total_matches'] = $db->sql_fetchfield('total_matches', 0, $result);
+ $db->sql_freeresult($result);
+ }
+
+ /**
+ * Returns a list of options for the ACP to display
+ */
+ function acp()
+ {
+ global $user, $config;
+
+ $tpl = '
+ <dl>
+ <dt><label for="fulltext_phpbb_load_search_upd">' . $user->lang['YES_SEARCH_UPDATE'] . ':</label><br /><span>' . $user->lang['YES_SEARCH_UPDATE_EXPLAIN'] . '</span></dt>
+ <dd><input type="radio" id="fulltext_phpbb_load_search_upd" name="config[fulltext_phpbb_load_search_upd]" value="1"' . (($config['fulltext_phpbb_load_search_upd']) ? ' checked="checked"' : '') . ' class="radio" />&nbsp;' . $user->lang['YES'] . '&nbsp;&nbsp;<input type="radio" name="config[fulltext_phpbb_load_search_upd]" value="0"' . ((!$config['fulltext_phpbb_load_search_upd']) ? ' checked="checked"' : '') . ' class="radio" />&nbsp;' . $user->lang['NO'] . '</dd>
+ </dl>
+ <dl>
+ <dt><label for="fulltext_phpbb_min_search_chars">' . $user->lang['MIN_SEARCH_CHARS'] . ':</label><br /><span>' . $user->lang['MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
+ <dd><input id="fulltext_phpbb_min_search_chars" type="text" size="3" maxlength="3" name="config[fulltext_phpbb_min_search_chars]" value="' . $config['fulltext_phpbb_min_search_chars'] . '" /></dd>
+ </dl>
+ <dl>
+ <dt><label for="fulltext_phpbb_max_search_chars">' . $user->lang['MAX_SEARCH_CHARS'] . ':</label><br /><span>' . $user->lang['MAX_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
+ <dd><input id="fulltext_phpbb_max_search_chars" type="text" size="3" maxlength="3" name="config[fulltext_phpbb_max_search_chars]" value="' . $config['fulltext_phpbb_max_search_chars'] . '" /></dd>
+ </dl>
+ ';
+
+ // These are fields required in the config table
+ return array(
+ 'tpl' => $tpl,
+ 'config' => array('fulltext_phpbb_load_search_upd' => 'bool', 'fulltext_phpbb_min_search_chars' => 'integer', 'fulltext_phpbb_max_search_chars' => 'integer')
+ );
+ }
}
?> \ No newline at end of file
diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql
index b8a6d340a8..aab3394565 100644
--- a/phpBB/install/schemas/schema_data.sql
+++ b/phpBB/install/schemas/schema_data.sql
@@ -83,6 +83,9 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('flood_interval', '
INSERT INTO phpbb_config (config_name, config_value) VALUES ('force_server_vars', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('forward_pm', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('full_folder_action', '2');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('fulltext_phpbb_load_search_upd', '1');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('fulltext_phpbb_max_search_chars', '14');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('fulltext_phpbb_min_search_chars', '3');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('gzip_compress', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('hot_threshold', '25');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('icons_path', 'images/icons');
@@ -120,7 +123,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_online', '1')
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_online_guests', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_online_time', '5');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_search', '1');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_search_upd', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_tplcompile', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_user_activity', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_attachments', '3');
@@ -140,7 +142,6 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_post_smilies',
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_post_urls', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_quote_depth', '3');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_reg_attempts', '5');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_search_chars', '14');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_chars', '255');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_font_size', '24');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_img_height', '0');
@@ -150,7 +151,8 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_urls', '5'
INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_name_chars', '3');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_pass_chars', '6');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_search_author_chars', '3');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_search_chars', '3');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('fulltext_mysql_max_word_len', '254');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('fulltext_mysql_min_word_len', '4');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('override_user_style', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('pass_complex', '.*');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('pm_edit_time', '0');
@@ -204,6 +206,7 @@ INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('num_to
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('num_users', '1', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('record_online_date', '0', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('record_online_users', '0', 1);
+INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('search_indexing_state', '', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('search_last_gc', '0', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('session_last_gc', '0', 1);
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('upload_dir_size', '0', 1);
@@ -477,120 +480,122 @@ INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class,
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (90, 1, 'pm', 'ucp', 0, 27, 98, 99, 'UCP_PM_POPUP_TITLE', 'popup', 'cfg_allow_privmsg');
# ACP
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (2, 1, '', 'acp', 1, 0, 229, 264, 'ACP_CAT_GENERAL', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (7, 1, 'modules', 'acp', 1, 67, 447, 448, 'ACP', 'acp', 'acl_a_modules');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (11, 1, '', 'acp', 1, 0, 307, 358, 'ACP_CAT_USERGROUP', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (41, 1, 'main', 'acp', 1, 2, 230, 231, 'ACP_MAIN', 'main', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (42, 1, '', 'acp', 1, 2, 232, 243, 'ACP_GENERAL_CONFIGURATION', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (43, 1, '', 'acp', 1, 2, 244, 251, 'ACP_CLIENT_COMMUNICATION', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (44, 1, '', 'acp', 1, 2, 252, 263, 'ACP_SERVER_CONFIGURATION', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (46, 1, '', 'acp', 1, 0, 265, 282, 'ACP_CAT_FORUMS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (47, 1, '', 'acp', 1, 0, 283, 306, 'ACP_CAT_POSTING', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (48, 1, '', 'acp', 1, 0, 359, 406, 'ACP_CAT_PERMISSIONS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (49, 1, '', 'acp', 1, 0, 407, 420, 'ACP_CAT_STYLES', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (50, 1, '', 'acp', 1, 0, 421, 432, 'ACP_CAT_MAINTANENCE', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (51, 1, '', 'acp', 1, 0, 433, 454, 'ACP_CAT_SYSTEM', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (52, 1, '', 'acp', 1, 0, 455, 456, 'ACP_CAT_DOT_MODS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (53, 1, '', 'acp', 1, 46, 266, 271, 'ACP_CAT_FORUMS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (54, 1, '', 'acp', 1, 46, 272, 281, 'ACP_FORUM_BASED_PERMISSIONS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (56, 1, '', 'acp', 1, 47, 296, 305, 'ACP_ATTACHMENTS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (57, 1, '', 'acp', 1, 11, 308, 337, 'ACP_CAT_USERS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (58, 1, '', 'acp', 1, 11, 338, 345, 'ACP_GROUPS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (59, 1, '', 'acp', 1, 11, 346, 357, 'ACP_USER_SECURITY', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (61, 1, '', 'acp', 1, 48, 362, 367, 'ACP_BASIC_PERMISSIONS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (62, 1, '', 'acp', 1, 49, 408, 411, 'ACP_STYLE_MANAGEMENT', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (63, 1, '', 'acp', 1, 50, 422, 429, 'ACP_FORUM_LOGS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (64, 1, '', 'acp', 1, 50, 430, 431, 'ACP_CAT_DATABASE', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (65, 1, '', 'acp', 1, 51, 434, 435, 'ACP_AUTOMATION', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (66, 1, '', 'acp', 1, 51, 436, 445, 'ACP_GENERAL_TASKS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (67, 1, '', 'acp', 1, 51, 446, 453, 'ACP_MODULE_MANAGEMENT', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (69, 1, 'modules', 'acp', 1, 67, 449, 450, 'UCP', 'ucp', 'acl_a_modules');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (71, 1, 'board', 'acp', 1, 42, 233, 234, 'ACP_BOARD_SETTINGS', 'settings', 'acl_a_board');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (72, 1, 'board', 'acp', 1, 42, 235, 236, 'ACP_BOARD_DEFAULTS', 'default', 'acl_a_defaults');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (73, 1, 'board', 'acp', 1, 42, 237, 238, 'ACP_AVATAR_SETTINGS', 'avatar', 'acl_a_board');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (74, 1, 'attachments', 'acp', 1, 42, 239, 240, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (75, 1, '', 'acp', 1, 47, 284, 295, 'ACP_MESSAGES', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (76, 1, 'attachments', 'acp', 1, 56, 297, 298, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (77, 1, 'attachments', 'acp', 1, 56, 299, 300, 'ACP_EXTENSION_GROUPS', 'ext_groups', 'acl_a_attach');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (78, 1, 'attachments', 'acp', 1, 56, 301, 302, 'ACP_MANAGE_EXTENSIONS', 'extensions', 'acl_a_attach');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (80, 1, 'attachments', 'acp', 1, 56, 303, 304, 'ACP_ORPHAN_ATTACHMENTS', 'orphan', 'acl_a_attach');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (81, 1, 'board', 'acp', 1, 42, 241, 242, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (82, 1, 'board', 'acp', 1, 43, 245, 246, 'ACP_AUTH_SETTINGS', 'auth', 'acl_a_server');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (83, 1, 'board', 'acp', 1, 43, 247, 248, 'ACP_EMAIL_SETTINGS', 'email', 'acl_a_server');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (84, 1, 'jabber', 'acp', 1, 43, 249, 250, 'ACP_JABBER_SETTINGS', 'settings', 'acl_a_jabber');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (85, 1, 'board', 'acp', 1, 44, 253, 254, 'ACP_COOKIE_SETTINGS', 'cookie', 'acl_a_cookies');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (86, 1, 'board', 'acp', 1, 44, 255, 256, 'ACP_SERVER_SETTINGS', 'server', 'acl_a_server');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (87, 1, 'board', 'acp', 1, 44, 257, 258, 'ACP_LOAD_SETTINGS', 'load', 'acl_a_server');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (89, 1, 'php_info', 'acp', 1, 44, 259, 260, 'ACP_PHP_INFO', 'info', 'acl_a_phpinfo');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (91, 1, 'bots', 'acp', 1, 44, 261, 262, 'ACP_BOTS', 'bots', 'acl_a_bots');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (92, 1, 'modules', 'acp', 1, 67, 451, 452, 'MCP', 'mcp', 'acl_a_modules');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (93, 1, 'board', 'acp', 1, 75, 285, 286, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (94, 1, 'bbcodes', 'acp', 1, 75, 287, 288, 'ACP_BBCODES', 'bbcodes', 'acl_a_bbcode');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (95, 1, 'icons', 'acp', 1, 75, 289, 290, 'ACP_ICONS', 'icons', 'acl_a_icons');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (96, 1, 'icons', 'acp', 1, 75, 291, 292, 'ACP_SMILIES', 'smilies', 'acl_a_icons');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (97, 1, 'words', 'acp', 1, 75, 293, 294, 'ACP_WORDS', 'words', 'acl_a_words');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (98, 1, 'logs', 'acp', 1, 63, 423, 424, 'ACP_ADMIN_LOGS', 'admin', 'acl_a_viewlogs');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (99, 1, 'logs', 'acp', 1, 63, 425, 426, 'ACP_MOD_LOGS', 'mod', 'acl_a_viewlogs');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (100, 1, 'logs', 'acp', 1, 63, 427, 428, 'ACP_CRITICAL_LOGS', 'critical', 'acl_a_viewlogs');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (101, 1, 'language', 'acp', 1, 66, 437, 438, 'ACP_LANGUAGE_PACKS', 'lang_packs', 'acl_a_language');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (102, 1, 'bots', 'acp', 1, 66, 439, 440, 'ACP_BOTS', 'bots', 'acl_a_bots');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (103, 1, 'groups', 'acp', 1, 58, 339, 340, 'ACP_GROUPS_MANAGE', 'manage', 'acl_a_group');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (105, 1, 'email', 'acp', 1, 66, 443, 444, 'ACP_MASS_EMAIL', 'email', 'acl_a_email');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (106, 1, 'ranks', 'acp', 1, 57, 313, 314, 'ACP_MANAGE_RANKS', 'ranks', 'acl_a_ranks');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (107, 1, 'ban', 'acp', 1, 59, 351, 352, 'ACP_BAN_EMAILS', 'email', 'acl_a_ban');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (108, 1, 'ban', 'acp', 1, 59, 353, 354, 'ACP_BAN_IPS', 'ip', 'acl_a_ban');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (109, 1, 'ban', 'acp', 1, 59, 355, 356, 'ACP_BAN_USERNAMES', 'user', 'acl_a_ban');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (110, 1, 'disallow', 'acp', 1, 59, 349, 350, 'ACP_DISALLOW_USERNAMES', 'usernames', 'acl_a_names');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (111, 1, 'prune', 'acp', 1, 59, 347, 348, 'ACP_PRUNE_USERS', 'users', 'acl_a_userdel');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (112, 1, 'prune', 'acp', 1, 53, 269, 270, 'ACP_PRUNE_FORUMS', 'forums', 'acl_a_prune');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (113, 1, 'profile', 'acp', 1, 57, 311, 312, 'ACP_CUSTOM_PROFILE_FIELDS', 'profile', 'acl_a_profile');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (114, 1, 'forums', 'acp', 1, 53, 267, 268, 'ACP_MANAGE_FORUMS', 'manage', 'acl_a_forum');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (115, 1, 'users', 'acp', 1, 57, 309, 310, 'ACP_MANAGE_USERS', 'overview', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (116, 1, 'users', 'acp', 0, 57, 315, 316, 'ACP_USER_FEEDBACK', 'feedback', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (117, 1, 'users', 'acp', 0, 57, 317, 318, 'ACP_USER_PROFILE', 'profile', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (118, 1, 'users', 'acp', 0, 57, 319, 320, 'ACP_USER_PREFS', 'prefs', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (119, 1, 'users', 'acp', 0, 57, 321, 322, 'ACP_USER_AVATAR', 'avatar', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (120, 1, 'users', 'acp', 0, 57, 325, 326, 'ACP_USER_SIG', 'sig', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (121, 1, 'users', 'acp', 0, 57, 327, 328, 'ACP_USER_GROUPS', 'groups', 'acl_a_user && acl_a_group');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (122, 1, 'users', 'acp', 0, 57, 329, 330, 'ACP_USER_PERM', 'perm', 'acl_a_user && acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (123, 1, 'users', 'acp', 0, 57, 331, 332, 'ACP_USER_ATTACH', 'attach', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (141, 1, '', 'acp', 1, 49, 412, 419, 'ACP_STYLE_COMPONENTS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (142, 1, 'styles', 'acp', 1, 62, 409, 410, 'ACP_STYLES', 'style', 'acl_a_styles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (143, 1, 'styles', 'acp', 1, 141, 413, 414, 'ACP_TEMPLATES', 'template', 'acl_a_styles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (144, 1, 'styles', 'acp', 1, 141, 415, 416, 'ACP_THEMES', 'theme', 'acl_a_styles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (145, 1, 'styles', 'acp', 1, 141, 417, 418, 'ACP_IMAGESETS', 'imageset', 'acl_a_styles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (147, 1, 'users', 'acp', 0, 57, 323, 324, 'ACP_USER_RANK', 'rank', 'acl_a_user');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (148, 1, 'permissions', 'acp', 1, 61, 363, 364, 'ACP_USERS_PERMISSIONS', 'setting_user_global', 'acl_a_authusers && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (149, 1, 'permissions', 'acp', 1, 180, 379, 380, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (150, 1, 'permissions', 'acp', 1, 61, 365, 366, 'ACP_GROUPS_PERMISSIONS', 'setting_group_global', 'acl_a_authgroups && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (151, 1, 'permissions', 'acp', 1, 180, 381, 382, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (152, 1, 'permissions', 'acp', 1, 174, 369, 370, 'ACP_ADMINISTRATORS', 'setting_admin_global', 'acl_a_aauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (155, 1, 'permissions', 'acp', 1, 174, 371, 372, 'ACP_GLOBAL_MODERATORS', 'setting_mod_global', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (156, 1, 'permissions', 'acp', 1, 180, 377, 378, 'ACP_FORUM_MODERATORS', 'setting_mod_local', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (157, 1, 'permissions', 'acp', 1, 180, 375, 376, 'ACP_FORUM_PERMISSIONS', 'setting_forum_local', 'acl_a_fauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (158, 1, '', 'acp', 1, 48, 394, 405, 'ACP_PERMISSION_MASKS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (159, 1, 'permissions', 'acp', 1, 158, 395, 396, 'ACP_VIEW_ADMIN_PERMISSIONS', 'view_admin_global', 'acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (160, 1, 'permissions', 'acp', 1, 158, 397, 398, 'ACP_VIEW_USER_PERMISSIONS', 'view_user_global', 'acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (161, 1, 'permissions', 'acp', 1, 158, 399, 400, 'ACP_VIEW_GLOBAL_MOD_PERMISSIONS', 'view_mod_global', 'acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (162, 1, 'permissions', 'acp', 1, 158, 401, 402, 'ACP_VIEW_FORUM_MOD_PERMISSIONS', 'view_mod_local', 'acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (163, 1, 'permissions', 'acp', 1, 158, 403, 404, 'ACP_VIEW_FORUM_PERMISSIONS', 'view_forum_local', 'acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (165, 1, '', 'acp', 1, 48, 384, 393, 'ACP_PERMISSION_ROLES', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (174, 1, '', 'acp', 1, 48, 368, 373, 'ACP_SPECIAL_PERMISSIONS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (175, 1, 'permission_roles', 'acp', 1, 165, 385, 386, 'ACP_ADMIN_ROLES', 'admin_roles', 'acl_a_roles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (176, 1, 'permissions', 'acp', 1, 48, 360, 361, 'ACP_PERMISSIONS', 'intro', 'acl_a_authusers || acl_a_authgroups || acl_a_viewauth');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (177, 1, 'permission_roles', 'acp', 1, 165, 387, 388, 'ACP_USER_ROLES', 'user_roles', 'acl_a_roles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (178, 1, 'permission_roles', 'acp', 1, 165, 389, 390, 'ACP_MOD_ROLES', 'mod_roles', 'acl_a_roles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (179, 1, 'permission_roles', 'acp', 1, 165, 391, 392, 'ACP_FORUM_ROLES', 'forum_roles', 'acl_a_roles');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (180, 1, '', 'acp', 1, 48, 374, 383, 'ACP_FORUM_BASED_PERMISSIONS', '', '');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (181, 1, 'permissions', 'acp', 1, 54, 273, 274, 'ACP_FORUM_PERMISSIONS', 'setting_forum_local', 'acl_a_fauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (182, 1, 'permissions', 'acp', 1, 54, 275, 276, 'ACP_FORUM_MODERATORS', 'setting_mod_local', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (183, 1, 'permissions', 'acp', 1, 54, 277, 278, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (184, 1, 'permissions', 'acp', 1, 54, 279, 280, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (185, 1, 'permissions', 'acp', 1, 57, 333, 334, 'ACP_USERS_PERMISSIONS', 'setting_user_global', 'acl_a_authusers && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (186, 1, 'permissions', 'acp', 1, 58, 341, 342, 'ACP_GROUPS_PERMISSIONS', 'setting_group_global', 'acl_a_authgroups && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (187, 1, 'permissions', 'acp', 1, 58, 343, 344, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (188, 1, 'permissions', 'acp', 1, 57, 335, 336, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
-INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (199, 1, 'reasons', 'acp', 1, 66, 441, 442, 'ACP_MANAGE_REASONS', 'main', 'acl_a_reasons');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (2, 1, 1, '', 'acp', 0, 233, 270, 'ACP_CAT_GENERAL', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (7, 1, 1, 'modules', 'acp', 67, 455, 456, 'ACP', 'acp', 'acl_a_modules');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (11, 1, 1, '', 'acp', 0, 313, 364, 'ACP_CAT_USERGROUP', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (41, 1, 1, 'main', 'acp', 2, 234, 235, 'ACP_MAIN', 'main', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (42, 1, 1, '', 'acp', 2, 236, 247, 'ACP_GENERAL_CONFIGURATION', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (43, 1, 1, '', 'acp', 2, 248, 255, 'ACP_CLIENT_COMMUNICATION', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (44, 1, 1, '', 'acp', 2, 256, 269, 'ACP_SERVER_CONFIGURATION', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (46, 1, 1, '', 'acp', 0, 271, 288, 'ACP_CAT_FORUMS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (47, 1, 1, '', 'acp', 0, 289, 312, 'ACP_CAT_POSTING', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (48, 1, 1, '', 'acp', 0, 365, 412, 'ACP_CAT_PERMISSIONS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (49, 1, 1, '', 'acp', 0, 413, 426, 'ACP_CAT_STYLES', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (50, 1, 1, '', 'acp', 0, 427, 440, 'ACP_CAT_MAINTANENCE', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (51, 1, 1, '', 'acp', 0, 441, 462, 'ACP_CAT_SYSTEM', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (52, 1, 1, '', 'acp', 0, 463, 464, 'ACP_CAT_DOT_MODS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (53, 1, 1, '', 'acp', 46, 272, 277, 'ACP_CAT_FORUMS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (54, 1, 1, '', 'acp', 46, 278, 287, 'ACP_FORUM_BASED_PERMISSIONS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (56, 1, 1, '', 'acp', 47, 302, 311, 'ACP_ATTACHMENTS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (57, 1, 1, '', 'acp', 11, 314, 343, 'ACP_CAT_USERS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (58, 1, 1, '', 'acp', 11, 344, 351, 'ACP_GROUPS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (59, 1, 1, '', 'acp', 11, 352, 363, 'ACP_USER_SECURITY', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (61, 1, 1, '', 'acp', 48, 368, 373, 'ACP_BASIC_PERMISSIONS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (62, 1, 1, '', 'acp', 49, 414, 417, 'ACP_STYLE_MANAGEMENT', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (63, 1, 1, '', 'acp', 50, 428, 435, 'ACP_FORUM_LOGS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (64, 1, 1, '', 'acp', 50, 436, 439, 'ACP_CAT_DATABASE', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (65, 1, 1, '', 'acp', 51, 442, 443, 'ACP_AUTOMATION', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (66, 1, 1, '', 'acp', 51, 444, 453, 'ACP_GENERAL_TASKS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (67, 1, 1, '', 'acp', 51, 454, 461, 'ACP_MODULE_MANAGEMENT', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (69, 1, 1, 'modules', 'acp', 67, 457, 458, 'UCP', 'ucp', 'acl_a_modules');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (71, 1, 1, 'board', 'acp', 42, 237, 238, 'ACP_BOARD_SETTINGS', 'settings', 'acl_a_board');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (72, 1, 1, 'board', 'acp', 42, 239, 240, 'ACP_BOARD_DEFAULTS', 'default', 'acl_a_defaults');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (73, 1, 1, 'board', 'acp', 42, 241, 242, 'ACP_AVATAR_SETTINGS', 'avatar', 'acl_a_board');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (74, 1, 1, 'attachments', 'acp', 42, 243, 244, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (75, 1, 1, '', 'acp', 47, 290, 301, 'ACP_MESSAGES', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (76, 1, 1, 'attachments', 'acp', 56, 303, 304, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (77, 1, 1, 'attachments', 'acp', 56, 305, 306, 'ACP_EXTENSION_GROUPS', 'ext_groups', 'acl_a_attach');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (78, 1, 1, 'attachments', 'acp', 56, 307, 308, 'ACP_MANAGE_EXTENSIONS', 'extensions', 'acl_a_attach');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (80, 1, 1, 'attachments', 'acp', 56, 309, 310, 'ACP_ORPHAN_ATTACHMENTS', 'orphan', 'acl_a_attach');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (81, 1, 1, 'board', 'acp', 42, 245, 246, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (82, 1, 1, 'board', 'acp', 43, 249, 250, 'ACP_AUTH_SETTINGS', 'auth', 'acl_a_server');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (83, 1, 1, 'board', 'acp', 43, 251, 252, 'ACP_EMAIL_SETTINGS', 'email', 'acl_a_server');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (84, 1, 1, 'jabber', 'acp', 43, 253, 254, 'ACP_JABBER_SETTINGS', 'settings', 'acl_a_jabber');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (85, 1, 1, 'board', 'acp', 44, 257, 258, 'ACP_COOKIE_SETTINGS', 'cookie', 'acl_a_cookies');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (86, 1, 1, 'board', 'acp', 44, 259, 260, 'ACP_SERVER_SETTINGS', 'server', 'acl_a_server');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (87, 1, 1, 'board', 'acp', 44, 261, 262, 'ACP_LOAD_SETTINGS', 'load', 'acl_a_server');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (89, 1, 1, 'php_info', 'acp', 44, 265, 266, 'ACP_PHP_INFO', 'info', 'acl_a_phpinfo');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (91, 1, 1, 'bots', 'acp', 44, 267, 268, 'ACP_BOTS', 'bots', 'acl_a_bots');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (92, 1, 1, 'modules', 'acp', 67, 459, 460, 'MCP', 'mcp', 'acl_a_modules');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (93, 1, 1, 'board', 'acp', 75, 291, 292, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (94, 1, 1, 'bbcodes', 'acp', 75, 293, 294, 'ACP_BBCODES', 'bbcodes', 'acl_a_bbcode');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (95, 1, 1, 'icons', 'acp', 75, 295, 296, 'ACP_ICONS', 'icons', 'acl_a_icons');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (96, 1, 1, 'icons', 'acp', 75, 297, 298, 'ACP_SMILIES', 'smilies', 'acl_a_icons');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (97, 1, 1, 'words', 'acp', 75, 299, 300, 'ACP_WORDS', 'words', 'acl_a_words');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (98, 1, 1, 'logs', 'acp', 63, 429, 430, 'ACP_ADMIN_LOGS', 'admin', 'acl_a_viewlogs');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (99, 1, 1, 'logs', 'acp', 63, 431, 432, 'ACP_MOD_LOGS', 'mod', 'acl_a_viewlogs');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (100, 1, 1, 'logs', 'acp', 63, 433, 434, 'ACP_CRITICAL_LOGS', 'critical', 'acl_a_viewlogs');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (101, 1, 1, 'language', 'acp', 66, 445, 446, 'ACP_LANGUAGE_PACKS', 'lang_packs', 'acl_a_language');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (102, 1, 1, 'bots', 'acp', 66, 447, 448, 'ACP_BOTS', 'bots', 'acl_a_bots');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (103, 1, 1, 'groups', 'acp', 58, 345, 346, 'ACP_GROUPS_MANAGE', 'manage', 'acl_a_group');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (105, 1, 1, 'email', 'acp', 66, 451, 452, 'ACP_MASS_EMAIL', 'email', 'acl_a_email');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (106, 1, 1, 'ranks', 'acp', 57, 319, 320, 'ACP_MANAGE_RANKS', 'ranks', 'acl_a_ranks');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (107, 1, 1, 'ban', 'acp', 59, 357, 358, 'ACP_BAN_EMAILS', 'email', 'acl_a_ban');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (108, 1, 1, 'ban', 'acp', 59, 359, 360, 'ACP_BAN_IPS', 'ip', 'acl_a_ban');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (109, 1, 1, 'ban', 'acp', 59, 361, 362, 'ACP_BAN_USERNAMES', 'user', 'acl_a_ban');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (110, 1, 1, 'disallow', 'acp', 59, 355, 356, 'ACP_DISALLOW_USERNAMES', 'usernames', 'acl_a_names');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (111, 1, 1, 'prune', 'acp', 59, 353, 354, 'ACP_PRUNE_USERS', 'users', 'acl_a_userdel');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (112, 1, 1, 'prune', 'acp', 53, 275, 276, 'ACP_PRUNE_FORUMS', 'forums', 'acl_a_prune');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (113, 1, 1, 'profile', 'acp', 57, 317, 318, 'ACP_CUSTOM_PROFILE_FIELDS', 'profile', 'acl_a_profile');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (114, 1, 1, 'forums', 'acp', 53, 273, 274, 'ACP_MANAGE_FORUMS', 'manage', 'acl_a_forum');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (115, 1, 1, 'users', 'acp', 57, 315, 316, 'ACP_MANAGE_USERS', 'overview', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (116, 1, 0, 'users', 'acp', 57, 321, 322, 'ACP_USER_FEEDBACK', 'feedback', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (117, 1, 0, 'users', 'acp', 57, 323, 324, 'ACP_USER_PROFILE', 'profile', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (118, 1, 0, 'users', 'acp', 57, 325, 326, 'ACP_USER_PREFS', 'prefs', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (119, 1, 0, 'users', 'acp', 57, 327, 328, 'ACP_USER_AVATAR', 'avatar', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (120, 1, 0, 'users', 'acp', 57, 331, 332, 'ACP_USER_SIG', 'sig', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (121, 1, 0, 'users', 'acp', 57, 333, 334, 'ACP_USER_GROUPS', 'groups', 'acl_a_user && acl_a_group');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (122, 1, 0, 'users', 'acp', 57, 335, 336, 'ACP_USER_PERM', 'perm', 'acl_a_user && acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (123, 1, 0, 'users', 'acp', 57, 337, 338, 'ACP_USER_ATTACH', 'attach', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (141, 1, 1, '', 'acp', 49, 418, 425, 'ACP_STYLE_COMPONENTS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (142, 1, 1, 'styles', 'acp', 62, 415, 416, 'ACP_STYLES', 'style', 'acl_a_styles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (143, 1, 1, 'styles', 'acp', 141, 419, 420, 'ACP_TEMPLATES', 'template', 'acl_a_styles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (144, 1, 1, 'styles', 'acp', 141, 421, 422, 'ACP_THEMES', 'theme', 'acl_a_styles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (145, 1, 1, 'styles', 'acp', 141, 423, 424, 'ACP_IMAGESETS', 'imageset', 'acl_a_styles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (147, 1, 0, 'users', 'acp', 57, 329, 330, 'ACP_USER_RANK', 'rank', 'acl_a_user');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (148, 1, 1, 'permissions', 'acp', 61, 369, 370, 'ACP_USERS_PERMISSIONS', 'setting_user_global', 'acl_a_authusers && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (149, 1, 1, 'permissions', 'acp', 180, 385, 386, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (150, 1, 1, 'permissions', 'acp', 61, 371, 372, 'ACP_GROUPS_PERMISSIONS', 'setting_group_global', 'acl_a_authgroups && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (151, 1, 1, 'permissions', 'acp', 180, 387, 388, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (152, 1, 1, 'permissions', 'acp', 174, 375, 376, 'ACP_ADMINISTRATORS', 'setting_admin_global', 'acl_a_aauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (155, 1, 1, 'permissions', 'acp', 174, 377, 378, 'ACP_GLOBAL_MODERATORS', 'setting_mod_global', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (156, 1, 1, 'permissions', 'acp', 180, 383, 384, 'ACP_FORUM_MODERATORS', 'setting_mod_local', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (157, 1, 1, 'permissions', 'acp', 180, 381, 382, 'ACP_FORUM_PERMISSIONS', 'setting_forum_local', 'acl_a_fauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (158, 1, 1, '', 'acp', 48, 400, 411, 'ACP_PERMISSION_MASKS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (159, 1, 1, 'permissions', 'acp', 158, 401, 402, 'ACP_VIEW_ADMIN_PERMISSIONS', 'view_admin_global', 'acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (160, 1, 1, 'permissions', 'acp', 158, 403, 404, 'ACP_VIEW_USER_PERMISSIONS', 'view_user_global', 'acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (161, 1, 1, 'permissions', 'acp', 158, 405, 406, 'ACP_VIEW_GLOBAL_MOD_PERMISSIONS', 'view_mod_global', 'acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (162, 1, 1, 'permissions', 'acp', 158, 407, 408, 'ACP_VIEW_FORUM_MOD_PERMISSIONS', 'view_mod_local', 'acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (163, 1, 1, 'permissions', 'acp', 158, 409, 410, 'ACP_VIEW_FORUM_PERMISSIONS', 'view_forum_local', 'acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (165, 1, 1, '', 'acp', 48, 390, 399, 'ACP_PERMISSION_ROLES', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (174, 1, 1, '', 'acp', 48, 374, 379, 'ACP_SPECIAL_PERMISSIONS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (175, 1, 1, 'permission_roles', 'acp', 165, 391, 392, 'ACP_ADMIN_ROLES', 'admin_roles', 'acl_a_roles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (176, 1, 1, 'permissions', 'acp', 48, 366, 367, 'ACP_PERMISSIONS', 'intro', 'acl_a_authusers || acl_a_authgroups || acl_a_viewauth');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (177, 1, 1, 'permission_roles', 'acp', 165, 393, 394, 'ACP_USER_ROLES', 'user_roles', 'acl_a_roles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (178, 1, 1, 'permission_roles', 'acp', 165, 395, 396, 'ACP_MOD_ROLES', 'mod_roles', 'acl_a_roles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (179, 1, 1, 'permission_roles', 'acp', 165, 397, 398, 'ACP_FORUM_ROLES', 'forum_roles', 'acl_a_roles');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (180, 1, 1, '', 'acp', 48, 380, 389, 'ACP_FORUM_BASED_PERMISSIONS', '', '');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (181, 1, 1, 'permissions', 'acp', 54, 279, 280, 'ACP_FORUM_PERMISSIONS', 'setting_forum_local', 'acl_a_fauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (182, 1, 1, 'permissions', 'acp', 54, 281, 282, 'ACP_FORUM_MODERATORS', 'setting_mod_local', 'acl_a_mauth && (acl_a_authusers || acl_a_authgroups)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (183, 1, 1, 'permissions', 'acp', 54, 283, 284, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (184, 1, 1, 'permissions', 'acp', 54, 285, 286, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (185, 1, 1, 'permissions', 'acp', 57, 339, 340, 'ACP_USERS_PERMISSIONS', 'setting_user_global', 'acl_a_authusers && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (186, 1, 1, 'permissions', 'acp', 58, 347, 348, 'ACP_GROUPS_PERMISSIONS', 'setting_group_global', 'acl_a_authgroups && (acl_a_aauth || acl_a_mauth || acl_a_uauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (187, 1, 1, 'permissions', 'acp', 58, 349, 350, 'ACP_GROUPS_FORUM_PERMISSIONS', 'setting_group_local', 'acl_a_authgroups && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (188, 1, 1, 'permissions', 'acp', 57, 341, 342, 'ACP_USERS_FORUM_PERMISSIONS', 'setting_user_local', 'acl_a_authusers && (acl_a_mauth || acl_a_fauth)');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (199, 1, 1, 'reasons', 'acp', 66, 449, 450, 'ACP_MANAGE_REASONS', 'main', 'acl_a_reasons');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (204, 1, 1, 'search', 'acp', 64, 437, 438, 'ACP_SEARCH_INDEX', 'index', 'acl_a_server');
+INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (205, 1, 1, 'search', 'acp', 44, 263, 264, 'ACP_SEARCH_SETTINGS', 'settings', 'acl_a_server');
# MCP
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (124, 1, '', 'mcp', 1, 0, 57, 66, 'MCP_MAIN', '', '');
diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php
index c2dc978574..fb7795a900 100644
--- a/phpBB/language/en/acp/board.php
+++ b/phpBB/language/en/acp/board.php
@@ -149,20 +149,23 @@ $lang = array_merge($lang, array(
// Load settings
$lang = array_merge($lang, array(
- 'SEARCH_SETTINGS' => 'Search Settings',
'ACP_LOAD_SETTINGS_EXPLAIN' => 'Here you can enable and disable certain board functions to reduce the amount of processing required. On most servers there is no need to disable any functions. However on certain systems or in shared hosting environments it may be beneficial to disable capabilities you do not really need. You can also specify limits for system load and active sessions beyond which the board will go offline.',
'LIMIT_LOAD' => 'Limit system load',
'LIMIT_LOAD_EXPLAIN' => 'If the 1 minute system load exceeds this value the board will go offline, 1.0 equals ~100% utilisation of one processor. This only functions on UNIX based servers.',
'LIMIT_SESSIONS' => 'Limit sessions',
'LIMIT_SESSIONS_EXPLAIN' => 'If the number of sessions exceeds this value within a one minute period the board will go offline. Set to 0 for unlimited sessions.',
+ 'LOAD_USER_ACTIVITY' => 'Show users activity',
+ 'LOAD_USER_ACTIVITY_EXPLAIN' => 'Displays active topic/forum in user profiles and user control panel. It is recommended to disable this on boards with more than one million posts.',
+ 'ONLINE_LENGTH' => 'View online time span',
+ 'ONLINE_LENGTH_EXPLAIN' => 'Time in minutes after which inactive users will not appear in viewonline listings, lower equals less processing.',
+ 'RECOMPILE_TEMPLATES' => 'Recompile stale templates',
+ 'RECOMPILE_TEMPLATES_EXPLAIN' => 'Check for updated template files on filesystem and recompile.',
'SESSION_LENGTH' => 'Session length',
'SESSION_LENGTH_EXPLAIN' => 'Sessions will expire after this time, in seconds.',
'YES_POST_MARKING' => 'Enable dotted topics',
'YES_POST_MARKING_EXPLAIN' => 'Indicates whether user has posted to a topic.',
'YES_READ_MARKING' => 'Enable server-side topic marking',
'YES_READ_MARKING_EXPLAIN' => 'Stores read/unread status information in the database rather than a cookie.',
- 'ONLINE_LENGTH' => 'View online time span',
- 'ONLINE_LENGTH_EXPLAIN' => 'Time in minutes after which inactive users will not appear in viewonline listings, lower equals less processing.',
'YES_ONLINE' => 'Enable online user listings',
'YES_ONLINE_EXPLAIN' => 'Display online user information on index, forum and topic pages.',
'YES_ONLINE_GUESTS' => 'Enable online guest listings in viewonline',
@@ -172,22 +175,7 @@ $lang = array_merge($lang, array(
'YES_BIRTHDAYS' => 'Enable birthday listing',
'YES_MODERATORS' => 'Enable display of Moderators',
'YES_JUMPBOX' => 'Enable display of Jumpbox',
- 'RECOMPILE_TEMPLATES' => 'Recompile stale templates',
- 'RECOMPILE_TEMPLATES_EXPLAIN'=> 'Check for updated template files on filesystem and recompile.',
- 'YES_SEARCH' => 'Enable search facilities',
- 'YES_SEARCH_EXPLAIN' => 'User and backend search functions including fulltext updates when posting.',
- 'SEARCH_INTERVAL' => 'Search Flood Interval',
- 'SEARCH_INTERVAL_EXPLAIN' => 'Number of seconds users must wait between searches.',
- 'SEARCH_TYPE' => 'Search Backend',
- 'SEARCH_TYPE_EXPLAIN' => 'phpBB allows you to choose the backend that is used for searching text in post contents. By default the search will use phpBB\'s own fulltext search.',
- 'YES_SEARCH_UPDATE' => 'Enable fulltext updating',
- 'YES_SEARCH_UPDATE_EXPLAIN' => 'Updating of fulltext indexes when posting, overriden if search is disabled.',
- 'MIN_SEARCH_CHARS' => 'Min characters indexed by search',
- 'MIN_SEARCH_CHARS_EXPLAIN' => 'Words with at least this many characters will be indexed for searching.',
- 'MAX_SEARCH_CHARS' => 'Max characters indexed by search',
- 'MAX_SEARCH_CHARS_EXPLAIN' => 'Words with no more than this many characters will be indexed for searching.',
- 'LOAD_USER_ACTIVITY' => 'Show users activity',
- 'LOAD_USER_ACTIVITY_EXPLAIN' => 'Displays active topic/forum in user profiles and user control panel. It is recommended to disable this on boards with more than one million posts.',
+
));
// Email settings
diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php
index 1b2f237da2..085abb22ae 100644
--- a/phpBB/language/en/acp/common.php
+++ b/phpBB/language/en/acp/common.php
@@ -126,7 +126,9 @@ $lang = array_merge($lang, array(
'ACP_RANKS' => 'Ranks',
'ACP_REASONS' => 'Report/Denial Reasons',
-
+
+ 'ACP_SEARCH_INDEX' => 'Search Index',
+ 'ACP_SEARCH_SETTINGS' => 'Search Settings',
'ACP_SERVER_CONFIGURATION' => 'Server Configuration',
'ACP_SERVER_SETTINGS' => 'Server Settings',
'ACP_SMILIES' => 'Smilies',
@@ -365,6 +367,7 @@ $lang = array_merge($lang, array(
'LOG_CONFIG_EMAIL' => '<b>Altered email settings</b>',
'LOG_CONFIG_LOAD' => '<b>Altered load settings</b>',
'LOG_CONFIG_MESSAGE' => '<b>Altered private message settings</b>',
+ 'LOG_CONFIG_SEARCH' => '<b>Altered search settings</b>',
'LOG_CONFIG_SERVER' => '<b>Altered server settings</b>',
'LOG_CONFIG_SETTINGS' => '<b>Altered board settings</b>',
diff --git a/phpBB/language/en/acp/search.php b/phpBB/language/en/acp/search.php
new file mode 100644
index 0000000000..e6aea37576
--- /dev/null
+++ b/phpBB/language/en/acp/search.php
@@ -0,0 +1,90 @@
+<?php
+/**
+*
+* acp_search [English]
+*
+* @package language
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* DO NOT CHANGE
+*/
+if (empty($lang) || !is_array($lang))
+{
+ $lang = array();
+}
+
+// DEVELOPERS PLEASE NOTE
+//
+// Placeholders can now contain order information, e.g. instead of
+// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
+// translators to re-order the output of data while ensuring it remains correct
+//
+// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
+// equally where a string contains only two placeholders which are used to wrap text
+// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
+
+$lang = array_merge($lang, array(
+ 'ACP_SEARCH_INDEX_EXPLAIN' => 'Here you can manage the search backend\'s indexes. Since you normally use only one backend you should delete all indexes that you do not make use of. After altering some of the search settings (e.g. the number of minimum/maximum chars) it might be worth recreating the index so it reflects those changes.',
+ 'ACP_SEARCH_SETTINGS' => 'Search Settings',
+ 'ACP_SEARCH_SETTINGS_EXPLAIN' => 'Here you can define what search backend will be used for indexing posts and performing searches. You can set various options that can influence how much processing these actions require. Some of these settings are the same for all search engine backends.',
+
+ 'CONFIRM_SEARCH_BACKEND' => 'Are you sure you wish to switch to a different search backend? After changing the search backend you will have to create an index for the new search backend. If you don\'t plan on switching back to the old search backend you can also delete the old backend\'s index in order to free system resources.',
+ 'CONTINUE_DELETING_INDEX' => 'Continue previous index deleting process',
+ 'CONTINUE_DELETING_INDEX_EXPLAIN' => 'An index deleting process has been started. In order to access the search index page again you need to complete it first.',
+ 'CONTINUE_INDEXING' => 'Continue previous indexing process',
+ 'CONTINUE_INDEXING_EXPLAIN' => 'An indexing process has been started. In order to access the search index page again you need to complete it first.',
+ 'CREATE_INDEX' => 'Create Index',
+
+ 'DELETE_INDEX' => 'Delete Index',
+ '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.',
+
+ 'FULLTEXT_MYSQL_INCOMPATIBLE_VERSION' => 'The MySQL fulltext backend can only be used with MySQL4 and above.',
+ 'FULLTEXT_MYSQL_SUBJECT_CARDINALITY' => 'Cardinality of the post_subject fulltext index (estimate of unique values)',
+ 'FULLTEXT_MYSQL_TEXT_CARDINALITY' => 'Cardinality of the post_text fulltext index (estimate of unique values)',
+ 'FULLTEXT_MYSQL_TOTAL_POSTS' => 'Total number of indexed posts',
+
+ 'GENERAL_SEARCH_SETTINGS' => 'General Search Settings',
+ 'GO_TO_SEARCH_INDEX' => 'Go to search index page',
+
+ 'INDEX_STATS' => 'Index Statistics',
+ 'INDEXING_IN_PROGRESS' => 'Indexing in progress',
+ 'INDEXING_IN_PROGRESS_EXPLAIN' => 'The search backend is currently indexing all posts on the board. This can take from a few minutes to a few hours depending on your board\'s size.',
+
+ 'LIMIT_SEARCH_LOAD' => 'Search page system load limit',
+ 'LIMIT_SEARCH_LOAD_EXPLAIN' => 'If the 1 minute system load exceeds this value the search page will go offline, 1.0 equals ~100% utilisation of one processor. This only functions on UNIX based servers.',
+
+ 'MAX_SEARCH_CHARS' => 'Max characters indexed by search',
+ 'MAX_SEARCH_CHARS_EXPLAIN' => 'Words with no more than this many characters will be indexed for searching.',
+ 'MIN_SEARCH_CHARS' => 'Min characters indexed by search',
+ 'MIN_SEARCH_CHARS_EXPLAIN' => 'Words with at least this many characters will be indexed for searching.',
+ 'MIN_SEARCH_AUTHOR_CHARS' => 'Min author name characters',
+ 'MIN_SEARCH_AUTHOR_CHARS_EXPLAIN' => 'Users have to enter at least this many characters of the name when performing a wildcard author search. If the author\'s username is shorter than this number you can still search for the author\'s posts by entering the complete username.',
+
+ 'PROGRESS_BAR' => 'Progress bar',
+
+ 'SEARCH_INDEX_CREATED' => 'Successfully indexed all posts in the board database',
+ 'SEARCH_INDEX_REMOVED' => 'Successfully deleted the search index for this backend',
+ 'SEARCH_INTERVAL' => 'Search Flood Interval',
+ 'SEARCH_INTERVAL_EXPLAIN' => 'Number of seconds users must wait between searches.',
+ 'SEARCH_STORE_RESULTS' => 'Search result cache length',
+ 'SEARCH_STORE_RESULTS_EXPLAIN' => 'Cached search results will expire after this time, in seconds. Set to 0 if you want to disable search cache.',
+ 'SEARCH_TYPE' => 'Search Backend',
+ 'SEARCH_TYPE_EXPLAIN' => 'phpBB allows you to choose the backend that is used for searching text in post contents. By default the search will use phpBB\'s own fulltext search.',
+ 'SWITCHED_SEARCH_BACKEND' => 'You switched the search backend. In order to use the new search backend you should make sure that there is an index for the backend you chose.',
+
+ 'TOTAL_WORDS' => 'Total number of indexed words',
+ 'TOTAL_MATCHES' => 'Total number of word to post relations indexed',
+
+ 'YES_SEARCH' => 'Enable search facilities',
+ 'YES_SEARCH_EXPLAIN' => 'User and backend search functions including fulltext updates when posting.',
+ 'YES_SEARCH_UPDATE' => 'Enable fulltext updating',
+ 'YES_SEARCH_UPDATE_EXPLAIN' => 'Updating of fulltext indexes when posting, overriden if search is disabled.',
+));
+
+?> \ No newline at end of file
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 77985df498..f9964558b7 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -47,6 +47,7 @@ $lang = array_merge($lang, array(
'ACCOUNT_ALREADY_ACTIVATED' => 'Your account is already activated',
'ACCOUNT_NOT_ACTIVATED' => 'Your account has not been activated yet',
'ACP' => 'Administration Control Panel',
+ 'ACTIVE' => 'active',
'ACTIVE_ERROR' => 'You have specified an inactive username. Please activate your account and try again. If you continue to have problems please contact a board administrator.',
'ADMINISTRATOR' => 'Administrator',
'ADMINISTRATORS' => 'Administrators',
@@ -90,6 +91,7 @@ $lang = array_merge($lang, array(
'CANCEL' => 'Cancel',
'CHANGE' => 'Change',
'CLICK_VIEW_PRIVMSG' => 'Click %sHere%s to visit your Inbox',
+ 'CLOSE_WINDOW' => 'Close window',
'CONFIRM' => 'Confirm',
'CONFIRM_CODE' => 'Confirmation code',
'CONFIRM_CODE_EXPLAIN' => 'Enter the code exactly as you see it in the image, it is case sensitive, zero has a diagonal line through it.',
@@ -290,6 +292,7 @@ $lang = array_merge($lang, array(
'NO_NEW_PM' => '<b>0</b> new messages',
'NO_NEW_POSTS' => 'No new posts',
'NO_POSTS' => 'No Posts',
+ 'NO_SUCH_SEARCH_MODULE' => 'The specified search backend doesn\'t exist',
'NO_TOPIC' => 'The requested topic does not exist.',
'NO_TOPICS' => 'There are no topics or posts in this forum.',
'NO_UNREAD_PM' => '<b>0</b> unread messages',