aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/adm/style/acp_database.html57
-rw-r--r--phpBB/includes/acp/acp_database.php790
-rw-r--r--phpBB/includes/db/postgres.php20
-rw-r--r--phpBB/includes/functions_compress.php13
-rw-r--r--phpBB/install/install.php2
-rw-r--r--phpBB/install/schemas/schema_data.sql234
-rw-r--r--phpBB/language/en/acp/common.php8
-rw-r--r--phpBB/language/en/acp/database.php53
8 files changed, 1045 insertions, 132 deletions
diff --git a/phpBB/adm/style/acp_database.html b/phpBB/adm/style/acp_database.html
new file mode 100644
index 0000000000..597a79623b
--- /dev/null
+++ b/phpBB/adm/style/acp_database.html
@@ -0,0 +1,57 @@
+<!-- INCLUDE overall_header.html -->
+
+<a name="maincontent"></a>
+<!-- IF MODE eq 'restore' -->
+<h1>{L_ACP_RESTORE}</h1>
+
+<p>{L_ACP_RESTORE_EXPLAIN}</p>
+
+<form id="acp_backup" method="post" action="{U_ACTION}">
+<fieldset>
+ <legend>{L_RESTORE_OPTIONS}</legend>
+ <dl>
+ <dt><label for="user">{L_SELECT_FILE}:</label></dt>
+ <dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF not files.SUPPORTED --> disabled="disabled"<!-- ENDIF --><!-- IF files.SELECTED --> selected="selected"<!-- ENDIF -->>{files.FILE}</option><!-- END files --></select></dd>
+ </dl>
+</fieldset>
+<fieldset class="submit-buttons">
+ <input class="button1" type="submit" id="submit" name="submit" value="{L_START_RESTORE}" />&nbsp;
+ <input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
+</fieldset>
+</form>
+<!-- ELSE -->
+<h1>{L_ACP_BACKUP}</h1>
+
+<p>{L_ACP_BACKUP_EXPLAIN}</p>
+
+<form id="acp_backup" method="post" action="{U_ACTION}">
+<fieldset>
+ <legend>{L_BACKUP_OPTIONS}</legend>
+ <dl>
+ <dt><label for="user">{L_BACKUP_TYPE}:</label></dt>
+ <dd><input type="radio" name="type" value="full" id="type" checked="checked" />&nbsp;{L_FULL_BACKUP}&nbsp;&nbsp;<input type="radio" name="type" value="structure" id="type" />&nbsp;{L_STRUCTURE_ONLY}&nbsp;&nbsp;<input type="radio" name="type" value="data" id="type" />&nbsp;{L_DATA_ONLY}</dd>
+ </dl>
+ <dl>
+ <dt><label for="user">{L_FILE_TYPE}:</label></dt>
+ <!-- BEGIN methods -->
+ <dd><input name="method" id="method" type="radio" value="{methods.TYPE}"<!-- IF methods.S_FIRST_ROW -->checked="checked"<!-- ENDIF --> />&nbsp;{methods.TYPE}</dd>
+ <!-- END methods -->
+ </dl>
+ <dl>
+ <dt><label for="user">{L_ACTION}:</label></dt>
+ <dd><input type="radio" name="where" value="download" id="where" checked="checked" />&nbsp;{L_DOWNLOAD}&nbsp;&nbsp;<input type="radio" name="where" value="store" id="where" />&nbsp;{L_STORE_LOCAL}</dd>
+ </dl>
+ <dl>
+ <dt><label for="user">{L_TABLE_SELECT}:</label></dt>
+ <!-- BEGIN tables -->
+ <dd><input name="table[]" id="table[]" type="checkbox" value="{tables.TABLE}" />&nbsp;{tables.TABLE}</dd>
+ <!-- END tables -->
+ </dl>
+</fieldset>
+<fieldset class="submit-buttons">
+ <input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
+ <input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
+</fieldset>
+</form>
+<!-- ENDIF -->
+<!-- INCLUDE overall_footer.html --> \ No newline at end of file
diff --git a/phpBB/includes/acp/acp_database.php b/phpBB/includes/acp/acp_database.php
new file mode 100644
index 0000000000..a9de4a2b5c
--- /dev/null
+++ b/phpBB/includes/acp/acp_database.php
@@ -0,0 +1,790 @@
+<?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_database
+{
+ var $u_action;
+
+ function main($id, $mode)
+ {
+ global $db, $user, $auth, $template, $table_prefix;
+ global $config, $SID, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+
+ include($phpbb_root_path . 'includes/functions_compress.'.$phpEx);
+
+ $user->add_lang('acp/database');
+
+ $this->tpl_name = 'acp_database';
+ $this->page_title = 'ACP_DATABASE';
+
+ $action = request_var('action', '');
+ $submit = (isset($_POST['submit'])) ? true : false;
+
+ $template->assign_vars(array(
+ 'MODE' => $mode
+ ));
+
+ switch ($mode)
+ {
+ case 'backup':
+ switch ($action)
+ {
+ case 'download':
+ $type = request_var('type', '');
+ $table = request_var('table', array(''));
+ $format = request_var('method', '');
+ $where = request_var('where', '');
+
+ $filename = time();
+
+ // All of the generated queries go here
+ $sql_data = '';
+ $sql_data .= "#\n";
+ $sql_data .= "# phpBB Backup Script\n";
+ $sql_data .= "# Dump of tables for $table_prefix\n";
+ $sql_data .= "#\n# DATE : " . gmdate("d-m-Y H:i:s", $filename) . " GMT\n";
+ $sql_data .= "#\n";
+
+ switch (SQL_LAYER)
+ {
+ case 'sqlite':
+ $sql_data .= "BEGIN TRANSACTION;\n";
+ break;
+ }
+
+ // Structure
+ if ($type == 'full' || $type == 'structure')
+ {
+ switch (SQL_LAYER)
+ {
+ case 'mysqli':
+ case 'mysql4':
+ case 'mysql':
+
+ foreach ($table as $table_name)
+ {
+ $row = array();
+ $sql_data .= '# Table: ' . $table_name . "\n";
+ $sql_data .= "DROP TABLE IF EXISTS $table_name;\n";
+ $sql_data .= "CREATE TABLE $table_name(\n";
+
+ $result = $db->sql_query("SHOW FIELDS FROM $table_name");
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $line = ' ' . $row['Field'] . ' ' . $row['Type'];
+
+ if (!is_null($row['Default']))
+ {
+ $line .= " DEFAULT '{$row['Default']}'";
+ }
+
+ if ($row['Null'] != 'YES')
+ {
+ $line .= ' NOT NULL';
+ }
+
+ if ($row['Extra'] != '')
+ {
+ $line .= ' ' . $row['Extra'];
+ }
+
+ $rows[] = $line;
+ }
+
+ $result = $db->sql_query("SHOW KEYS FROM $table_name");
+
+ while($row = $db->sql_fetchrow($result))
+ {
+ $kname = $row['Key_name'];
+
+ if (($kname != 'PRIMARY') && ($row['Non_unique'] == 0))
+ {
+ $kname = "UNIQUE|$kname";
+ }
+
+ if (!is_array($index[$kname]))
+ {
+ $index[$kname] = array();
+ }
+
+ $index[$kname][] = $row['Column_name'];
+ }
+
+ $field = array();
+ foreach ($index as $key => $columns)
+ {
+ $line = ' ';
+
+ if ($key == 'PRIMARY')
+ {
+ $line .= 'PRIMARY KEY (' . implode(', ', $columns) . ')';
+ }
+ elseif (strpos($key, 'UNIQUE') === 0)
+ {
+ $line .= 'UNIQUE ' . substr($key, 7) . ' (' . implode(', ', $columns) . ')';
+ }
+ else
+ {
+ $line .= "KEY $key (" . implode(', ', $columns) . ')';
+ }
+ $rows[] = $line;
+ }
+ $sql_data .= implode(",\n", $rows);
+ $sql_data .= "\n);\n\n";
+ }
+ break;
+ case 'sqlite':
+ $names = preg_replace('/\w+/', "'\\0'", implode(', ', $table));
+ $sql = "SELECT sql, name FROM sqlite_master WHERE type!='meta' AND name IN ($names) ORDER BY type DESC, name;";
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $sql_data .= '# Table: ' . $row['name'] . "\n" . $row['sql'] . ";\n";
+ $sql_data .= "DROP TABLE IF EXISTS {$row['name']};\n";
+ $sql2 = "PRAGMA index_list('{$row['name']}');";
+ $result2 = $db->sql_query($sql2);
+ $ar = sqlite_fetch_all($result2);
+
+ foreach ($ar as $value)
+ {
+ if (strpos($value['name'], 'autoindex') !== false)
+ {
+ continue;
+ }
+ $result3 = $db->sql_query("PRAGMA index_info('{$value['name']}');");
+ $ars = sqlite_fetch_all($result3);
+
+ $fields = array();
+ foreach ($ars as $va)
+ {
+ $fields[] = $va['name'];
+ }
+
+ $sql_data .= 'CREATE ' . ($value['unique'] ? 'UNIQUE ' : '') . 'INDEX ' . $value['name'] . ' on ' . $row['name'] . ' (' . implode(', ', $fields) . ");\n";
+ }
+ $sql_data .= "\n";
+ }
+ break;
+ case 'postgres':
+ $get_seq_sql = "SELECT * FROM pg_class WHERE NOT relname ~ 'pg_.*'
+ AND relkind = 'S' ORDER BY relname";
+
+ $seq = $db->sql_query($get_seq_sql);
+
+ if ($num_seq = $db->sql_numrows($seq))
+ {
+ $return_val = "\n# Sequences \n";
+ $i_seq = 0;
+
+ while($i_seq < $num_seq)
+ {
+ $row = $db->sql_fetchrow($seq);
+ $sequence = $row['relname'];
+
+ $bool = false;
+ foreach($table as $table_name)
+ {
+ if (strpos($sequence, $table_name) === false)
+ {
+ continue;
+ }
+ $bool = true;
+ break;
+ }
+
+ // Don't create a sequence for tables we don't create
+ if (!$bool)
+ {
+ $i_seq++;
+ continue;
+ }
+
+ $get_props_sql = "SELECT * FROM $sequence";
+ $seq_props = $db->sql_query($get_props_sql);
+
+ if ($db->sql_numrows($seq_props) > 0)
+ {
+ $row1 = $db->sql_fetchrow($seq_props);
+ $row1['last_value'] = 1;
+
+ $return_val .= "DROP SEQUENCE $sequence;\n";
+ $return_val .= "CREATE SEQUENCE $sequence START " . $row1['last_value'] . ' INCREMENT ' . $row1['increment_by'] . ' MAXVALUE ' . $row1['max_value'] . ' MINVALUE ' . $row1['min_value'] . ' CACHE ' . $row1['cache_value'] . ";\n";
+ }
+
+ $i_seq++;
+
+ }
+ $sql_data .= $return_val . "\n";
+
+ }
+
+ foreach ($table as $table_name)
+ {
+ $field_query = "SELECT a.attnum, a.attname AS field, t.typname as type, a.attlen AS length, a.atttypmod as lengthvar, a.attnotnull as notnull
+ FROM pg_class c, pg_attribute a, pg_type t
+ WHERE c.relname = '$table_name'
+ AND a.attnum > 0
+ AND a.attrelid = c.oid
+ AND a.atttypid = t.oid
+ ORDER BY a.attnum";
+ $result = $db->sql_query($field_query);
+
+ $sql_data .= '# Table: ' . $table_name . "\n";
+ $sql_data .= "DROP TABLE $table_name;\n";
+ $sql_data .= "CREATE TABLE $table_name(\n";
+ $lines = array();
+ while ($row = $db->sql_fetchrow($result))
+ {
+ //
+ // Get the data from the table
+ //
+ $sql_get_default = "SELECT d.adsrc AS rowdefault
+ FROM pg_attrdef d, pg_class c
+ WHERE (c.relname = '$table_name')
+ AND (c.oid = d.adrelid)
+ AND d.adnum = " . $row['attnum'];
+ $def_res = $db->sql_query($sql_get_default);
+
+ if (!$def_res)
+ {
+ unset($row['rowdefault']);
+ }
+ else
+ {
+ $row['rowdefault'] = @pg_fetch_result($def_res, 0, 'rowdefault');
+ }
+
+ if ($row['type'] == 'bpchar')
+ {
+ // Internally stored as bpchar, but isn't accepted in a CREATE TABLE statement.
+ $row['type'] = 'char';
+ }
+
+ $line = ' ' . $row['field'] . ' ' . $row['type'];
+
+ if (strpos($row['type'], 'char') !== false)
+ {
+ if ($row['lengthvar'] > 0)
+ {
+ $line .= '(' . ($row['lengthvar'] - 4) . ')';
+ }
+ }
+
+ if (strpos($row['type'], 'numeric') !== false)
+ {
+ $line .= '(';
+ $line .= sprintf("%s,%s", (($row['lengthvar'] >> 16) & 0xffff), (($row['lengthvar'] - 4) & 0xffff));
+ $line .= ')';
+ }
+
+ if (!empty($row['rowdefault']))
+ {
+ $line .= ' DEFAULT ' . $row['rowdefault'];
+ }
+
+ if ($row['notnull'] == 't')
+ {
+ $line .= ' NOT NULL';
+ }
+ $lines[] = $line;
+ }
+
+
+ // Get the listing of primary keys.
+ $sql_pri_keys = "SELECT ic.relname AS index_name, bc.relname AS tab_name, ta.attname AS column_name, i.indisunique AS unique_key, i.indisprimary AS primary_key
+ FROM pg_class bc, pg_class ic, pg_index i, pg_attribute ta, pg_attribute ia
+ WHERE (bc.oid = i.indrelid)
+ AND (ic.oid = i.indexrelid)
+ AND (ia.attrelid = i.indexrelid)
+ AND (ta.attrelid = bc.oid)
+ AND (bc.relname = '$table_name')
+ AND (ta.attrelid = i.indrelid)
+ AND (ta.attnum = i.indkey[ia.attnum-1])
+ ORDER BY index_name, tab_name, column_name ";
+ $result = $db->sql_query($sql_pri_keys);
+
+ $index_create = $index_rows = $primary_key = array();
+
+ // We do this in two steps. It makes placing the comma easier
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if ($row['primary_key'] == 't')
+ {
+ $primary_key[] = $row['column_name'];
+ $primary_key_name = $row['index_name'];
+
+ }
+ else
+ {
+ // We have to store this all this info because it is possible to have a multi-column key...
+ // we can loop through it again and build the statement
+ $index_rows[$row['index_name']]['table'] = $table_name;
+ $index_rows[$row['index_name']]['unique'] = ($row['unique_key'] == 't') ? true : false;
+ $index_rows[$row['index_name']]['column_names'][] = $row['column_name'];
+ }
+ }
+
+ if (!empty($index_rows))
+ {
+ foreach ($index_rows as $idx_name => $props)
+ {
+ $index_create[] = 'CREATE ' . ($props['unique'] ? 'UNIQUE ' : '') . "INDEX $idx_name ON $table_name (" . implode(', ', $props['column_names']) . ");";
+ }
+ }
+
+ if (!empty($primary_key))
+ {
+ $lines[] = " CONSTRAINT $primary_key_name PRIMARY KEY (" . implode(', ', $primary_key) . ")";
+ }
+
+ // Generate constraint clauses for CHECK constraints
+ $sql_checks = "SELECT conname as index_name, consrc
+ FROM pg_constraint, pg_class bc
+ WHERE conrelid = bc.oid
+ AND bc.relname = '$table_name'
+ AND NOT EXISTS (
+ SELECT *
+ FROM pg_constraint as c, pg_inherits as i
+ WHERE i.inhrelid = pg_constraint.conrelid
+ AND c.conname = pg_constraint.conname
+ AND c.consrc = pg_constraint.consrc
+ AND c.conrelid = i.inhparent
+ )";
+ $result = $db->sql_query($sql_checks);
+
+ if (!$result)
+ {
+ message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_checks);
+ }
+
+ // Add the constraints to the sql file.
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if (!is_null($row['consrc']))
+ {
+ $lines[] = ' CONSTRAINT ' . $row['index_name'] . ' CHECK ' . $row['consrc'];
+ }
+ }
+
+ $sql_data .= implode(", \n", $lines);
+ $sql_data .= "\n);\n";
+
+ if (!empty($index_create))
+ {
+ $sql_data .= implode("\n", $index_create) . "\n\n";
+ }
+ }
+ break;
+
+ default:
+ trigger_error('KungFuDeathGrip');
+ }
+ }
+
+ // Data
+ if ($type == 'full' || $type == 'data')
+ {
+ $sql_data .= "\n";
+ switch (SQL_LAYER)
+ {
+ case 'mysqli':
+ case 'mysql4':
+ case 'mysql':
+ foreach ($table as $name)
+ {
+ $col_types = array();
+ $col = $db->sql_query("SHOW COLUMNS FROM $name");
+ while ($row = $db->sql_fetchrow($col))
+ {
+ $col_types[$row['Field']] = $row['Type'];
+ }
+ $sql = "SELECT * FROM $name";
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $sql_data .= 'INSERT INTO ' . $name . ' (';
+ $names = $data = array();
+ foreach ($row as $row_name => $row_data)
+ {
+ $names[] = $row_name;
+
+ // Figure out what this data is, escape it properly
+ if (is_null($row_data))
+ {
+ $row_data = 'NULL';
+ }
+ else if ($row_data == '')
+ {
+ $row_data = "''";
+ }
+ else if (strpos($col_types[$row_name], 'text') !== false || strpos($col_types[$row_name], 'char') !== false)
+ {
+ $row_data = "'" . $row_data . "'";
+ }
+
+ $data[] = $row_data;
+ }
+ $sql_data .= implode(', ', $names) . ') VALUES ('. implode(', ', $data) .");\n";
+ }
+ }
+ break;
+ case 'sqlite':
+ foreach ($table as $name)
+ {
+ $col_types = sqlite_fetch_column_types($name, $db->db_connect_id);
+ $sql = "SELECT * FROM $name";
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $sql_data .= 'INSERT INTO ' . $name . ' (';
+ $names = $data = array();
+ foreach ($row as $row_name => $row_data)
+ {
+ $names[] = $row_name;
+
+ // Figure out what this data is, escape it properly
+ if (is_null($row_data))
+ {
+ $row_data = 'NULL';
+ }
+ else if ($row_data == '')
+ {
+ $row_data = "''";
+ }
+ else if (strpos($col_types[$row_name], 'text') !== false || strpos($col_types[$row_name], 'char') !== false)
+ {
+ $row_data = "'" . $row_data . "'";
+ }
+
+ $data[] = $row_data;
+ }
+ $sql_data .= implode(', ', $names) . ') VALUES ('. implode(', ', $data) .");\n";
+ }
+ }
+ break;
+
+ case 'postgres':
+ foreach ($table as $name)
+ {
+ $aryType = $aryName = array();
+ // Grab all of the data from current table.
+ $sql = "SELECT * FROM {$name}";
+ $result = $db->sql_query($sql);
+
+ $i_num_fields = pg_num_fields($result);
+
+ for ($i = 0; $i < $i_num_fields; $i++)
+ {
+ $aryType[] = pg_field_type($result, $i);
+ $aryName[] = pg_field_name($result, $i);
+ }
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $schema_vals = $schema_fields = array();
+ // Build the SQL statement to recreate the data.
+ for ($i = 0; $i < $i_num_fields; $i++)
+ {
+ $strVal = $row[$aryName[$i]];
+
+ if (preg_match('#char|text|bool#i', $aryType[$i]))
+ {
+ $strQuote = "'";
+ $strEmpty = '';
+ $strVal = addslashes($strVal);
+ }
+ else if (preg_match('#date|timestamp#i', $aryType[$i]))
+ {
+ if (empty($strVal))
+ {
+ $strQuote = '';
+ }
+ else
+ {
+ $strQuote = "'";
+ }
+ }
+ else
+ {
+ $strQuote = '';
+ $strEmpty = 'NULL';
+ }
+
+ if (empty($strVal) && $strVal !== '0')
+ {
+ $strVal = $strEmpty;
+ }
+
+ $schema_vals[] = $strQuote . $strVal . $strQuote;
+ $schema_fields[] = $aryName[$i];
+ }
+
+ // Take the ordered fields and their associated data and build it
+ // into a valid sql statement to recreate that field in the data.
+ $sql_data .= "INSERT INTO $name (" . implode(', ', $schema_fields) . ') VALUES(' . implode(', ', $schema_vals) . ");\n";
+ }
+ }
+ break;
+
+ default:
+ trigger_error('KungFuDeathGrip');
+ }
+ }
+
+ switch (SQL_LAYER)
+ {
+ case 'sqlite':
+ $sql_data .= "COMMIT;";
+ break;
+ }
+
+ // Base file name
+ $file = $phpbb_root_path . 'store/' . $filename . $format;
+
+ switch ($format)
+ {
+ case '.zip':
+ case '.tar.bz2':
+ case '.tar.gz':
+ case '.tar':
+
+ if ($format == '.zip')
+ {
+ $compress = new compress_zip('w', $file);
+ }
+ else
+ {
+ $compress = new compress_tar('w', $file, $format);
+ }
+
+ $compress->add_data($sql_data, "$filename.sql");
+ $compress->close();
+ if ($where == 'download')
+ {
+ $compress->download($filename);
+ exit;
+ }
+ break;
+
+ case '.sql':
+
+ $handle = @fopen($file, 'a');
+ @fwrite($handle, $sql_data);
+ @fclose($handle);
+ if ($where == 'download')
+ {
+ $mimetype = 'text/sql';
+
+ header('Pragma: no-cache');
+ header("Content-Type: $mimetype; name=\"$filename.sql\"");
+ header("Content-disposition: attachment; filename=$filename.sql");
+
+ $fp = fopen("{$phpbb_root_path}store/$filename.sql", 'rb');
+ while ($buffer = fread($fp, 1024))
+ {
+ echo $buffer;
+ }
+ fclose($fp);
+ exit;
+ }
+ }
+ add_log('admin', 'LOG_DB_BACKUP');
+ trigger_error($user->lang['BACKUP_SUCCESS']);
+ break;
+
+ default:
+ $tables = array();
+ switch (SQL_LAYER)
+ {
+ case 'sqlite':
+ $sql = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name";
+ $result = $db->sql_query($sql);
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if (strpos($row['name'] . '_', $table_prefix) === 0)
+ {
+ $tables[] = $row['name'];
+ }
+ }
+ break;
+
+ case 'mysqli':
+ case 'mysql4':
+ case 'mysql':
+ $sql = "SHOW TABLES LIKE '{$table_prefix}%'";
+ $result = $db->sql_query($sql);
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $tables[] = current($row);
+ }
+ break;
+
+ case 'postgres':
+ $sql = "SELECT relname FROM pg_stat_user_tables ORDER BY relname;";
+ $result = $db->sql_query($sql);
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if (strpos($row['relname'] . '_', $table_prefix) === 0)
+ {
+ $tables[] = $row['relname'];
+ }
+ }
+ break;
+
+ default:
+ trigger_error('KungFuDeathGrip');
+ }
+
+ foreach ($tables as $table)
+ {
+ $template->assign_block_vars('tables', array(
+ 'TABLE' => $table
+ ));
+ }
+
+ $template->assign_vars(array(
+ 'U_ACTION' => $this->u_action . '&amp;action=download'
+ ));
+
+ $methods = array('.sql');
+ $methods = array_merge($methods, compress::methods());
+ foreach ($methods as $type)
+ {
+ $template->assign_block_vars('methods', array(
+ 'TYPE' => $type
+ ));
+ }
+ break;
+ }
+ break;
+
+ case 'restore':
+ switch ($action)
+ {
+ case 'submit':
+ $file = request_var('file', '');
+ preg_match('#^(\d{10})\.(sql|zip|tar(?:\.(?:gz|bz2))?)$#', $file, $matches);
+ $format = '.' . $matches[2];
+ switch ($format)
+ {
+ case '.zip':
+ case '.tar.bz2':
+ case '.tar.gz':
+ case '.tar':
+ if ($format == '.zip')
+ {
+ $compress = new compress_zip('r', $phpbb_root_path . 'store/' . $file);
+ }
+ else
+ {
+ $compress = new compress_tar('r', $phpbb_root_path . 'store/' . $file, $format);
+ }
+
+ $compress->extract($phpbb_root_path . 'store/');
+ $compress->close();
+ break;
+ }
+
+ $data = file_get_contents($phpbb_root_path . 'store/' . $matches[1] . '.sql');
+ if ($data != '')
+ {
+ // Strip out sql comments...
+ remove_remarks($data);
+ $pieces = split_sql_file($data, ';');
+
+ $sql_count = count($pieces);
+ for($i = 0; $i < $sql_count; $i++)
+ {
+ $sql = trim($pieces[$i]);
+
+ if (!empty($sql) && $sql[0] != '#')
+ {
+ $db->sql_query($sql);
+ }
+ }
+ }
+ add_log('admin', 'LOG_DB_RESTORE');
+ trigger_error($user->lang['RESTORE_SUCCESS']);
+ break;
+
+ default:
+ $selected = $stop = false;
+ $methods = compress::methods();
+ $methods[] = '.sql';
+
+ $dir = $phpbb_root_path . 'store/';
+ $dh = opendir($dir);
+ while (($file = readdir($dh)) !== false)
+ {
+ if (preg_match('#^\d{10}\.(sql|zip|tar(?:\.(?:gz|bz2))?)$#', $file, $matches))
+ {
+ $supported = in_array('.' . $matches[1], $methods);
+ if ($supported && !$selected && !$stop)
+ {
+ $selected = true;
+ $stop = true;
+ }
+ else
+ {
+ $selected = false;
+ }
+ $template->assign_block_vars('files', array(
+ 'FILE' => $file,
+ 'SUPPORTED' => $supported,
+ 'SELECTED' => $selected
+ ));
+ }
+ }
+ closedir($dh);
+
+ $template->assign_vars(array(
+ 'U_ACTION' => $this->u_action . '&amp;action=submit'
+ ));
+ break;
+ }
+ break;
+ }
+ }
+}
+
+/**
+* @package module_install
+*/
+class acp_database_info
+{
+ function module()
+ {
+ return array(
+ 'filename' => 'acp_database',
+ 'title' => 'ACP_DATABASE',
+ 'version' => '1.0.0',
+ 'modes' => array(
+ 'backup' => array('title' => 'ACP_BACKUP', 'auth' => 'acl_a_server'),
+ 'restore' => array('title' => 'ACP_RESTORE', 'auth' => 'acl_a_server'),
+ ),
+ );
+ }
+
+ function install()
+ {
+ }
+
+ function uninstall()
+ {
+ }
+}
+
+?> \ No newline at end of file
diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php
index d7cfa1ba10..75d83aecd6 100644
--- a/phpBB/includes/db/postgres.php
+++ b/phpBB/includes/db/postgres.php
@@ -85,22 +85,22 @@ class dbal_postgres extends dbal
switch ($status)
{
case 'begin':
- $result = @pg_exec($this->db_connect_id, 'BEGIN');
+ $result = @pg_query($this->db_connect_id, 'BEGIN');
$this->transaction = true;
break;
case 'commit':
- $result = @pg_exec($this->db_connect_id, 'COMMIT');
+ $result = @pg_query($this->db_connect_id, 'COMMIT');
$this->transaction = false;
if (!$result)
{
- @pg_exec($this->db_connect_id, 'ROLLBACK');
+ @pg_query($this->db_connect_id, 'ROLLBACK');
}
break;
case 'rollback':
- $result = @pg_exec($this->db_connect_id, 'ROLLBACK');
+ $result = @pg_query($this->db_connect_id, 'ROLLBACK');
$this->transaction = false;
break;
@@ -207,7 +207,7 @@ class dbal_postgres extends dbal
$query_id = $this->query_result;
}
- return ($query_id) ? @pg_numrows($query_id) : false;
+ return ($query_id) ? @pg_num_rows($query_id) : false;
}
/**
@@ -289,14 +289,14 @@ class dbal_postgres extends dbal
if (preg_match("/^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)/is", $this->last_query_text, $tablename))
{
$query = "SELECT currval('" . $tablename[1] . "_id_seq') AS last_value";
- $temp_q_id = @pg_exec($this->db_connect_id, $query);
+ $temp_q_id = @pg_query($this->db_connect_id, $query);
if (!$temp_q_id)
{
return false;
}
$temp_result = @pg_fetch_assoc($temp_q_id, NULL);
- @pg_freeresult($query_id);
+ @pg_free_result($query_id);
return ($temp_result) ? $temp_result['last_value'] : false;
}
@@ -318,7 +318,7 @@ class dbal_postgres extends dbal
if (isset($this->open_queries[(int) $query_id]))
{
unset($this->open_queries[(int) $query_id]);
- return @pg_freeresult($query_id);
+ return @pg_free_result($query_id);
}
}
@@ -367,12 +367,12 @@ class dbal_postgres extends dbal
$endtime = explode(' ', microtime());
$endtime = $endtime[0] + $endtime[1];
- $result = @pg_exec($this->db_connect_id, $query);
+ $result = @pg_query($this->db_connect_id, $query);
while ($void = @pg_fetch_assoc($result, NULL))
{
// Take the time spent on parsing rows into account
}
- @pg_freeresult($result);
+ @pg_free_result($result);
$splittime = explode(' ', microtime());
$splittime = $splittime[0] + $splittime[1];
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index b12a81a04d..55036b130d 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -81,6 +81,7 @@ class compress
function add_data($src, $name)
{
+ $stat = array();
$stat[2] = 436; //384
$stat[4] = $stat[5] = 0;
$stat[7] = strlen($src);
@@ -543,15 +544,15 @@ class compress_tar extends compress
switch ($this->type)
{
- case 'tar':
+ case '.tar':
$mimetype = 'application/x-tar';
break;
- case 'tar.gz':
+ case '.tar.gz':
$mimetype = 'application/x-gzip';
break;
- case 'tar.bz2':
+ case '.tar.bz2':
$mimetype = 'application/x-bzip2';
break;
@@ -561,10 +562,10 @@ class compress_tar extends compress
}
header('Pragma: no-cache');
- header("Content-Type: $mimetype; name=\"$filename.$this->type\"");
- header("Content-disposition: attachment; filename=$filename.$this->type");
+ header("Content-Type: $mimetype; name=\"$filename$this->type\"");
+ header("Content-disposition: attachment; filename=$filename$this->type");
- $fp = fopen("{$phpbb_root_path}store/$filename.$this->type", 'rb');
+ $fp = fopen("{$phpbb_root_path}store/$filename$this->type", 'rb');
while ($buffer = fread($fp, 1024))
{
echo $buffer;
diff --git a/phpBB/install/install.php b/phpBB/install/install.php
index 0c3521eb1d..5cbd1ae235 100644
--- a/phpBB/install/install.php
+++ b/phpBB/install/install.php
@@ -1087,6 +1087,7 @@ if ($stage == 3)
$sql_query = preg_replace('#phpbb_#is', $table_prefix, $sql_query);
$remove_remarks($sql_query);
+
$sql_query = split_sql_file($sql_query, $delimiter);
foreach ($sql_query as $sql)
@@ -1237,6 +1238,7 @@ if ($stage == 4)
define('USER_INACTIVE', 1);
define('USER_IGNORE', 2);
define('USER_FOUNDER', 3);
+ define('LOGIN_SUCCESS', 3);
$sql = "SELECT *
diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql
index ff9511ce75..5e7116a6c0 100644
--- a/phpBB/install/schemas/schema_data.sql
+++ b/phpBB/install/schemas/schema_data.sql
@@ -481,122 +481,124 @@ 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_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_search');
-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_search');
+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, 237, 274, '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, 463, 464, '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, 317, 368, '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, 238, 239, '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, 240, 251, '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, 252, 259, '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, 260, 273, '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, 275, 292, '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, 293, 316, '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, 369, 416, '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, 417, 430, '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, 431, 448, '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, 449, 470, '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, 471, 472, '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, 276, 281, '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, 282, 291, '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, 306, 315, '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, 318, 347, '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, 348, 355, '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, 356, 367, '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, 372, 377, '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, 418, 421, '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, 432, 439, '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, 440, 447, '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, 450, 451, '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, 452, 461, '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, 462, 469, '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, 465, 466, '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, 241, 242, '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, 243, 244, '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, 245, 246, '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, 247, 248, '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, 294, 305, '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, 307, 308, '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, 309, 310, '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, 311, 312, '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, 313, 314, '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, 249, 250, '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, 253, 254, '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, 255, 256, '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, 257, 258, '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, 261, 262, '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, 263, 264, '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, 265, 266, '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, 269, 270, '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, 271, 272, '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, 467, 468, '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, 295, 296, '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, 297, 298, '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, 299, 300, '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, 301, 302, '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, 303, 304, '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, 433, 434, '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, 435, 436, '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, 437, 438, '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, 453, 454, '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, 455, 456, '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, 349, 350, '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, 459, 460, '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, 323, 324, '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, 361, 362, '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, 363, 364, '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, 365, 366, '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, 359, 360, '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, 357, 358, '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, 279, 280, '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, 321, 322, '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, 277, 278, '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, 319, 320, '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, 325, 326, '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, 327, 328, '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, 329, 330, '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, 331, 332, '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, 335, 336, '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, 337, 338, '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, 339, 340, '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, 341, 342, '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, 422, 429, '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, 419, 420, '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, 423, 424, '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, 425, 426, '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, 427, 428, '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, 333, 334, '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, 373, 374, '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, 389, 390, '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, 375, 376, '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, 391, 392, '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, 379, 380, '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, 381, 382, '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, 387, 388, '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, 385, 386, '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, 404, 415, '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, 405, 406, '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, 407, 408, '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, 409, 410, '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, 411, 412, '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, 413, 414, '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, 394, 403, '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, 378, 383, '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, 395, 396, '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, 370, 371, '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, 397, 398, '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, 399, 400, '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, 401, 402, '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, 384, 393, '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, 283, 284, '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, 285, 286, '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, 287, 288, '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, 289, 290, '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, 343, 344, '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, 351, 352, '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, 353, 354, '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, 345, 346, '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, 457, 458, '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, 441, 442, 'ACP_SEARCH_INDEX', 'index', 'acl_a_search');
+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, 267, 268, 'ACP_SEARCH_SETTINGS', 'settings', 'acl_a_search');
+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 (206, 1, 1, 'database', 'acp', 64, 443, 444, 'ACP_BACKUP', 'backup', '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 (207, 1, 1, 'database', 'acp', 64, 445, 446, 'ACP_RESTORE', 'restore', '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/common.php b/phpBB/language/en/acp/common.php
index f444b499e3..f4b3e34daf 100644
--- a/phpBB/language/en/acp/common.php
+++ b/phpBB/language/en/acp/common.php
@@ -39,6 +39,7 @@ $lang = array_merge($lang, array(
'ACP_AUTOMATION' => 'Automation',
'ACP_AVATAR_SETTINGS' => 'Avatar Settings',
+ 'ACP_BACKUP' => 'Backup',
'ACP_BAN' => 'Banning',
'ACP_BAN_EMAILS' => 'Ban Emails',
'ACP_BAN_IPS' => 'Ban IPs',
@@ -66,6 +67,7 @@ $lang = array_merge($lang, array(
'ACP_CRITICAL_LOGS' => 'Error Log',
'ACP_CUSTOM_PROFILE_FIELDS' => 'Custom Profile Fields',
+ 'ACP_DATABASE' => 'Database Management',
'ACP_DISALLOW' => 'Disallow',
'ACP_DISALLOW_USERNAMES' => 'Disallow Usernames',
@@ -127,8 +129,11 @@ $lang = array_merge($lang, array(
'ACP_RANKS' => 'Ranks',
'ACP_REASONS' => 'Report/Denial Reasons',
+ 'ACP_RESTORE' => 'Restore',
+
'ACP_SEARCH_INDEX' => 'Search Index',
'ACP_SEARCH_SETTINGS' => 'Search Settings',
+
'ACP_SERVER_CONFIGURATION' => 'Server Configuration',
'ACP_SERVER_SETTINGS' => 'Server Settings',
'ACP_SMILIES' => 'Smilies',
@@ -374,6 +379,9 @@ $lang = array_merge($lang, array(
'LOG_DISALLOW_ADD' => '<b>Added disallowed username</b><br />&#187; %s',
'LOG_DISALLOW_DELETE' => '<b>Deleted disallowed username</b>',
+ 'LOG_DB_BACKUP' => '<b>Database backup</b>',
+ 'LOG_DB_RESTORE' => '<b>Database restore</b>',
+
'LOG_DOWNLOAD_EXCLUDE_IP' => '<b>Exluded ip/hostname from download list</b><br />&#187; %s',
'LOG_DOWNLOAD_IP' => '<b>Added ip/hostname to download list</b><br />&#187; %s',
'LOG_DOWNLOAD_REMOVE_IP' => '<b>Removed ip/hostname from download list</b><br />&#187; %s',
diff --git a/phpBB/language/en/acp/database.php b/phpBB/language/en/acp/database.php
new file mode 100644
index 0000000000..05ec7d248a
--- /dev/null
+++ b/phpBB/language/en/acp/database.php
@@ -0,0 +1,53 @@
+<?php
+/**
+*
+* acp_ban [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
+
+// Banning
+$lang = array_merge($lang, array(
+ 'DATABASE' => 'Database Utilities',
+ 'ACP_BACKUP_EXPLAIN' => 'Here you can backup all your phpBB related data. You may store the resulting archive in your store/ folder or download it directly. Depending on your server configuration you be able to compress the file in a number of formats. If you wish to include any additional "custom" tables please list them in the additional tables field, separated by commas. ',
+ 'BACKUP_OPTIONS' => 'Backup options',
+ 'BACKUP_TYPE' => 'Backup type',
+ 'START_BACKUP' => 'Start Backup',
+ 'FULL_BACKUP' => 'Full',
+ 'STRUCTURE_ONLY' => 'Structure Only',
+ 'DATA_ONLY' => 'Data only',
+ 'TABLE_SELECT' => 'Table Select',
+ 'FILE_TYPE' => 'File Type',
+ 'STORE_LOCAL' => 'Store file locally',
+ 'BACKUP_SUCCESS' => 'The backup file has been created successfully in the location you specified',
+
+ 'ACP_RESTORE' => 'Restore',
+ 'ACP_RESTORE_EXPLAIN' => 'This will perform a full restore of all phpBB tables from a saved file. You can <u>either</u> upload the backup file via this form or upload it manually to a location on the server. If your server supports it you may use a gzip compressed text file and it will automatically be decompressed. <b>WARNING</b> This will overwrite any existing data. The restore may take a long time to process please do not move from this page till it is complete.',
+ 'SELECT_FILE' => 'Select a file',
+ 'START_RESTORE' => 'Start Restore',
+ 'RESTORE_SUCCESS' => 'The Database has been successfully restored.<br /><br />Your board should be back to the state it was when the backup was made.',
+));
+
+?> \ No newline at end of file