1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-01-19 07:08:09 +01:00

- drop in the new administration panel

- not finished yet: some user related items, style admin, database admin and permissions
- Graham: Please add your MCP schema data to the schema data file. ;)


git-svn-id: file:///svn/phpbb/trunk@5357 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2005-12-19 18:55:52 +00:00
parent 738bf09f92
commit 1855c017e9
61 changed files with 6356 additions and 11997 deletions

View File

@ -1,994 +0,0 @@
<?php
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
if (!empty($setmodules))
{
$filename = basename(__FILE__);
$module['DB']['DB_BACKUP'] = ($auth->acl_get('a_backup')) ? $filename . "$SID&amp;mode=backup" : '';
$file_uploads = @ini_get('file_uploads');
if (!empty($file_uploads) && $file_uploads !== 0 && strtolower($file_uploads) != 'off' && $auth->acl_get('a_restore'))
{
$module['DB']['DB_RESTORE'] = "$filename$SID&amp;mode=restore";
}
return;
}
define('IN_PHPBB', 1);
// Load default header
$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require('pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/functions_compress.'.$phpEx);
@set_time_limit(1200);
// Get some vars
$mode = (isset($_GET['mode'])) ? htmlspecialchars($_GET['mode']) : '';
$action = (isset($_REQUEST['action'])) ? htmlspecialchars($_REQUEST['action']) : '';
// --------------------
// Begin program proper
// --------------------
switch($mode)
{
case 'backup':
if (!$auth->acl_get('a_backup'))
{
trigger_error($user->lang['NO_ADMIN']);
}
$db_type = '';
switch (SQL_LAYER)
{
case 'oracle':
$db_type = 'Oracle';
break;
case 'odbc':
$db_type = 'ODBC';
break;
case 'mssql':
$db_type = 'MSSQL';
break;
}
if ($db_type)
{
trigger_error($user->lang['Backups_not_supported']);
}
$additional_tables = (isset($_REQUEST['tables'])) ? htmlspecialchars($_REQUEST['tables']) : '';
$backup_type = (isset($_REQUEST['type'])) ? intval($_REQUEST['type']) : false;
$search = (!empty($_REQUEST['search'])) ? true : false;
$store = (!empty($_REQUEST['store'])) ? true : false;
$compress = (isset($_REQUEST['compress'])) ? htmlspecialchars($_REQUEST['compress']) : '';
if (!isset($_POST['backupstart']) && !isset($_GET['backupstart']))
{
adm_page_header($user->lang['DB_BACKUP']);
?>
<h1><?php echo $user->lang['DB_BACKUP']; ?></h1>
<p><?php echo $user->lang['Backup_explain']; ?></p>
<form method="post" action="<?php echo "admin_database.$phpEx$SID&amp;mode=$mode"; ?>"><table class="bg" width="95%" cellspacing="1" cellpadding="4" border="0" align="center">
<tr>
<th colspan="2"><?php echo $user->lang['Backup_options']; ?></th>
</tr>
<tr>
<td class="row1" width="40%"><b><?php echo $user->lang['Backup_type']; ?>: </b></td>
<td class="row2"><input type="radio" name="type" value="full" checked="checked" /> <?php echo $user->lang['Full_backup']; ?>&nbsp;&nbsp;<input type="radio" name="type" value="structure" /> <?php echo $user->lang['Structure_only']; ?>&nbsp;&nbsp;<input type="radio" name="type" value="data" /> <?php echo $user->lang['Data_only']; ?></td>
</tr>
<tr>
<td class="row1"><b><?php echo $user->lang['Additional_tables']; ?>: </b><br /><span class="gensmall"><?php echo $user->lang['Additional_tables_explain']; ?></span></td>
<td class="row2"><input class="post" type="text" name="tables" maxlength="255" size="40" /></td>
</tr>
<tr>
<td class="row1"><b><?php echo $user->lang['INC_SEARCH_INDEX']; ?>: </b><br /><span class="gensmall"><?php echo $user->lang['INC_SEARCH_INDEX_EXPLAIN']; ?></span></td>
<td class="row2"><input type="radio" name="search" value="1" checked="checked" /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="search" value="0" /> <?php echo $user->lang['NO']; ?></td>
</tr>
<tr>
<td class="row1"><b><?php echo $user->lang['DOWNLOAD_STORE']; ?>: </b><br /><span class="gensmall"><?php echo $user->lang['DOWNLOAD_STORE_EXPLAIN']; ?></span></td>
<td class="row2"><input type="radio" name="store" value="0" checked="checked" /> <?php echo $user->lang['EXPORT_DOWNLOAD']; ?>&nbsp;&nbsp;<input type="radio" name="store" value="1" /> <?php echo $user->lang['EXPORT_STORE']; ?></td>
</tr>
<?php
if (@extension_loaded('zlib') || extension_loaded('bz2'))
{
?>
<tr>
<td class="row1"><b><?php echo $user->lang['Compress_file']; ?>: </b></td>
<td class="row2"><input type="radio" name="compress" value="none" checked="checked" /> <?php echo $user->lang['NONE']; ?><?php
if (extension_loaded('zlib'))
{
?>&nbsp;&nbsp;<input type="radio" name="compress" value="gzip" />.gz&nbsp;&nbsp;<input type="radio" name="compress" value="zip" />.zip<?php
}
if (extension_loaded('bz2'))
{
?>&nbsp;&nbsp;<input type="radio" name="compress" value="bzip" />.bz2<?php
}
?></td>
</tr>
<?php
}
?>
<tr>
<td class="cat" colspan="2" align="center"><input type="submit" name="backupstart" value="<?php echo $user->lang['Start_backup']; ?>" class="btnmain" /></td>
</tr>
</table></form>
<?php
break;
}
else if (!isset($_POST['startdownload']) && !isset($_GET['startdownload']))
{
$meta = "<meta http-equiv=\"refresh\" content=\"0;url=admin_database.$phpEx?mode=backup&amp;type=$backup_type&amp;tables=" . quotemeta($additional_tables) . "&amp;search=$search&amp;store=" . quotemeta($store_path) . "&amp;compress=$compress&amp;backupstart=1&amp;startdownload=1\">";
$message = (empty($store_path)) ? $user->lang['Backup_download'] : $user->lang['Backup_writing'];
adm_page_header($user->lang['DB_Backup'], $meta);
page_message($user->lang['DB_Backup'], $message);
adm_page_footer();
}
$tables = (SQL_LAYER != 'postgresql') ? mysql_get_tables() : pg_get_tables();
@sort($tables);
if (!empty($additional_tables))
{
$additional_tables = explode(',', $additional_tables);
for($i = 0; $i < count($additional_tables); $i++)
{
$tables[] = trim($additional_tables[$i]);
}
unset($additional_tables);
}
// Enable output buffering
@ob_start();
@ob_implicit_flush(0);
// Build the sql script file...
echo "#\n";
echo "# phpBB Backup Script\n";
echo "# Dump of tables for $dbname\n";
echo "#\n# DATE : " . gmdate("d-m-Y H:i:s", time()) . " GMT\n";
echo "#\n";
if (SQL_LAYER == 'postgresql')
{
echo "\n" . pg_get_sequences("\n", $backup_type);
}
for($i = 0; $i < count($tables); $i++)
{
$table_name = $tables[$i];
if (SQL_LAYER != 'mysql4')
{
$table_def_function = "get_table_def_" . SQL_LAYER;
$table_content_function = "get_table_content_" . SQL_LAYER;
}
else
{
$table_def_function = "get_table_def_mysql";
$table_content_function = "get_table_content_mysql";
}
if ($backup_type != 'data')
{
echo "#\n# TABLE: " . $table_name . "\n#\n";
echo $table_def_function($table_name, "\n") . "\n";
}
if ($backup_type != 'structure')
{
//
// Skip search table data?
//
if ($search || (!$search && !preg_match('/search_word/', $table_name)))
{
$table_content_function($table_name, "output_table_content");
}
}
}
// Flush the buffer, send the file
switch ($compress)
{/*
case 'gzip':
$extension = 'sql.gz';
$contents = gzencode(ob_get_contents());
ob_end_clean();
break;
case 'zip':
$extension = 'zip';
$zip = new zipfile;
$zip->add_file(ob_get_contents(), "phpbb_db_backup.sql", time());
ob_end_clean();
$contents = $zip->file();
break;
case 'bzip':
$extension = 'bz2';
$contents = bzcompress(ob_get_contents());
ob_end_clean();
break;*/
default:
$extension = 'sql';
$contents = ob_get_contents();
ob_end_clean();
}
add_log('admin', 'log_db_backup');
if (empty($store_path))
{
header("Pragma: no-cache");
header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.$extension\"");
header("Content-disposition: attachment; filename=phpbb_db_backup.$extension");
echo $contents;
unset($contents);
}
else
{
if (!($fp = fopen('./../' . $store_path . "/phpbb_db_backup.$extension", 'wb')))
{
message_die(ERROR, 'Could not open backup file');
}
if (!fwrite($fp, $contents))
{
message_die(ERROR, 'Could not write backup file content');
}
fclose($fp);
unset($contents);
trigger_error($user->lang['Backup_success']);
}
exit;
break;
case 'restore':
if (!$auth->acl_get('a_restore'))
{
trigger_error($user->lang['NO_ADMIN']);
}
if (isset($_POST['restorestart']))
{
// Handle the file upload ....
// If no file was uploaded report an error...
if (!empty($_POST['local']))
{
$file_tmpname = './../' . str_replace('\\\\', '/', $_POST['local']);
$filename = substr($file_tmpname, strrpos($file_tmpname, '/'));
}
else
{
$filename = (!empty($_POST['backup_file']['name'])) ? $HTTP_POST_FILES['backup_file']['name'] : '';
$file_tmpname = ($HTTP_POST_FILES['backup_file']['tmp_name'] != 'none') ? $HTTP_POST_FILES['backup_file']['tmp_name'] : '';
}
if ($file_tmpname == '' || $filename == '' || !file_exists($file_tmpname))
{
trigger_error($user->lang['Restore_Error_no_file']);
}
$ext = substr($filename, strrpos($filename, '.') + 1);
if (!preg_match('/^(sql|gz|bz2)$/', $ext))
{
trigger_error($user->lang['Restore_Error_filename']);
}
if ((!extension_loaded('zlib') && $ext == 'gz') || (!extension_loaded('zip') && $ext == 'zip') || ($ext == 'bz2' && !extension_loaded('bz2')))
{
trigger_error($user->lang['Compress_unsupported']);
}
$sql_query = '';
switch ($ext)
{
case 'gz':
$fp = gzopen($file_tmpname, 'rb');
while (!gzeof($fp))
{
$sql_query .= gzgets($fp, 100000);
}
gzclose($fp);
break;
case 'bz2':
$sql_query = bzdecompress(fread(fopen($file_tmpname, 'rb'), filesize($file_tmpname)));
break;
case 'zip':
default;
$sql_query = fread(fopen($file_tmpname, 'r'), filesize($file_tmpname));
}
if ($sql_query != '')
{
// Strip out sql comments...
remove_remarks($sql_query);
$pieces = split_sql_file($sql_query, ';');
$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']);
}
//
// Restore page
//
adm_page_header($user->lang['DB_RESTORE']);
?>
<h1><?php echo $user->lang['DB_RESTORE']; ?></h1>
<p><?php echo $user->lang['Restore_explain']; ?></p>
<form enctype="multipart/form-data" method="post" action="<?php echo "admin_database.$phpEx$SID&amp;mode=$mode"; ?>"><table class="bg" width="80%" cellspacing="1" cellpadding="4" border="0" align="center">
<th colspan="2"><?php echo $user->lang['Select_file']; ?></th>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['Upload_file']; ?>: <br /><span class="gensmall"><?php
echo $user->lang['Supported_extensions'];
$types = ': <u>sql</u>';
if (extension_loaded('zlib'))
{
$types .= ', <u>sql.gz</u>';
}
if (extension_loaded('bz2'))
{
$types .= ', <u>bz2</u>';
}
echo $types;
?></span></td>
<td class="row2"><input type="file" name="backup_file" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['Local_backup_file']; ?>: <br /><span class="gensmall"><?php echo $user->lang['Local_backup_file_explain']; ?></span></td>
<td class="row2"><input type="text" name="local" size="40" /></td>
</tr>
<tr>
<td class="cat" colspan="2" align="center"><input type="submit" name="restorestart" value="<?php echo $user->lang['Start_Restore']; ?>" class="btnmain" /></td>
</tr>
</table></form>
<?php
break;
default:
trigger_error($user->lang['No_admin']);
exit;
}
adm_page_footer();
// -----------------------------------------------
// Begin Functions
//
//
// Table defns (not from phpMyAdmin)
//
function mysql_get_tables()
{
global $db, $table_prefix;
$tables = array();
$result = mysql_list_tables($db->dbname, $db->db_connect_id);
if ($row = $db->sql_fetchrow($result))
{
do
{
if (preg_match('/^' . $table_prefix . '/', $row[0]))
{
$tables[] = $row[0];
}
}
while ($row = $db->sql_fetchrow($result));
}
return $tables;
}
//
// The following functions are adapted from phpMyAdmin and upgrade_20.php
//
// This function is used for grabbing the sequences for postgres...
//
function pg_get_sequences($crlf, $backup_type)
{
global $db;
$get_seq_sql = "SELECT relname 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 = "# No Sequences Found $crlf";
}
else
{
$return_val = "# Sequences $crlf";
$i_seq = 0;
while($i_seq < $num_seq)
{
$row = $db->sql_fetchrow($seq);
$sequence = $row['relname'];
$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);
if ($backup_type == 'structure')
{
$row['last_value'] = 1;
}
$return_val .= "CREATE SEQUENCE $sequence start " . $row['last_value'] . ' increment ' . $row['increment_by'] . ' maxvalue ' . $row['max_value'] . ' minvalue ' . $row['min_value'] . ' cache ' . $row['cache_value'] . "; $crlf";
} // End if numrows > 0
if (($row['last_value'] > 1) && ($backup_type != 'structure'))
{
$return_val .= "SELECT NEXTVALE('$sequence'); $crlf";
unset($row['last_value']);
}
$i_seq++;
} // End while..
} // End else...
return $returnval;
} // End function...
//
// The following functions will return the "CREATE TABLE syntax for the
// varying DBMS's
//
// This function returns, will return the table def's for postgres...
//
function get_table_def_postgresql($table, $crlf)
{
global $db;
$schema_create = "";
//
// Get a listing of the fields, with their associated types, etc.
//
$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'
AND a.attnum > 0
AND a.attrelid = c.oid
AND a.atttypid = t.oid
ORDER BY a.attnum";
$result = $db->sql_query($field_query);
if (!$result)
{
message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $field_query);
} // end if..
$schema_create .= "DROP TABLE $table;$crlf";
//
// Ok now we actually start building the SQL statements to restore the tables
//
$schema_create .= "CREATE TABLE $table($crlf";
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')
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_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';
}
$schema_create .= ' ' . $row['field'] . ' ' . $row['type'];
if (eregi('char', $row['type']))
{
if ($row['lengthvar'] > 0)
{
$schema_create .= '(' . ($row['lengthvar'] -4) . ')';
}
}
if (eregi('numeric', $row['type']))
{
$schema_create .= '(';
$schema_create .= sprintf("%s,%s", (($row['lengthvar'] >> 16) & 0xffff), (($row['lengthvar'] - 4) & 0xffff));
$schema_create .= ')';
}
if (!empty($row['rowdefault']))
{
$schema_create .= ' DEFAULT ' . $row['rowdefault'];
}
if ($row['notnull'] == 't')
{
$schema_create .= ' NOT NULL';
}
$schema_create .= ",$crlf";
}
//
// 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')
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);
if (!$result)
{
message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_pri_keys);
}
while ($row = $db->sql_fetchrow($result))
{
if ($row['primary_key'] == 't')
{
if (!empty($primary_key))
{
$primary_key .= ', ';
}
$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;
$index_rows[$row['index_name']]['unique'] = ($row['unique_key'] == 't') ? ' UNIQUE ' : '';
$index_rows[$row['index_name']]['column_names'] .= $row['column_name'] . ', ';
}
}
if (!empty($index_rows))
{
while(list($idx_name, $props) = each($index_rows))
{
$props['column_names'] = ereg_replace(", $", "" , $props['column_names']);
$index_create .= 'CREATE ' . $props['unique'] . " INDEX $idx_name ON $table (" . $props['column_names'] . ");$crlf";
}
}
if (!empty($primary_key))
{
$schema_create .= " CONSTRAINT $primary_key_name PRIMARY KEY ($primary_key),$crlf";
}
//
// Generate constraint clauses for CHECK constraints
//
$sql_checks = "SELECT rcname as index_name, rcsrc
FROM pg_relcheck, pg_class bc
WHERE rcrelid = bc.oid
AND bc.relname = '$table'
AND NOT EXISTS (
SELECT *
FROM pg_relcheck as c, pg_inherits as i
WHERE i.inhrelid = pg_relcheck.rcrelid
AND c.rcname = pg_relcheck.rcname
AND c.rcsrc = pg_relcheck.rcsrc
AND c.rcrelid = 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))
{
$schema_create .= ' CONSTRAINT ' . $row['index_name'] . ' CHECK ' . $row['rcsrc'] . ",$crlf";
}
$schema_create = ereg_replace(',' . $crlf . '$', '', $schema_create);
$index_create = ereg_replace(',' . $crlf . '$', '', $index_create);
$schema_create .= "$crlf);$crlf";
if (!empty($index_create))
{
$schema_create .= $index_create;
}
//
// Ok now we've built all the sql return it to the calling function.
//
return (stripslashes($schema_create));
}
//
// This function returns the "CREATE TABLE" syntax for mysql dbms...
//
function get_table_def_mysql($table, $crlf)
{
global $db;
$schema_create = "";
$field_query = "SHOW FIELDS FROM $table";
$key_query = "SHOW KEYS FROM $table";
// If the user has selected to drop existing tables when doing a restore.
// Then we add the statement to drop the tables....
$schema_create .= "DROP TABLE IF EXISTS $table;$crlf";
$schema_create .= "CREATE TABLE $table($crlf";
// Ok lets grab the fields...
$result = $db->sql_query($field_query);
while ($row = $db->sql_fetchrow($result))
{
$schema_create .= ' ' . $row['Field'] . ' ' . $row['Type'];
if (!empty($row['Default']))
{
$schema_create .= ' DEFAULT \'' . $row['Default'] . '\'';
}
if ($row['Null'] != "YES")
{
$schema_create .= ' NOT NULL';
}
if ($row['Extra'] != "")
{
$schema_create .= ' ' . $row['Extra'];
}
$schema_create .= ",$crlf";
}
//
// Drop the last ',$crlf' off ;)
//
$schema_create = ereg_replace(',' . $crlf . '$', "", $schema_create);
//
// Get any Indexed fields from the database...
//
$result = $db->sql_query($key_query);
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'];
}
foreach ($index as $x => $columns)
{
$schema_create .= ", $crlf";
if ($x == 'PRIMARY')
{
$schema_create .= ' PRIMARY KEY (' . implode($columns, ', ') . ')';
}
elseif (substr($x,0,6) == 'UNIQUE')
{
$schema_create .= ' UNIQUE ' . substr($x,7) . ' (' . implode($columns, ', ') . ')';
}
else
{
$schema_create .= " KEY $x (" . implode($columns, ', ') . ')';
}
}
$schema_create .= "$crlf);";
if (get_magic_quotes_runtime())
{
return stripslashes($schema_create);
}
else
{
return $schema_create;
}
} // End get_table_def_mysql
//
// This fuction will return a tables create definition to be used as an sql
// statement.
//
//
// The following functions Get the data from the tables and format it as a
// series of INSERT statements, for each different DBMS...
// After every row a custom callback function $handler gets called.
// $handler must accept one parameter ($sql_insert);
//
//
// Here is the function for postgres...
//
function get_table_content_postgresql($table, $handler)
{
global $db;
// Grab all of the data from current table.
$result = $db->sql_query("SELECT * FROM $table");
$i_num_fields = $db->sql_numfields($result);
for ($i = 0; $i < $i_num_fields; $i++)
{
$aryType[] = $db->sql_fieldtype($i, $result);
$aryName[] = $db->sql_fieldname($i, $result);
}
$iRec = 0;
while ($row = $db->sql_fetchrow($result))
{
unset($schema_vals);
unset($schema_fields);
unset($schema_insert);
// 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);
}
elseif (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],";
}
$schema_vals = preg_replace('#,$#', '', $schema_vals);
$schema_vals = preg_replace('#^ #', '', $schema_vals);
$schema_fields = preg_replace('#,$#', '', $schema_fields);
$schema_fields = preg_replace('#^ #', '', $schema_fields);
// Take the ordered fields and their associated data and build it
// into a valid sql statement to recreate that field in the data.
$schema_insert = "INSERT INTO $table ($schema_fields) VALUES($schema_vals);";
$handler(trim($schema_insert));
}
return(true);
}// end function get_table_content_postgres...
//
// This function is for getting the data from a mysql table.
//
function get_table_content_mysql($table, $handler)
{
global $db;
// Grab the data from the table.
$result = $db->sql_query("SELECT * FROM $table");
// Loop through the resulting rows and build the sql statement.
$schema_insert = "";
if ($row = $db->sql_fetchrow($result))
{
$schema_insert = "\n#\n# Table Data for $table\n#\n";
$handler($schema_insert);
do
{
$table_list = '(';
$num_fields = $db->sql_numfields($result);
//
// Grab the list of field names.
//
for ($j = 0; $j < $num_fields; $j++)
{
$table_list .= $db->sql_fieldname($j, $result) . ', ';
}
//
// Get rid of the last comma
//
$table_list = preg_replace('#, $#', '', $table_list);
$table_list .= ')';
//
// Start building the SQL statement.
//
$schema_insert = "INSERT INTO $table $table_list VALUES(";
//
// Loop through the rows and fill in data for each column
//
for ($j = 0; $j < $num_fields; $j++)
{
if (!isset($row[$j]))
{
//
// If there is no data for the column set it to null.
// There was a problem here with an extra space causing the
// sql file not to reimport if the last column was null in
// any table. Should be fixed now :) JLH
//
$schema_insert .= ' NULL,';
}
elseif ($row[$j] != '')
{
$schema_insert .= ' \'' . addslashes($row[$j]) . '\',';
}
else
{
$schema_insert .= '\'\',';
}
}
//
// Get rid of the the last comma.
//
$schema_insert = preg_replace('#,$#', '', $schema_insert);
$schema_insert .= ');';
//
// Go ahead and send the insert statement to the handler function.
//
$handler(trim($schema_insert));
}
while ($row = $db->sql_fetchrow($result));
}
return true;
}
function output_table_content($content)
{
global $tempfile;
//fwrite($tempfile, $content . "\n");
//$backup_sql .= $content . "\n";
echo $content ."\n";
return;
}
//
// End Functions
// -----------------------------------------------
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,175 +0,0 @@
<?php
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
if (!empty($setmodules))
{
if (!$auth->acl_get('a_search'))
{
return;
}
$module['DB']['SEARCH_INDEX'] = basename(__FILE__) . $SID;
return;
}
define('IN_PHPBB', 1);
// Include files
$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require('pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/message_parser.'.$phpEx);
// Check permissions
if (!$auth->acl_get('a_search'))
{
trigger_error($user->lang['NO_ADMIN']);
}
// Start indexing
if (isset($_POST['start']) || isset($_GET['batchstart']))
{
$batchsize = 5000; // Process this many posts per batch
$batchcount = request_var('batchcount', 1);
$batchstart = request_var('batchstart', 0);
$loopcount = 0;
$fulltext = new fulltext_search();
// Search re-indexing is tough on the server ... so we'll check the load
// each loop and if we're on a 1min load of 3 or more we'll re-load the page
// and try again. No idea how well this will work in practice so we'll see ...
if (file_exists('/proc/loadavg'))
{
if ($load = @file('/proc/loadavg'))
{
list($load) = explode(' ', $load[0]);
if ($load > 3)
{
redirect("adm/admin_search.$phpEx$SID&batchstart=$batchstart&batchcount=$batchcount", 3);
}
}
}
if (!$batchstart)
{
// Take board offline
set_config('board_disable', 1);
// Empty existing tables
$db->sql_query("TRUNCATE " . SEARCH_TABLE);
$db->sql_query("TRUNCATE " . SEARCH_WORD_TABLE);
$db->sql_query("TRUNCATE " . SEARCH_MATCH_TABLE);
}
// Fetch a batch of posts_text entries
$sql = "SELECT COUNT(*) AS total, MAX(post_id) AS max_post_id, MIN(post_id) AS min_post_id
FROM " . POSTS_TABLE;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$totalposts = $row['total'];
$max_post_id = $row['max_post_id'];
$batchstart = (!$batchstart) ? $row['min_post_id'] : $batchstart;
$batchend = $batchstart + $batchsize;
$db->sql_freeresult($result);
$sql = "SELECT *
FROM " . POSTS_TABLE . "
WHERE post_id
BETWEEN $batchstart
AND $batchend";
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
{
do
{
$fulltext->add('admin', $row['post_id'], $row['post_text'], $row['post_subject']);
}
while ($row = $db->sql_fetchrow($result));
}
$db->sql_freeresult($result);
$batchcount++;
if (($batchstart + $batchsize) < $max_post_id)
{
redirect("adm/admin_search.$phpEx$SID&batchstart=" . ($batchstart + $batchsize) . "&batchcount=$batchcount", 3);
}
else
{
set_config('board_disable', 0);
// search tidy
$fulltext->search_tidy();
adm_page_header($user->lang['SEARCH_INDEX']);
?>
<h1><?php echo $user->lang['SEARCH_INDEX']; ?></h1>
<p><?php echo $user->lang['SEARCH_INDEX_COMPLETE']; ?></p>
<?php
adm_page_footer();
}
exit;
}
else if (isset($_POST['cancel']))
{
set_config('board_disable', 0);
adm_page_header($user->lang['SEARCH_INDEX']);
?>
<h1><?php echo $user->lang['SEARCH_INDEX']; ?></h1>
<p><?php echo $user->lang['SEARCH_INDEX_CANCEL']; ?></p>
<?php
adm_page_footer();
}
else
{
adm_page_header($user->lang['SEARCH_INDEX']);
?>
<h1><?php echo $user->lang['SEARCH_INDEX']; ?></h1>
<p><?php echo $user->lang['SEARCH_INDEX_EXPLAIN']; ?></p>
<form method="post" action="<?php echo "admin_search.$phpEx$SID"; ?>"><table cellspacing="1" cellpadding="4" border="0" align="center" bgcolor="#98AAB1">
<tr>
<td class="cat" height="28" align="center">&nbsp;<input type="submit" name="start" value="<?php echo $user->lang['START']; ?>" class="btnmain" /> &nbsp; <input type="submit" name="cancel" value="<?php echo $user->lang['CANCEL']; ?>" class="btnmain" />&nbsp;</td>
</tr>
</table></form>
<?php
adm_page_footer();
}
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,306 +0,0 @@
// bbCode control by subBlue design [ www.subBlue.com ]
// Includes unixsafe colour palette selector by SHS`
// Startup variables
var imageTag = false;
var theSelection = false;
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
&& (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
&& (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);
// Shows the help messages in the helpline window
function helpline(help) {
document.forms[form_name].helpbox.value = eval(help + "_help");
}
// Replacement for arrayname.length property
function getarraysize(thearray) {
for (i = 0; i < thearray.length; i++) {
if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
return i;
}
return thearray.length;
}
// Replacement for arrayname.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value) {
thearray[ getarraysize(thearray) ] = value;
}
// Replacement for arrayname.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray) {
thearraysize = getarraysize(thearray);
retval = thearray[thearraysize - 1];
delete thearray[thearraysize - 1];
return retval;
}
function smiley(text) {
text = ' ' + text + ' ';
if (document.forms[form_name].elements[text_name].createTextRange && document.forms[form_name].elements[text_name].caretPos) {
var caretPos = document.forms[form_name].elements[text_name].caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
document.forms[form_name].elements[text_name].focus();
} else {
var selStart = document.forms[form_name].elements[text_name].selectionStart;
var selEnd = document.forms[form_name].elements[text_name].selectionEnd;
mozWrap(document.forms[form_name].elements[text_name], text, '')
document.forms[form_name].elements[text_name].focus();
document.forms[form_name].elements[text_name].selectionStart = selStart + text.length;
document.forms[form_name].elements[text_name].selectionEnd = selEnd + text.length;
}
}
function bbfontstyle(bbopen, bbclose) {
if ((clientVer >= 4) && is_ie && is_win) {
theSelection = document.selection.createRange().text;
if (!theSelection) {
insert_text(bbopen + bbclose);
document.forms[form_name].elements[text_name].focus();
return;
}
document.selection.createRange().text = bbopen + theSelection + bbclose;
document.forms[form_name].elements[text_name].focus();
return;
} else {
insert_text(bbopen + bbclose);
document.forms[form_name].elements[text_name].focus();
return;
}
storeCaret(document.forms[form_name].elements[text_name]);
}
function insert_text(text) {
if (document.forms[form_name].elements[text_name].createTextRange && document.forms[form_name].elements[text_name].caretPos) {
var caretPos = document.forms[form_name].elements[text_name].caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
} else {
var selStart = document.forms[form_name].elements[text_name].selectionStart;
var selEnd = document.forms[form_name].elements[text_name].selectionEnd;
mozWrap(document.forms[form_name].elements[text_name], text, '')
document.forms[form_name].elements[text_name].selectionStart = selStart + text.length;
document.forms[form_name].elements[text_name].selectionEnd = selEnd + text.length;
}
}
function attach_inline() {
insert_text('[attachment=' + document.forms[form_name].elements['attachments'].value + ']' + document.forms[form_name].elements['attachments'].options[document.forms[form_name].elements['attachments'].selectedIndex].text + '[/attachment]');
}
function bbstyle(bbnumber) {
donotinsert = false;
theSelection = false;
bblast = 0;
document.forms[form_name].elements[text_name].focus();
if (bbnumber == -1) { // Close all open tags & default button names
while (bbcode[0]) {
butnumber = arraypop(bbcode) - 1;
document.forms[form_name].elements[text_name].value += bbtags[butnumber + 1];
buttext = eval('document.forms[form_name].addbbcode' + butnumber + '.value');
if (buttext != "[*]")
{
eval('document.forms[form_name].addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
}
document.forms[form_name].addbbcode10.value = "List";
bbtags[10] = "[list]";
document.forms[form_name].addbbcode12.value = "List=";
bbtags[12] = "[list=]";
imageTag = false; // All tags are closed including image tags :D
document.forms[form_name].elements[text_name].focus();
return;
}
if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text; // Get text selection
if (theSelection) {
// Add tags around selection
document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
document.forms[form_name].elements[text_name].focus();
theSelection = '';
return;
}
}
else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0))
{
mozWrap(document.forms[form_name].elements[text_name], bbtags[bbnumber], bbtags[bbnumber+1]);
document.forms[form_name].elements[text_name].focus();
theSelection = '';
return;
}
// Find last occurance of an open tag the same as the one just clicked
for (i = 0; i < bbcode.length; i++) {
if (bbcode[i] == bbnumber+1) {
bblast = i;
donotinsert = true;
}
}
if ((bbnumber == 10) && (bbtags[10] != "[*]"))
{
if (donotinsert)
{
document.forms[form_name].addbbcode12.value = "List=";
tmp_help = o_help;
o_help = e_help;
e_help = tmp_help;
bbtags[12] = "[list=]";
}
else
{
document.forms[form_name].addbbcode12.value = "[*]";
tmp_help = o_help;
o_help = e_help;
e_help = tmp_help;
bbtags[12] = "[*]";
}
}
if ((bbnumber == 12) && (bbtags[12] != "[*]"))
{
if (donotinsert)
{
document.forms[form_name].addbbcode10.value = "List";
tmp_help = l_help;
l_help = e_help;
e_help = tmp_help;
bbtags[10] = "[list]";
}
else
{
document.forms[form_name].addbbcode10.value = "[*]";
tmp_help = l_help;
l_help = e_help;
e_help = tmp_help;
bbtags[10] = "[*]";
}
}
if (donotinsert) { // Close all open tags up to the one just clicked & default button names
while (bbcode[bblast]) {
butnumber = arraypop(bbcode) - 1;
if (bbtags[butnumber] != "[*]")
{
insert_text(bbtags[butnumber + 1]);
}
else
{
insert_text(bbtags[butnumber]);
}
buttext = eval('document.forms[form_name].addbbcode' + butnumber + '.value');
if (bbtags[butnumber] != "[*]")
{
eval('document.forms[form_name].addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
imageTag = false;
}
document.forms[form_name].elements[text_name].focus();
return;
} else { // Open tags
if (imageTag && (bbnumber != 14)) { // Close image tag before adding another
insert_text(bbtags[15]);
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.forms[form_name].addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
}
// Open tag
insert_text(bbtags[bbnumber]);
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
if (bbtags[bbnumber] != "[*]")
{
arraypush(bbcode,bbnumber+1);
eval('document.forms[form_name].addbbcode'+bbnumber+'.value += "*"');
}
document.forms[form_name].elements[text_name].focus();
return;
}
storeCaret(document.forms[form_name].elements[text_name]);
}
// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
if (selEnd == 1 || selEnd == 2)
selEnd = selLength;
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
return;
}
// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl) {
if (textEl.createTextRange) { textEl.caretPos = document.selection.createRange().duplicate(); }
}
function colorPalette(dir, width, height)
{
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
numberList[0] = "00";
numberList[1] = "40";
numberList[2] = "80";
numberList[3] = "BF";
numberList[4] = "FF";
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
for(r = 0; r < 5; r++)
{
if (dir == 'h')
{
document.writeln('<tr>');
}
for(g = 0; g < 5; g++)
{
if (dir == 'v')
{
document.writeln('<tr>');
}
for(b = 0; b < 5; b++)
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '">');
document.write('<a href="javascript:bbfontstyle(\'[color=#' + color + ']\', \'[/color]\');" onmouseover="helpline(\'s\');"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" border="0" alt="#' + color + '" title="#' + color + '" /></a>');
document.writeln('</td>');
}
if (dir == 'v')
{
document.writeln('</tr>');
}
}
if (dir == 'h')
{
document.writeln('</tr>');
}
}
document.writeln('</table>');
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
phpBB/adm/images/logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
phpBB/adm/images/spacer.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

File diff suppressed because it is too large Load Diff

View File

@ -1,469 +0,0 @@
<?php
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
*/
define('NEED_SID', true);
define('IN_ADMIN', true);
require($phpbb_root_path . 'common.'.$phpEx);
require($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('admin');
// End session management
// Did user forget to login? Give 'em a chance to here ...
if (!$user->data['is_registered'])
{
if ($user->data['is_bot'])
{
redirect("../index.$phpEx$SID");
}
login_box('', $user->lang['LOGIN_ADMIN'], $user->lang['LOGIN_ADMIN_SUCCESS'], true);
}
// Have they authenticated (again) as an admin for this session?
if (!$user->data['session_admin'])
{
login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS'], true, false);
}
// Is user any type of admin? No, then stop here, each script needs to
// check specific permissions but this is a catchall
if (!$auth->acl_get('a_'))
{
trigger_error($user->lang['NO_ADMIN']);
}
// Some oft used variables
$safe_mode = (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') ? true : false;
$file_uploads = (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on') ? true : false;
// -----------------------------
// Functions
function adm_page_header($sub_title, $meta = '', $table_html = true)
{
global $config, $db, $user, $phpEx;
define('HEADER_INC', true);
// gzip_compression
if ($config['gzip_compress'])
{
if (extension_loaded('zlib') && !headers_sent())
{
ob_start('ob_gzhandler');
}
}
header("Content-type: text/html; charset=" . $user->lang['ENCODING']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $user->lang['ENCODING']; ?>">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="subSilver.css" type="text/css">
<?php
echo $meta;
?>
<style type="text/css">
<!--
th { background-image: url('images/cellpic3.gif') }
td.cat { background-image: url('images/cellpic1.gif') }
//-->
</style>
<title><?php echo $config['sitename'] . ' - ' . $page_title; ?></title>
</head>
<body>
<?php
if ($table_html)
{
?>
<a name="top"></a>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan="2" height="25" align="right" nowrap="nowrap"><span class="subtitle">&#0187; <i><?php echo $sub_title; ?></i></span> &nbsp;&nbsp;</td>
</tr>
</table>
<table width="95%" cellspacing="0" cellpadding="0" border="0" align="center">
<tr>
<td><br clear="all" />
<?php
}
}
function adm_page_footer($copyright_html = true)
{
global $cache, $config, $db, $phpEx;
if (!empty($cache))
{
$cache->unload();
}
// Close our DB connection.
$db->sql_close();
?>
</td>
</tr>
</table>
<?php
if ($copyright_html)
{
?>
<div class="copyright" align="center">Powered by phpBB <?php echo $config['version']; ?> &copy; 2002 <a href="http://www.phpbb.com/" target="_phpbb">phpBB Group</a></div>
<br clear="all" />
</body>
</html>
<?php
}
exit;
}
function adm_page_message($title, $message, $show_header = false)
{
global $phpEx, $SID, $user;
if ($show_header)
{
?>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><a href="<?php echo "../index.$phpEx$SID"; ?>"><img src="images/header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></a></td>
<td width="100%" background="images/header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle"><?php echo $user->lang['ADMIN_TITLE']; ?></span> &nbsp; &nbsp; &nbsp;</td>
</tr>
</table>
<?php
}
?>
<br /><br />
<table class="bg" width="80%" cellspacing="1" cellpadding="4" border="0" align="center">
<tr>
<th><?php echo $title; ?></th>
</tr>
<tr>
<td class="row1" align="center"><?php echo $message; ?></td>
</tr>
</table>
<br />
<?php
}
function adm_page_confirm($title, $message)
{
global $phpEx, $SID, $user;
// Grab data from GET and POST arrays ... note this is _not_
// validated! Everything is typed as string to ensure no
// funny business on displayed hidden field data. Validation
// will be carried out by whatever processes this form.
$var_ary = array_merge($_GET, $_POST);
$s_hidden_fields = '';
foreach ($var_ary as $key => $var)
{
if (empty($var))
{
continue;
}
if (is_array($var))
{
foreach ($var as $k => $v)
{
if (is_array($v))
{
foreach ($v as $_k => $_v)
{
set_var($var[$k][$_k], $_v, 'string');
$s_hidden_fields .= "<input type=\"hidden\" name=\"${key}[$k][$_k]\" value=\"" . addslashes($_v) . '" />';
}
}
else
{
set_var($var[$k], $v, 'string');
$s_hidden_fields .= "<input type=\"hidden\" name=\"${key}[$k]\" value=\"" . addslashes($v) . '" />';
}
}
}
else
{
set_var($var, $var, 'string');
$s_hidden_fields .= '<input type="hidden" name="' . $key . '" value="' . addslashes($var) . '" />';
}
unset($var_ary[$key]);
}
?>
<br /><br />
<form name="confirm" method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] . $SID; ?>">
<table class="bg" width="80%" cellspacing="1" cellpadding="4" border="0" align="center">
<tr>
<th><?php echo $title; ?></th>
</tr>
<tr>
<td class="row1" align="center"><?php echo $message; ?><br /><br /><input class="btnlite" type="submit" name="confirm" value="<?php echo $user->lang['YES']; ?>" />&nbsp;&nbsp;<input class="btnmain" type="submit" name="cancel" value="<?php echo $user->lang['NO']; ?>" /></td>
</tr>
</table>
<?php echo $s_hidden_fields; ?>
</form>
<br />
<?php
adm_page_footer();
}
function build_cfg_template($tpl_type, $config_key, $options = '')
{
global $new, $user;
$tpl = '';
$name = 'config[' . $config_key . ']';
switch ($tpl_type[0])
{
case 'text':
case 'password':
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input class="post" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '" />';
break;
case 'dimension':
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input class="post" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" /> x <input class="post" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" />';
break;
case 'textarea':
$rows = (int) $tpl_type[1];
$cols = (int) $tpl_type[2];
$tpl = '<textarea name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '">' . $new[$config_key] . '</textarea>';
break;
case 'radio':
$key_yes = ($new[$config_key]) ? ' checked="checked"' : '';
$key_no = (!$new[$config_key]) ? ' checked="checked"' : '';
$tpl_type_cond = explode('_', $tpl_type[1]);
$type_no = ($tpl_type_cond[0] == 'disabled' || $tpl_type_cond[0] == 'enabled') ? false : true;
$tpl_no = '<input type="radio" name="' . $name . '" value="0"' . $key_no . ' />' . (($type_no) ? $user->lang['NO'] : $user->lang['DISABLED']);
$tpl_yes = '<input type="radio" name="' . $name . '" value="1"' . $key_yes . ' />' . (($type_no) ? $user->lang['YES'] : $user->lang['ENABLED']);
$tpl = ($tpl_type_cond[0] == 'yes' || $tpl_type_cond[0] == 'enabled') ? $tpl_yes . '&nbsp;&nbsp;' . $tpl_no : $tpl_no . '&nbsp;&nbsp;' . $tpl_yes;
break;
case 'select':
eval('$s_options = ' . str_replace('{VALUE}', $new[$config_key], $options) . ';');
$tpl = '<select name="' . $name . '">' . $s_options . '</select>';
break;
case 'custom':
eval('$tpl = ' . str_replace('{VALUE}', $new[$config_key], $options) . ';');
break;
default:
break;
}
return $tpl;
}
/**
* @package acp
* General ACP module class
*/
class module
{
var $id = 0;
var $type;
var $name;
var $mode;
// Private methods, should not be overwritten
function create($module_type, $module_url, $selected_mod = false, $selected_submod = false)
{
global $template, $auth, $db, $user, $config;
$sql = 'SELECT module_id, module_title, module_filename, module_subs, module_acl
FROM ' . MODULES_TABLE . "
WHERE module_type = 'acp'
AND module_enabled = 1
ORDER BY module_order ASC";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
// Authorisation is required for the basic module
if ($row['module_acl'])
{
$is_auth = false;
eval('$is_auth = (' . preg_replace(array('#acl_([a-z_]+)#e', '#cfg_([a-z_]+)#e'), array('$auth->acl_get("\\1")', '$config["\\1"]'), $row['module_acl']) . ');');
// The user is not authorised to use this module, skip it
if (!$is_auth)
{
continue;
}
}
$selected = ($row['module_filename'] == $selected_mod || $row['module_id'] == $selected_mod || (!$selected_mod && !$i)) ? true : false;
/*
// Get the localised lang string if available, or make up our own otherwise
$template->assign_block_vars($module_type . '_section', array(
'L_TITLE' => (isset($user->lang[strtoupper($module_type) . '_' . $row['module_title']])) ? $user->lang[strtoupper($module_type) . '_' . $row['module_title']] : ucfirst(str_replace('_', ' ', strtolower($row['module_title']))),
'S_SELECTED' => $selected,
'U_TITLE' => $module_url . '&amp;i=' . $row['module_id'])
);
*/
if ($selected)
{
$module_id = $row['module_id'];
$module_name = $row['module_filename'];
if ($row['module_subs'])
{
$j = 0;
$submodules_ary = explode("\n", $row['module_subs']);
foreach ($submodules_ary as $submodule)
{
$submodule = explode(',', trim($submodule));
$submodule_title = array_shift($submodule);
$is_auth = true;
foreach ($submodule as $auth_option)
{
if (!$auth->acl_get($auth_option))
{
$is_auth = false;
}
}
if (!$is_auth)
{
continue;
}
$selected = ($submodule_title == $selected_submod || (!$selected_submod && !$j)) ? true : false;
/*
// Get the localised lang string if available, or make up our own otherwise
$template->assign_block_vars("{$module_type}_section.{$module_type}_subsection", array(
'L_TITLE' => (isset($user->lang[strtoupper($module_type) . '_' . strtoupper($submodule_title)])) ? $user->lang[strtoupper($module_type) . '_' . strtoupper($submodule_title)] : ucfirst(str_replace('_', ' ', strtolower($submodule_title))),
'S_SELECTED' => $selected,
'U_TITLE' => $module_url . '&amp;i=' . $module_id . '&amp;mode=' . $submodule_title
));
*/
if ($selected)
{
$this->mode = $submodule_title;
}
$j++;
}
}
}
$i++;
}
$db->sql_freeresult($result);
if (!$module_id)
{
trigger_error('MODULE_NOT_EXIST');
}
$this->type = $module_type;
$this->id = $module_id;
$this->name = $module_name;
}
// Public methods to be overwritten by modules
function module()
{
// Module name
// Module filename
// Module description
// Module version
// Module compatibility
return false;
}
function init()
{
return false;
}
function install()
{
return false;
}
function uninstall()
{
return false;
}
}
// End Functions
// -----------------------------
?>

View File

@ -0,0 +1,421 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<!-- IF S_WARNING -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{WARNING_MSG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_NOTIFY -->
<div class="successbox">
<h3>{L_NOTIFY}</h3>
<p>{NOTIFY_MSG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_UPLOADING_FILES -->
<h2>{L_UPLOADING_FILES}</h2>
<!-- BEGIN upload -->
:: {upload.FILE_INFO}<br />
<!-- IF upload.S_DENIED --><span class="error">{upload.DENIED}</span><!-- ELSEIF upload.ERROR_MSG --><span class="error">{upload.ERROR_MSG}</span><!-- ELSE --><span class="success">{L_SUCCESSFULLY_UPLOADED}</span><!-- ENDIF -->
<br /><br />
<!-- END upload -->
<!-- ENDIF -->
<!-- IF S_ATTACHMENT_SETTINGS -->
<form id="attachsettings" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_ATTACHMENT_SETTINGS}</legend>
<dl>
<dt><label for="upload_dir">{L_UPLOAD_DIR}:</label><br /><span>{L_UPLOAD_DIR_EXPLAIN}</span></dt>
<dd><input type="text" id="upload_dir" size="25" maxlength="100" name="upload_path" value="{UPLOAD_PATH}" /></dd>
</dl>
<dl>
<dt><label for="display_order">{L_DISPLAY_ORDER}:</label><br /><span>{L_DISPLAY_ORDER_EXPLAIN}</span></dt>
<dd><input type="radio" id="display_order" name="display_order" value="0"<!-- IF not DISPLAY_ORDER --> checked="checked"<!-- ENDIF --> /> {L_DESCENDING} &nbsp; <input type="radio" name="display_order" value="1"<!-- IF DISPLAY_ORDER --> checked="checked"<!-- ENDIF --> /> {L_ASCENDING}</dd>
</dl>
<dl>
<dt><label for="attach_quota">{L_ATTACH_QUOTA}:</label><br /><span>{L_ATTACH_QUOTA_EXPLAIN}</span></dt>
<dd><input type="text" id="attach_quota" size="8" maxlength="15" name="attachment_quota" value="{ATTACHMENT_QUOTA}" /> {S_QUOTA_SELECT}</dd>
</dl>
<dl>
<dt><label for="max_filesize">{L_ATTACH_MAX_FILESIZE}:</label><br /><span>{L_ATTACH_MAX_FILESIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="max_filesize" size="8" maxlength="15" name="max_filesize" value="{MAX_FILESIZE}" /> {S_MAX_FILESIZE_SELECT}</dd>
</dl>
<dl>
<dt><label for="max_pm_filesize">{L_ATTACH_MAX_PM_FILESIZE}:</label><br /><span>{L_ATTACH_MAX_PM_FILESIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="max_pm_filesize" size="8" maxlength="15" name="max_filesize_pm" value="{MAX_PM_FILESIZE}" /> {S_MAX_PM_FILESIZE_SELECT}</dd>
</dl>
<dl>
<dt><label for="max_attachments">{L_MAX_ATTACHMENTS}:</label></dt>
<dd><input type="text" id="max_attachments" size="3" maxlength="3" name="max_attachments" value="{MAX_ATTACHMENTS}" /></dd>
</dl>
<dl>
<dt><label for="max_attachments_pm">{L_MAX_ATTACHMENTS_PM}:</label></dt>
<dd><input type="text" id="max_attachments_pm" size="3" maxlength="3" name="max_attachments_pm" value="{MAX_ATTACHMENTS_PM}" /></dd>
</dl>
<dl>
<dt><label for="secure_downloads">{L_SECURE_DOWNLOADS}:</label><br /><span>{L_SECURE_DOWNLOADS_EXPLAIN}</span></dt>
<dd><input type="radio" id="secure_downloads" name="secure_downloads" value="1"<!-- IF SECURE_DOWNLOADS --> checked="checked"<!-- ENDIF --> /> {L_YES}&nbsp;&nbsp;<input type="radio" name="secure_downloads" value="0"<!-- IF not SECURE_DOWNLOADS --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="allow_deny">{L_SECURE_ALLOW_DENY}:</label><br /><span>{L_SECURE_ALLOW_DENY_EXPLAIN}</span></dt>
<dd><input type="radio" id="allow_deny" name="secure_allow_deny" value="1"<!-- IF SECURE_ALLOW_DENY --> checked="checked"<!-- ENDIF --> /> {L_ORDER_ALLOW_DENY}&nbsp;&nbsp;<input type="radio" name="secure_allow_deny" value="0"<!-- IF not SECURE_ALLOW_DENY --> checked="checked"<!-- ENDIF --> /> {L_ORDER_DENY_ALLOW}</dd>
</dl>
<dl>
<dt><label for="referer">{L_SECURE_EMPTY_REFERER}:</label><br /><span>{L_SECURE_EMPTY_REFERER_EXPLAIN}</span></dt>
<dd><input type="radio" id="referer" name="secure_allow_empty_referer" value="1"<!-- IF ALLOW_EMPTY_REFERER --> checked="checked"<!-- ENDIF --> /> {L_YES}&nbsp;&nbsp;<input type="radio" name="secure_allow_empty_referer" value="0"<!-- IF not ALLOW_EMPTY_REFERER --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_SETTINGS_CAT_IMAGES} [{L_ASSIGNED_GROUP}: {ASSIGNED_GROUPS}]</legend>
<dl>
<dt><label for="display_inlined">{L_DISPLAY_INLINED}:</label><br /><span>{L_DISPLAY_INLINED_EXPLAIN}</span></dt>
<dd><input type="radio" id="display_inlined" name="img_display_inlined" value="1"<!-- IF DISPLAY_INLINED --> checked="checked"<!-- ENDIF --> /> {L_YES}&nbsp;&nbsp;<input type="radio" name="img_display_inlined" value="0"<!-- IF not DISPLAY_INLINED --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<!-- IF S_THUMBNAIL_SUPPORT -->
<dl>
<dt><label for="create_thumbnail">{L_CREATE_THUMBNAIL}:</label><br /><span>{L_CREATE_THUMBNAIL_EXPLAIN}</span></dt>
<dd><input type="radio" id="create_thumbnail" name="img_create_thumbnail" value="1"<!-- IF CREATE_THUMBNAIL --> checked="checked"<!-- ENDIF --> /> {L_YES}&nbsp;&nbsp;<input type="radio" name="img_create_thumbnail" value="0"<!-- IF not CREATE_THUMBNAIL --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="thumb_filesize">{L_MIN_THUMB_FILESIZE}:</label><br /><span>{L_MIN_THUMB_FILESIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="thumb_filesize" size="7" maxlength="15" name="img_min_thumb_filesize" value="{MIN_THUMB_FILESIZE}" /> {L_BYTES}</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="imagick_path">{L_IMAGICK_PATH}:</label><br /><span>{L_IMAGICK_PATH_EXPLAIN}</span></dt>
<dd><input type="text" id="imagick_path" size="20" maxlength="200" name="img_imagick" value="{IMG_IMAGICK}" />&nbsp;&nbsp;<span>[ <a href="{U_SEARCH_IMAGICK}">{L_SEARCH_IMAGICK}</a> ]</span></dd>
</dl>
<dl>
<dt><label for="image_size">{L_MAX_IMAGE_SIZE}:</label><br /><span>{L_MAX_IMAGE_SIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="image_size" size="3" maxlength="4" name="img_max_width" value="{MAX_WIDTH}" /> px X <input type="text" size="3" maxlength="4" name="img_max_height" value="{MAX_HEIGHT}" /> px</dd>
</dl>
<dl>
<dt><label for="link_size">{L_IMAGE_LINK_SIZE}:</label><br /><span>{L_IMAGE_LINK_SIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="link_size" size="3" maxlength="4" name="img_link_width" value="{LINK_WIDTH}" /> px X <input type="text" size="3" maxlength="4" name="img_link_height" value="{LINK_HEIGHT}" /> px</dd>
</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>
<!-- IF not S_SECURE_DOWNLOADS -->
<div class="errorbox">
<p>{L_SECURE_DOWNLOAD_NOTICE}</p>
</div>
<!-- ENDIF -->
<fieldset>
<legend>{L_SECURE_TITLE}</legend>
<p>{L_DOWNLOAD_ADD_IPS_EXPLAIN}</p>
<dl>
<dt><label for="ip_hostname">{L_IP_HOSTNAME}:</label></dt>
<dd><textarea id="ip_hostname" cols="40" rows="3" name="ips"></textarea></dd>
</dl>
<dl>
<dt><label for="exclude">{L_IP_EXCLUDE}:</label><br /><span>{L_EXCLUDE_ENTERED_IP}</span></dt>
<dd><input type="radio" id="exclude" name="ipexclude" value="1" /> {L_YES} &nbsp; <input type="radio" name="ipexclude" value="0" checked="checked" /> {L_NO}</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" id="securesubmit" name="securesubmit" value="{L_SUBMIT}" />
</fieldset>
<fieldset>
<legend>{L_REMOVE_IPS}</legend>
<!-- IF S_DEFINED_IPS -->
<p>{L_DOWNLOAD_REMOVE_IPS_EXPLAIN}</p>
<dl>
<dt><label for="remove_ip_hostname">{L_IP_HOSTNAME}:</label></dt>
<dd><select name="unip[]" id="remove_ip_hostname" multiple="multiple" size="10">{DEFINED_IPS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" id="unsecuresubmit" name="unsecuresubmit" value="{L_SUBMIT}" />
</fieldset>
<!-- ELSE -->
<p>{L_NO_IPS_DEFINED}</p>
<!-- ENDIF -->
</fieldset>
</form>
<!-- ELSEIF S_EXTENSION_GROUPS -->
<!-- IF S_EDIT_GROUP -->
<script type="text/javascript" defer="defer">
<!--
function update_image(newimage)
{
if (newimage == 'no_image')
{
document.image_upload_icon.src = "{PHPBB_ROOT_PATH}images/spacer.gif";
}
else
{
document.image_upload_icon.src = "{PHPBB_ROOT_PATH}{IMG_PATH}/" + newimage;
}
}
function show_extensions(elem)
{
var str = '';
for (i = 0; i < elem.length; i++)
{
var element = elem.options[i];
if (element.selected)
{
if (str)
{
str = str + ', ';
}
str = str + element.innerHTML;
}
}
if (document.all)
{
document.all.ext.innerText = str;
}
else if (document.getElementById('ext').textContent)
{
document.getElementById('ext').textContent = str;
}
else if (document.getElementById('ext').firstChild.nodeValue)
{
document.getElementById('ext').firstChild.nodeValue = str;
}
}
//-->
</script>
<form id="extgroups" method="post" action="{U_ACTION}">
<fieldset>
<input type="hidden" name="action" value="{ACTION}" />
<input type="hidden" name="g" value="{GROUP_ID}" />
<legend>{L_LEGEND}</legend>
<dl>
<dt><label for="group_name">{L_GROUP_NAME}:</label></dt>
<dd><input type="text" id="group_name" size="20" maxlength="100" name="group_name" value="{GROUP_NAME}" /></dd>
</dl>
<dl>
<dt><label for="category">{L_SPECIAL_CATEGORY}:</label><br /><span>{L_SPECIAL_CATEGORY_EXPLAIN}</span></dt>
<dd>{S_CATEGORY_SELECT}</dd>
</dl>
<dl>
<dt><label for="allowed">{L_ALLOWED}:</label></dt>
<dd><input type="checkbox" id="allowed" name="allow_group" value="{GROUP_ID}"<!-- IF ALLOW_GROUP --> cecked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="allow_in_pm">{L_ALLOW_IN_PM}:</label></dt>
<dd><input type="checkbox" id="allow_in_pm" name="allow_in_pm" value="1"<!-- IF ALLOW_IN_PM --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="download_mode">{L_DOWNLOAD_MODE}:</label><br /><span>{L_DOWNLOAD_MODE_EXPLAIN}</span></dt>
<dd>{S_DOWNLOAD_SELECT}</dd>
</dl>
<dl>
<dt><label for="upload_icon">{L_UPLOAD_ICON}:</label></dt>
<dd><select name="upload_icon" id="upload_icon" onchange="update_image(this.options[selectedIndex].value);">
<option value="no_image"<!-- IF S_NO_IMAGE --> selected="selected"<!-- ENDIF -->>{L_NO_IMAGE}</option>{S_FILENAME_LIST}
</select></dd>
<dd>&nbsp;<img <!-- IF S_NO_IMAGE -->src="{PHPBB_ROOT_PATH}images/spacer.gif"<!-- ELSE -->src="{UPLOAD_ICON_SRC}"<!-- ENDIF --> name="image_upload_icon" alt="" title="" />&nbsp;</dd>
</dl>
<dl>
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}:</label></dt>
<dd><input type="text" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> {S_EXT_GROUP_SIZE}</dd>
</dl>
<dl>
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}:</label></dt>
<dd><div id="ext">{ASSIGNED_EXTENSIONS}</div> <span>[<a href="{U_EXTENSIONS}">{L_GO_TO_EXTENSIONS}</a> ]</span></dd>
<dd><select name="extensions[]" id="assigned_extensions" class="narrow" onchange="show_extensions(this);" multiple="multiple" size="8">{S_EXTENSION_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="allowed_forums">{L_ALLOWED_FORUMS}:</label><br /><span>{L_ALLOWED_FORUMS_EXPLAIN}</span></dt>
<dd><input type="radio" id="allowed_forums" class="radio" name="forum_select" value="0"<!-- IF not S_FORUM_IDS --> checked="checked"<!-- ENDIF --> />&nbsp;{L_ALLOW_ALL_FORUMS}&nbsp;&nbsp;<input type="radio" class="radio" name="forum_select" value="1"<!-- IF S_FORUM_IDS --> checked="checked"<!-- ENDIF --> />&nbsp;{L_ALLOW_SELECTED_FORUMS}</dd>
<dd><select name="allowed_forums[]" multiple="multiple" size="8">{S_FORUM_ID_OPTIONS}</select></dd>
</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>
<!-- ELSE -->
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<thead>
<tr>
<th>{L_EXTENSION_GROUP}</th>
<th>{L_SPECIAL_CATEGORY}</th>
<th>{L_OPTIONS}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN groups -->
<!-- IF groups.S_ADD_SPACER -->
<tr>
<td class="spacer" colspan="3">&nbsp;</td>
</tr>
<!-- ENDIF -->
<tr>
<td><a href="{groups.U_EDIT}">{groups.GROUP_NAME}</a></td>
<td>{groups.CATEGORY}</td>
<td align="center" valign="middle" style="white-space: nowrap;">&nbsp;<a href="{groups.U_EDIT}">{L_EDIT}</a> | <a href="{groups.U_DELETE}">{L_DELETE}</a> | <a href="{groups.U_ACT_DEACT}">{groups.L_ACT_DEACT}</a>&nbsp;</td>
</tr>
<!-- END groups -->
</tbody>
</table>
<form id="extgroups" method="post" action="{U_ACTION}">
<fieldset class="quick">
{L_CREATE_GROUP}: <input type="text" name="group_name" maxlength="30" />
<input class="button2" name="add" type="submit" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_EXTENSIONS -->
<form id="add_ext" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ADD_EXTENSION}</legend>
<dl>
<dt><label for="add_extension">{L_EXTENSION}</label></dt>
<dd><input type="text" id="add_extension" size="20" maxlength="100" name="add_extension" value="{ADD_EXTENSION}" /></dd>
</dl>
<dl>
<dt><label for="extension_group">{L_EXTENSION_GROUP}</label></dt>
<dd>{GROUP_SELECT_OPTIONS}</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input type="submit" id="add_extension_check" name="add_extension_check" class="button2" value="{L_SUBMIT}" />
</fieldset>
</form>
<br />
<form id="change_ext" method="post" action="{U_ACTION}">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<thead>
<tr>
<th>{L_EXTENSION}</th>
<th>{L_EXTENSION_GROUP}</th>
<th>{L_DELETE}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN extensions -->
<!-- IF extensions.S_SPACER -->
<tr>
<td class="spacer" colspan="3">&nbsp;</td>
</tr>
<!-- ENDIF -->
<tr>
<input type="hidden" name="extension_change_list[]" value="{extensions.EXTENSION_ID}" />
<td><b>{extensions.EXTENSION}</b></td>
<td>{extensions.GROUP_OPTIONS}</td>
<td><input type="checkbox" name="extension_id_list[]" value="{extensions.EXTENSION_ID}" /></td>
</tr>
<!-- END extensions -->
</tbody>
</table>
<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>
<!-- ELSEIF S_ORPHAN -->
<script type="text/javascript">
<!--
function marklist(match, name, status)
{
var object = document.getElementById(match);
var len = object.length;
for (i = 0; i < len; i++)
{
result = eval('object.elements[' + i + '].name.search(/' + name + '.+/)');
if (result != -1)
object.elements[i].checked = status;
}
}
//-->
</script>
<form id="orphan" method="post" action="{U_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th>{L_FILENAME}</th>
<th>{L_FILESIZE}</th>
<th>{L_ATTACH_POST_ID}</th>
<th>{L_ATTACH_TO_POST}</th>
<th>{L_DELETE}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN orphan -->
<!-- IF orphan.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{orphan.U_FILE}" rel="file">{orphan.FILE}</a></td>
<td>{orphan.FILESIZE}</td>
<td><b>ID: </b><input type="text" name="post_id[{orphan.FILE}]" size="7" maxlength="10" value="{orphan.POST_IDS}" /></td>
<td><input type="checkbox" name="add[{orphan.FILE}]" /></td>
<td><input type="checkbox" name="delete[{orphan.FILE}]" /></td>
</tr>
<!-- END orphan -->
<tr>
<td colspan="3">&nbsp;</td>
<td class="small"><a href="javascript:marklist('attachments', 'add', true);">{L_MARK_ALL}</a> :: <a href="javascript:marklist('attachments', 'add', false);">{L_UNMARK_ALL}</a></td>
<td class="small"><a href="javascript:marklist('attachments', 'delete', true);">{L_MARK_ALL}</a> :: <a href="javascript:marklist('attachments', 'delete', false);">{L_UNMARK_ALL}</a></td>
</tr>
</tbody>
</table>
<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 -->

View File

@ -0,0 +1,111 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<p>{L_ACP_BAN_EXPLAIN}</p>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<script type="text/javascript">
<!--
var ban_length = new Array();
<!-- BEGIN ban_length -->
ban_length['{ban_length.BAN_ID}'] = "{ban_length.LENGTH}";
<!-- END ban_length -->
var ban_reason = new Array();
<!-- BEGIN ban_reason -->
ban_reason['{ban_reason.BAN_ID}'] = "{ban_reason.REASON}";
<!-- END ban_reason -->
var ban_give_reason = new Array();
<!-- BEGIN ban_give_reason -->
ban_give_reason['{ban_give_reason.BAN_ID}'] = "{ban_give_reason.REASON}";
<!-- END ban_give_reason -->
function display_details(option)
{
document.getElementById('acp_ban').unbangivereason.value = ban_give_reason[option];
document.getElementById('acp_ban').unbanreason.value = ban_reason[option];
document.getElementById('acp_ban').unbanlength.value = ban_length[option];
}
//-->
</script>
<form id="acp_ban" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="ban">{L_BAN_CELL}:</label></dt>
<dd><textarea name="ban" cols="40" rows="3" id="ban"></textarea></dd>
<!-- IF S_USERNAME_BAN --><dd>[ <a href="#" onclick="window.open('{U_FIND_USER}', '_phpbbsearch', 'height=500, resizable=yes, scrollbars=yes, width=740'); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF -->
</dl>
<dl>
<dt><label for="banlength">{L_BAN_LENGTH}:</label></dt>
<dd><select name="banlength" id="banlength">{S_BAN_END_OPTIONS}</select></dd>
<dd><input type="text" name="banlengthother" /> (YYYY-MM-DD)</dd>
</dl>
<dl>
<dt><label for="banexclude">{L_BAN_EXCLUDE}:</label><br /><span>{L_BAN_EXCLUDE_EXPLAIN}</span></dt>
<dd><input type="radio" name="banexclude" value="1" /> {L_YES} &nbsp; <input type="radio" name="banexclude" id="banexclude" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="banreason">{L_BAN_REASON}:</label></dt>
<dd><input name="banreason" type="text" id="banreason" class="medium" /></dd>
</dl>
<dl>
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><input name="bangivereason" type="text" id="bangivereason" class="medium" /></dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="bansubmit" name="bansubmit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="banreset" name="banreset" value="{L_RESET}" />
</fieldset>
<h1>{L_UNBAN_TITLE}</h1>
<p>{L_UNBAN_EXPLAIN}</p>
<fieldset>
<legend>{L_UNBAN_TITLE}</legend>
<!-- IF S_BANNED_OPTIONS -->
<dl>
<dt><label for="unban">{L_BAN_CELL}:</label></dt>
<dd><select id="unban" name="unban[]" multiple="multiple" size="10" style="width: 50%" onchange="display_details(this.options[this.selectedIndex].value)">{BANNED_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="unbanlength">{L_BAN_LENGTH}:</label></dt>
<dd><input style="border: 0px;" type="text" name="unbanlength" id="unbanlength" class="full" /></dd>
</dl>
<dl>
<dt><label for="unbanreason">{L_BAN_REASON}:</label></dt>
<dd><input style="border: 0px;" type="text" name="unbanreason" id="unbanreason" class="full" /></dd>
</dl>
<dl>
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><input style="border: 0px;" type="text" name="unbangivereason" id="unbangivereason" class="full" /></dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="unbansubmit" name="unbansubmit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="unbanreset" name="unbanreset" value="{L_RESET}" />
</fieldset>
<!-- ELSE -->
<p>{L_NO_BAN_CELL}</p>
</fieldset>
<!-- ENDIF -->
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,96 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT_BBCODE -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_BBCODES}</h1>
<p>{L_ACP_BBCODES_EXPLAIN}</p>
<form id="acp_bbcodes" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_BBCODE_USAGE}</legend>
<p>{L_BBCODE_USAGE_EXPLAIN}</p>
<dl>
<dt><label for="bbcode_match">{L_EXAMPLES}</label><br /><br /><span>{L_BBCODE_USAGE_EXAMPLE}</span></dt>
<dd><textarea id="bbcode_match" name="bbcode_match" cols="60" rows="5">{BBCODE_MATCH}</textarea></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_HTML_REPLACEMENT}</legend>
<p>{L_HTML_REPLACEMENT_EXPLAIN}</p>
<dl>
<dt><label for="bbcode_tpl">{L_EXAMPLES}</label><br /><br /><span>{L_HTML_REPLACEMENT_EXAMPLE}</span></dt>
<dd><textarea id="bbcode_tpl" name="bbcode_tpl" cols="60" rows="8">{BBCODE_TPL}</textarea></dd>
</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>
<table cellspacing="1">
<thead>
<tr>
<th colspan="2">{L_TOKENS}</th>
</tr>
<tr>
<td class="row3" colspan="2">{L_TOKENS_EXPLAIN}</td>
</tr>
<tr>
<th>{L_TOKEN}</th>
<th>{L_TOKEN_DEFINITION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN token -->
<tr valign="top">
<td class="row1">{token.TOKEN}</td>
<td class="row2">{token.EXPLAIN}</td>
</tr>
<!-- END token -->
</tbody>
</table>
</form>
<!-- ELSE -->
<h1>{L_ACP_BBCODES}</h1>
<p>{L_ACP_BBCODES_EXPLAIN}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_BBCODE_TAG}</th>
<th>{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN bbcodes -->
<!-- IF bbcodes.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{bbcodes.BBCODE_TAG}</td>
<td style="text-align: center;"><a href="{bbcodes.U_EDIT}">{L_EDIT}</a> | <a href="{bbcodes.U_DELETE}">{L_DELETE}</a></td>
</tr>
<!-- END bbcodes -->
</tbody>
</table>
<form id="acp_bbcodes" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="button2" name="submit" type="submit" value="{L_ADD_BBCODE}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,41 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<p>{L_TITLE_EXPLAIN}</p>
<form id="acp_board" method="post" action="{U_ACTION}">
<!-- BEGIN options -->
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
</fieldset>
<!-- ENDIF -->
<fieldset>
<legend>{options.LEGEND}</legend>
<!-- ELSE -->
<dl>
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
</dl>
<!-- ENDIF -->
<!-- END options -->
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->
</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>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,101 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT_BOT -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_BOT_EDIT_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_bots" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="bot_name">{L_BOT_NAME}:</label><br /><span>{L_BOT_NAME_EXPLAIN}</span></dt>
<dd><input name="bot_name" type="text" id="bot_name" value="{BOT_NAME}" /></dd>
</dl>
<dl>
<dt><label for="bot_style">{L_BOT_STYLE}:</label><br /><span>{L_BOT_STYLE_EXPLAIN}</span></dt>
<dd><select id="bot_style" name="bot_style">{S_STYLE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_lang">{L_BOT_LANG}:</label><br /><span>{L_BOT_LANG_EXPLAIN}</span></dt>
<dd><select id="bot_lang" name="bot_lang">{S_LANG_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_active">{L_BOT_ACTIVE}:</label></dt>
<dd><select id="bot_active" name="bot_active">{S_ACTIVE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_agent">{L_BOT_AGENT}:</label><br /><span>{L_BOT_AGENT_EXPLAIN}</span></dt>
<dd><input name="bot_agent" type="text" id="bot_agent" value="{BOT_AGENT}" /></dd>
</dl>
<dl>
<dt><label for="bot_ip">{L_BOT_IP}:</label><br /><span>{L_BOT_IP_EXPLAIN}</span></dt>
<dd><input name="bot_ip" type="text" id="bot_ip" value="{BOT_IP}" /></dd>
</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>
<!-- ELSE -->
<h1>{L_BOTS}</h1>
<p>{L_BOTS_EXPLAIN}</p>
<form id="acp_bots" method="post" action="{U_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th>{L_BOT_NAME}</th>
<th>{L_BOT_LAST_VISIT}</th>
<th colspan="3">{L_OPTIONS}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN bots -->
<!-- IF bots.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="width: 50%;">{bots.BOT_NAME}</td>
<td style="width: 15%; white-space: nowrap;" align="center">&nbsp;{bots.LAST_VISIT}&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_ACTIVATE_DEACTIVATE}">{bots.L_ACTIVATE_DEACTIVATE}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_EDIT}">{L_EDIT}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_DELETE}">{L_DELETE}</a>&nbsp;</td>
<td style="text-align: center;"><input type="checkbox" name="mark[]" value="{bots.BOT_ID}" /></td>
</tr>
<!-- END bots -->
</tbody>
</table>
<fieldset class="quick" style="float: left;">
<input class="button2" name="add" type="submit" value="{L_BOT_ADD}" />
</fieldset>
<fieldset class="quick">
<select name="action">{S_BOT_OPTIONS}</select>
<input class="button2" name="submit" type="submit" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,47 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_DISALLOW_USERNAMES}</h1>
<p>{L_ADD_DISALLOW_EXPLAIN}</p>
<form id="acp_disallow" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ADD_DISALLOW_TITLE}</legend>
<dl>
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_ADD_DISALLOW_EXPLAIN}</span></dt>
<dd><input id="user" type="text" name="disallowed_user" class="medium" /></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="disallow" value="{L_SUBMIT}" />
</fieldset>
<h1>{L_DELETE_DISALLOW_TITLE}</h1>
<p>{L_DELETE_DISALLOW_EXPLAIN}</p>
<fieldset>
<legend>{L_DELETE_DISALLOW_TITLE}</legend>
<!-- IF S_DISALLOWED_NAMES -->
<dl>
<dt><label for="disallowed">{L_USERNAME}:</label></dt>
<dd><select name="disallowed_id" id="disallowed">{S_DISALLOWED_NAMES}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="allow" value="{L_SUBMIT}" />
</fieldset>
<!-- ELSE -->
<p>{L_NO_DISALLOWED}</p>
</fieldset>
<!-- ENDIF -->
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,54 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_MASS_EMAIL}</h1>
<p>{L_ACP_MASS_EMAIL_EXPLAIN}</p>
<!-- IF S_WARNING -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{WARNING_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_email" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_COMPOSE}</legend>
<dl>
<dt><label for="group">{L_SEND_TO_GROUP}:</label></dt>
<dd><select id="group" name="g">{S_GROUP_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="usernames">{L_SEND_TO_USERS}:</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
<dd><textarea name="usernames" id="usernames" rows="5" cols="40">{USERNAMES}</textarea></dd>
<dd>[ <a href="#" onclick="window.open('{U_FIND_USERNAME}', '_phpbbsearch', 'height=500, resizable=yes, scrollbars=yes, width=740'); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
<dl>
<dt><label for="subject">{L_SUBJECT}:</label></dt>
<dd><input name="subject" type="text" id="subject" value="{SUBJECT}" /></dd>
</dl>
<dl>
<dt><label for="message">{L_MASS_MESSAGE}:</label><br /><span>{L_MASS_MESSAGE_EXPLAIN}</span></dt>
<dd><textarea id="message" name="message" rows="10" cols="60">{MESSAGE}</textarea></dd>
</dl>
<dl>
<dt><label for="priority">{L_MAIL_PRIORITY}:</label></dt>
<dd><select id="priority" name="mail_priority_flag">{S_PRIORITY_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="send">{L_SEND_IMMEDIATLY}:</label></dt>
<dd><input id="send" type="checkbox" name="send_immediatly" checked="checked" /></dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_EMAIL}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,347 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT_FORUM -->
<script type="text/javascript">
<!--
function display_options(value)
{
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_POST -->
if (value == {FORUM_POST})
{
dE('type_actions', -1);
}
else
{
dE('type_actions', 1);
}
<!-- ENDIF -->
if (value == {FORUM_POST})
{
dE('forum_post_options', 1);
dE('forum_link_options', -1);
dE('forum_rules_options', 1);
dE('forum_cat_options', -1);
}
else if (value == {FORUM_LINK})
{
dE('forum_post_options', -1);
dE('forum_link_options', 1);
dE('forum_rules_options', -1);
dE('forum_cat_options', -1);
}
else if (value == {FORUM_CAT})
{
dE('forum_post_options', -1);
dE('forum_link_options', -1);
dE('forum_rules_options', 1);
dE('forum_cat_options', 1);
}
}
//-->
</script>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE} :: {FORUM_NAME}</h1>
<p>{L_FORUM_EDIT_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="forumedit" method="post" action="{U_EDIT_ACTION}">
<fieldset>
<legend>{L_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="forum_type">{L_FORUM_TYPE}:</label></dt>
<dd><select id="forum_type" name="forum_type" onchange="display_options(this.options[this.selectedIndex].value);">{S_FORUM_TYPE_OPTIONS}</select></dd>
</dl>
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_POST -->
<div id="type_actions"<!-- IF S_FORUM_POST --> style="display: none;"<!-- ENDIF -->>
<dl>
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}:</label></dt>
<dd><input type="radio" id="type_action" name="type_action" value="delete" checked="checked" /> {L_DELETE_ALL_POSTS}</dd>
<!-- IF S_MOVE_FORUM_OPTIONS --><dd><input type="radio" name="type_action" value="move" /> {L_MOVE_POSTS_TO} <select name="to_forum_id">{S_MOVE_FORUM_OPTIONS}</select></dd><!-- ENDIF -->
</dl>
</div>
<!-- ENDIF -->
<dl>
<dt><label for="parent">{L_FORUM_PARENT}:</label></dt>
<dd><select id="parent" name="parent_id"><option value="0"<!-- IF not S_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_NO_PARENT}</option>{S_PARENT_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="forum_name">{L_FORUM_NAME}:</label></dt>
<dd><input class="medium" type="text" id="forum_name" name="forum_name" value="{FORUM_NAME}" /></dd>
</dl>
<dl>
<dt><label for="forum_desc">{L_FORUM_DESC}:</label><br /><span>{L_FORUM_DESC_EXPLAIN}</span></dt>
<dd><textarea id="forum_desc" name="forum_desc" rows="5" cols="45">{FORUM_DESC}</textarea></dd>
</dl>
<dl>
<dt><label for="forum_image">{L_FORUM_IMAGE}:</label><br /><span>{L_FORUM_IMAGE_EXPLAIN}</span></dt>
<dd><input class="medium" type="text" id="forum_image" name="forum_image" value="{FORUM_IMAGE}" /></dd>
<!-- IF FORUM_IMAGE_SRC -->
<dd><img src="{FORUM_IMAGE_SRC}" alt="{L_FORUM_IMAGE}" /></dd>
<!-- ENDIF -->
</dl>
<dl>
<dt><label for="forum_style">{L_FORUM_STYLE}:</label></dt>
<dd><select id="forum_style" name="forum_style"><option value="0">{L_DEFAULT_STYLE}</option>{S_STYLES_OPTIONS}</select></dd>
</dl>
</fieldset>
<div id="forum_cat_options"<!-- IF not S_FORUM_CAT --> style="display: none;"<!-- ENDIF -->>
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}:</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
<dd><input type="radio" name="display_active" value="1"<!-- IF S_DISPLAY_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="display_active" value="0"<!-- IF not S_DISPLAY_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
</fieldset>
</div>
<div id="forum_post_options"<!-- IF not S_FORUM_POST --> style="display: none;"<!-- ENDIF -->>
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="forum_status">{L_FORUM_STATUS}:</label></dt>
<dd><select id="forum_status" name="forum_status">{S_STATUS_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}:</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
<dd><input type="radio" name="enable_indexing" value="1"<!-- IF S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="enable_indexing" value="0"<!-- IF not S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="enable_icons">{L_ENABLE_TOPIC_ICONS}:</label></dt>
<dd><input type="radio" name="enable_icons" value="1"<!-- IF S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="enable_icons" value="0"<!-- IF not S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<!-- IF S_SHOW_DISPLAY_ON_INDEX -->
<dl>
<dt><label for="display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dd><input type="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="display_on_index" value="0"<!-- IF not S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="display_recent">{L_ENABLE_RECENT}:</label><br /><span>{L_ENABLE_RECENT_EXPLAIN}</span></dt>
<dd><input type="radio" name="display_recent" value="1"<!-- IF S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="display_recent" value="0"<!-- IF not S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="enable_prune">{L_FORUM_AUTO_PRUNE}:</label><br /><span>{L_FORUM_AUTO_PRUNE_EXPLAIN}</span></dt>
<dd><input type="radio" name="enable_prune" value="1"<!-- IF S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="enable_prune" value="0"<!-- IF not S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}:</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}:</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}:</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dd><input type="radio" name="prune_old_polls" value="1"<!-- IF S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="prune_old_polls" value="0"<!-- IF not S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="prune_announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
<dd><input type="radio" name="prune_announce" value="1"<!-- IF S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="prune_announce" value="0"<!-- IF not S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="prune_sticky">{L_PRUNE_STICKY}:</label></dt>
<dd><input type="radio" name="prune_sticky" value="1"<!-- IF S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="prune_sticky" value="0"<!-- IF not S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}:</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
<dd><input type="text" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" /></dd>
</dl>
<dl>
<dt><label for="forum_password">{L_FORUM_PASSWORD}:</label><br /><span>{L_FORUM_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="forum_password" name="forum_password" value="{FORUM_PASSWORD}" /></dd>
</dl>
<dl>
<dt><label for="forum_password_confirm">{L_FORUM_PASSWORD_CONFIRM}:</label><br /><span>{L_FORUM_PASSWORD_CONFIRM_EXPLAIN}</span></dt>
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="{FORUM_PASSWORD_CONFIRM}" /></dd>
</dl>
</fieldset>
</div>
<div id="forum_link_options"<!-- IF not S_FORUM_LINK --> style="display: none;"<!-- ENDIF -->>
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="forum_link">{L_FORUM_LINK}:</label><br /><span>{L_FORUM_LINK_EXPLAIN}</span></dt>
<dd><input class="medium" type="text" id="forum_link" name="forum_link" value="{FORUM_DATA_LINK}" /></dd>
</dl>
<dl>
<dt><label for="forum_link_track">{L_FORUM_LINK_TRACK}:</label><br /><span>{L_FORUM_LINK_TRACK_EXPLAIN}</span></dt>
<dd><input type="radio" name="forum_link_track" value="1"<!-- IF S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_YES} &nbsp; <input type="radio" name="forum_link_track" value="0"<!-- IF not S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
</fieldset>
</div>
<div id="forum_rules_options"<!-- IF S_FORUM_LINK --> style="display: none;"<!-- ENDIF -->>
<fieldset>
<legend>{L_FORUM_RULES}</legend>
<dl>
<dt><label for="forum_rules_link">{L_FORUM_RULES_LINK}:</label><br /><span>{L_FORUM_RULES_LINK_EXPLAIN}</span></dt>
<dd><input class="medium" type="text" id="forum_rules_link" name="forum_rules_link" value="{FORUM_RULES_LINK}" /></dd>
</dl>
<!-- IF FORUM_RULES_PREVIEW -->
<dl>
<dt><label>{L_FORUM_RULES_PREVIEW}:</label></dt>
<dd>{FORUM_RULES_PREVIEW}</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="forum_rules">{L_FORUM_RULES}:</label><br /><span>{L_FORUM_RULES_EXPLAIN}</span></dt>
<dd><textarea id="forum_rules" name="forum_rules" rows="4" cols="70">{FORUM_RULES_PLAIN}</textarea></dd>
<dd><input type="checkbox" name="parse_bbcode"<!-- IF S_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE} &nbsp; <input type="checkbox" name="parse_smilies"<!-- IF S_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES} &nbsp; <input type="checkbox" name="parse_urls"<!-- IF S_URLS_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_URLS}</dd>
</dl>
</fieldset>
</div>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="submit" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</fieldset>
</form>
<!-- ELSEIF S_DELETE_FORUM -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_FORUM_DELETE}</h1>
<p>{L_FORUM_DELETE_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_forum" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_FORUM_DELETE}</legend>
<dl>
<dt><label>{L_FORUM_NAME}:</label></dt>
<dd><b>{FORUM_NAME}</b></dd>
</dl>
<!-- IF S_FORUM_POST -->
<dl>
<dt><label for="delete_action">{L_ACTION}:</label></dt>
<dd><input type="radio" id="delete_action" name="action_posts" value="delete" checked="checked" /> {L_DELETE_ALL_POSTS}</dd>
<!-- IF S_MOVE_FORUM_OPTIONS -->
<dd><input type="radio" name="action_posts" value="move" /> {L_MOVE_POSTS_TO} <select name="posts_to_id">{S_MOVE_FORUM_OPTIONS}</select></dd>
<!-- ENDIF -->
</dl>
<!-- ENDIF -->
<!-- IF S_HAS_SUBFORUMS -->
<dl>
<dt><label for="sub_delete_action">{L_ACTION}:</label></dt>
<dd><input type="radio" id="sub_delete_action" name="action_subforums" value="delete" checked="checked" /> {L_DELETE_SUBFORUMS}</dd>
<!-- IF S_FORUMS_LIST -->
<dd><input type="radio" name="action_subforums" value="move" /> {L_MOVE_SUBFORUMS_TO} <select name="subforums_to_id">{S_FORUMS_LIST}</select></dd>
<!-- ENDIF -->
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ELSE -->
<h1>{L_FORUM_ADMIN}</h1>
<p>{L_FORUM_ADMIN_EXPLAIN}</p>
<!-- IF ERROR_MSG -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_RESYNCED -->
<div class="successbox">
<h3>{L_NOTIFY}</h3>
<p>{L_FORUM_RESYNCED}</p>
</div>
<!-- ENDIF -->
<table cellspacing="1">
<tbody>
<tr>
<td class="row3">{NAVIGATION}<!-- IF S_NO_FORUMS --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a><!-- IF not S_LINK --> | <a href="{U_SYNC}">{L_RESYNC}</a><!-- ENDIF --->]<!-- ENDIF --></td>
</tr>
</tbody>
</table>
<!-- IF .forums -->
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" /><col class="row2" />
<tbody>
<!-- BEGIN forums -->
<tr>
<td style="width: 5%;">{forums.FOLDER_IMAGE}</td>
<td style="width: 50%; vertical-align: top;">
<!-- IF forums.S_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF -->
<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <b>{forums.FORUM_TOPICS}</b> / {L_POSTS}: <b>{forums.FORUM_POSTS}</b></span><!-- ENDIF -->
</td>
<td style="width: 15%; white-space: nowrap; text-align: center; vertical-align: middle;"><a href="{forums.U_MOVE_UP}">{L_MOVE_UP}</a><br /><a href="{forums.U_MOVE_DOWN}">{L_MOVE_DOWN}</a></td>
<td style="width: 20%; white-space: nowrap; text-align: center; vertical-align: middle;">&nbsp;
<a href="{forums.U_EDIT}">{L_EDIT}</a> | <a href="{forums.U_DELETE}">{L_DELETE}</a>
<!-- IF not forums.S_LINK --> | <a href="{forums.U_SYNC}">{L_RESYNC}</a><!-- ENDIF -->
&nbsp;</td>
</tr>
<!-- END forums -->
</tbody>
</table>
<!-- ENDIF -->
<form id="forums" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: left;">
<input type="hidden" name="action" value="add" />
<input type="text" name="forum_name" />
<input class="button2" name="addforum" type="submit" value="{L_CREATE_FORUM}" />
</fieldset>
</form>
<form id="fselect" method="post" action="{U_SEL_ACTION}">
<fieldset class="quick">
{L_SELECT_FORUM}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,306 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_GROUPS_MANAGE}</h1>
<p>{L_GROUP_EDIT_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
<fieldset>
<legend>{L_GROUP_DETAILS}</legend>
<dl>
<dt><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}:</label></dt>
<dd><!-- IF S_SPECIAL_GROUP --><b>{GROUP_NAME}</b><!-- ELSE --><input name="group_name" type="text" id="group_name" value="{GROUP_NAME}" /><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="group_description">{L_GROUP_DESC}:</label></dt>
<dd><input name="group_description" type="text" id="group_description" value="{GROUP_DESCRIPTION}" /></dd>
</dl>
<!-- IF not S_SPECIAL_GROUP -->
<dl>
<dt><label for="group_type">{L_GROUP_TYPE}:</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
<dd>
<input name="group_type" type="radio" id="group_type" value="{GROUP_TYPE_FREE}"{GROUP_FREE} /> {L_GROUP_OPEN} &nbsp;
<input name="group_type" type="radio" value="{GROUP_TYPE_OPEN}"{GROUP_OPEN} /> {L_GROUP_REQUEST} &nbsp;
<input name="group_type" type="radio" value="{GROUP_TYPE_CLOSE}"{GROUP_CLOSED} /> {L_GROUP_CLOSED} &nbsp;
<input name="group_type" type="radio" value="{GROUP_TYPE_HIDDEN}"{GROUP_HIDDEN} /> {L_GROUP_HIDDEN}
</dd>
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset>
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
<dl>
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label></dt>
<dd><input name="group_receive_pm" type="checkbox" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
</dl>
<dl>
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}:</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
<dd><input name="group_message_limit" type="text" id="group_message_limit" maxlength="4" size="4" value="{GROUP_MESSAGE_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="group_colour">{L_GROUP_COLOR}:</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></dt>
<dd><input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" />&nbsp;&nbsp;<span>[ <a href="#" onclick="swatch(); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
</dl>
<dl>
<dt><label for="group_rank">{L_GROUP_RANK}:</label></dt>
<dd><select name="group_rank" id="group_rank">{S_RANK_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_GROUP_AVATAR}</legend>
<dl>
<dt><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR_IMAGE}</dd>
<dd><input type="checkbox" name="delete" />&nbsp;<span>{L_DELETE_AVATAR}</span></dd>
</dl>
<!-- IF not S_IN_AVATAR_GALLERY -->
<!-- IF S_CAN_UPLOAD -->
<dl>
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_MAX_FILESIZE}" /><input type="file" id="uploadfile" name="uploadfile" /></dd>
</dl>
<dl>
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
<dd><input name="uploadurl" type="text" id="uploadurl" value="" /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
<dd><input name="remotelink" type="text" id="remotelink" value="" /></dd>
</dl>
<dl>
<dt><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
<dd><input name="width" type="text" id="width" size="3" value="{GROUP_AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{GROUP_AVATAR_HEIGHT}" /> <span>px</span></dd>
</dl>
<!-- IF S_DISPLAY_GALLERY -->
<dl>
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
</dl>
<!-- ENDIF -->
<!-- ELSE -->
</fieldset>
<fieldset>
<legend>{L_AVATAR_GALLERY}</legend>
<dl>
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
<dd><select name="category" id="category">{S_CAT_OPTIONS}</select>&nbsp;<input class="button2" type="submit" value="{L_GO}" name="display_gallery" /></dd>
</dl>
<dl>
<table cellspacing="1">
<!-- BEGIN avatar_row -->
<tr>
<!-- BEGIN avatar_column -->
<td class="row1" style="text-align: center;"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
<!-- END avatar_column -->
</tr>
<tr>
<!-- BEGIN avatar_option_column -->
<td class="row2" style="text-align: center;"><input type="radio" name="avatar_select" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
<!-- END avatar_option_column -->
</tr>
<!-- END avatar_row -->
</table>
</dl>
</fieldset>
<fieldset class="quick" style="margin-top: -15px;">
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
<!-- ENDIF -->
</fieldset>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="submit" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</fieldset>
</form>
<!-- ELSEIF S_LIST -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_GROUP_MEMBERS}</h1>
<p>{L_GROUP_MEMBERS_EXPLAIN}</p>
<form id="list" method="post" action="{U_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
<th>{L_GROUP_DEFAULT}</th>
<th>{L_JOINED}</th>
<th>{L_POSTS}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- IF not S_GROUP_SPECIAL -->
<tr>
<td class="row3" colspan="5"><b>{L_GROUP_LEAD}</b></td>
</tr>
<!-- BEGIN leader -->
<!-- IF leader.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{leader.U_USER_EDIT}">{leader.USERNAME}</a></td>
<td style="text-align: center;"><!-- IF leader.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
<td style="text-align: center;">{leader.JOINED}</td>
<td style="text-align: center;">{leader.USER_POSTS}</td>
<td style="text-align: center;"><input type="checkbox" name="mark[]" value="{leader.USER_ID}" /></td>
</tr>
<!-- BEGINELSE -->
<tr>
<td class="row1" colspan="5" style="text-align: center;">{L_GROUPS_NO_MODS}</td>
</tr>
<!-- END leader -->
<!-- ENDIF -->
<tr>
<td class="row3" colspan="5"><b>{L_GROUP_APPROVED}</b></td>
</tr>
<!-- BEGIN member -->
<!-- IF member.S_PENDING -->
<tr>
<td class="row3" colspan="5"><b>{L_GROUP_PENDING}</b></td>
</tr>
<!-- ELSE -->
<!-- IF member.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{member.U_USER_EDIT}">{member.USERNAME}</a></td>
<td style="text-align: center;"><!-- IF member.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
<td style="text-align: center;">{member.JOINED}</td>
<td style="text-align: center;">{member.USER_POSTS}</td>
<td style="text-align: center;"><input type="checkbox" name="mark[]" value="{member.USER_ID}" /></td>
</tr>
<!-- ENDIF -->
<!-- BEGINELSE -->
<tr>
<td class="row1" colspan="5" style="text-align: center;">{L_GROUPS_NO_MEMBERS}</td>
</tr>
<!-- END member -->
</tbody>
</table>
<div class="pagination" style="float: left;">
<!-- IF PAGINATION -->
<a href="javascript:jumpto();" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<!-- ELSE -->
{S_ON_PAGE}
<!-- ENDIF -->
</div>
<fieldset class="quick">
<span class="small"><a href="javascript:marklist('list', true);">{L_MARK_ALL}</a> :: <a href="javascript:marklist('list', false);">{L_UNMARK_ALL}</a></span><br />
<select name="action"><option class="sep" value="">{L_SELECT_OPTION}</option>{S_ACTION_OPTIONS}</select>
<input class="button2" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
<h1>{L_ADD_USERS}</h1>
<p>{L_ADD_USERS_EXPLAIN}</p>
<fieldset>
<legend>{L_ADD_USERS}</legend>
<dl>
<dt><label for="leader">{L_USER_GROUP_LEADER}:</label></dt>
<dd><input name="leader" type="radio" value="1" /> {L_YES} &nbsp; <input name="leader" type="radio" id="leader" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="default">{L_USER_GROUP_DEFAULT}:</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></dt>
<dd><input name="default" type="radio" value="1" /> {L_YES} &nbsp; <input name="default" type="radio" id="default" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="usernames">{L_USERNAME}:</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
<dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" target="usersearch">{L_FIND_USERNAME}</a> ]</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button2" type="submit" name="addusers" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ELSE -->
<h1>{L_ACP_GROUPS_MANAGE}</h1>
<p>{L_ACP_GROUPS_MANAGE_EXPLAIN}</p>
<h1>{L_USER_DEF_GROUPS}</h1>
<p>{L_USER_DEF_GROUPS_EXPLAIN}</p>
<form id="acp_groups" method="post" action="{U_ACTION}">
<table cellspacing="1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
<tr>
<th style="width: 50%">{L_MANAGE}</th>
<th>{L_TOTAL_MEMBERS}</th>
<th colspan="3">{L_OPTIONS}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN groups -->
<!-- IF groups.S_SPECIAL -->
</tbody>
</table>
<fieldset class="quick">
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" />
</fieldset>
<h1>{L_SPECIAL_GROUPS}</h1>
<p>{L_SPECIAL_GROUPS_EXPLAIN}</p>
<table cellspacing="1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
<tr>
<th style="width: 50%">{L_MANAGE}</th>
<th>{L_TOTAL_MEMBERS}</th>
<th colspan="3">{L_OPTIONS}</th>
</tr>
</thead>
<tbody>
<!-- ELSE -->
<tr>
<td><a href="{groups.U_LIST}">{groups.GROUP_NAME}</a></td>
<td style="text-align: center;">{groups.TOTAL_MEMBERS}</td>
<td style="text-align: center;"><a href="{groups.U_DEFAULT}">{L_GROUP_DEFAULT}</a></td>
<td style="text-align: center;"><a href="{groups.U_EDIT}">{L_EDIT}</a></td>
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL --><a href="{groups.U_DELETE}">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
</tr>
<!-- ENDIF -->
<!-- END groups -->
</tbody>
</table>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,165 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_icons" method="post" action="{U_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th colspan="{COLSPAN}">{L_CONFIG}</th>
</tr>
<tr class="row3">
<td>{L_URL}</td>
<td>{L_LOCATION}</td>
<!-- IF S_SMILIES -->
<td>{L_SMILIES_CODE}</td>
<td>{L_SMILIES_EMOTION}</td>
<!-- ENDIF -->
<td>{L_WIDTH}</td>
<td>{L_HEIGHT}</td>
<td>{L_DISPLAY_ON_POSTING}</td>
<!-- IF ID or S_ADD -->
<td>{L_ORDER}</td>
<!-- ENDIF -->
<!-- IF S_ADD -->
<td>{L_ADD}</td>
<!-- ENDIF -->
</tr>
</thead>
<tbody>
<!-- BEGIN items -->
<!-- IF items.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="" title="" /><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
<td style="vertical-align: top;">[{items.IMG}]</td>
<!-- IF S_SMILIES -->
<td><input class="post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" /></td>
<td><input class="post" type="text" name="emotion[{items.IMG}]" value="{items.EMOTION}" size="10" /></td>
<!-- ENDIF -->
<td><input class="post" type="text" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="post" type="text" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td>
<input type="checkbox" name="display_on_posting[{items.IMG}]"{items.POSTING_CHECKED} />
<!-- IF items.S_ID -->
<input type="hidden" name="id[{items.IMG}]" value="{items.ID}" />
<!-- ENDIF -->
</td>
<!-- IF ID or S_ADD -->
<td><select name="order[{items.IMG}]">{S_ORDER_LIST}</select></td>
<!-- ENDIF -->
<!-- IF S_ADD -->
<td><input type="checkbox" name="add_img[{items.IMG}]" value="1" /></td>
<!-- ENDIF -->
</tr>
<!-- END items -->
</tbody>
</table>
<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>
<!-- ELSEIF S_CHOOSE_PAK -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_icons" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_IMPORT}</legend>
<!-- IF not S_PAK_OPTIONS -->
<p>{L_NO_PAK_OPTIONS}</p>
</fieldset>
<!-- ELSE -->
<dl>
<dt><label for="pak">{L_SELECT_PACKAGE}</label></dt>
<dd><select id="pak" name="pak">{S_PAK_OPTIONS}</select></dd>
</dl>
<dt><label for="current">{L_CURRENT}</label><br /><span>{L_CURRENT_EXPLAIN}</span></dt>
<dd><input type="radio" id="current" name="current" value="keep" checked="checked" /> {L_KEEP_ALL}&nbsp; &nbsp;<input type="radio" name="current" value="replace" /> {L_REPLACE_MATCHES}&nbsp; &nbsp;<input type="radio" name="current" value="delete" /> {L_DELETE_ALL}&nbsp;</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" id="import" name="import" value="{L_IMPORT_SUBMIT}" />
</fieldset>
<!-- ENDIF -->
</form>
<!-- ELSE -->
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF NOTICE -->
<div class="successbox">
<h3>{L_NOTIFY}</h3>
<p>{NOTICE}</p>
</div>
<!-- ENDIF -->
<div style="text-align: right;"><a href="{U_IMPORT}">{L_IMPORT}</a> | <a href="{U_EXPORT}">{L_EXPORT}</a></div>
<table cellspacing="1">
<thead>
<tr>
<th>{L_TITLE}</th>
<!-- IF S_SMILIES -->
<th>{L_CODE}</th>
<th>{L_EMOTION}</th>
<!-- ENDIF -->
<th>{L_ACTION}</th>
<th>{L_REORDER}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN items -->
<!-- IF items.S_SPACER -->
<tr>
<td class="row3" colspan="{COLSPAN}" style="text-align: center;">{L_NOT_DISPLAYED}</td>
</tr>
<!-- ENDIF -->
<!-- IF items.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"><img src="{items.IMG_SRC}" width="{items.WIDTH}" height="{items.HEIGHT}" alt="{items.ALT_TEXT}" title="{items.ALT_TEXT}" /></td>
<!-- IF S_SMILIES -->
<td style="text-align: center;">{items.CODE}</td>
<td style="text-align: center;">{items.EMOTION}</td>
<!-- ENDIF -->
<td style="text-align: center;"><a href="{items.U_EDIT}">{L_EDIT}</a> | <a href="{items.U_DELETE}">{L_DELETE}</a></td>
<td style="text-align: center;"><a href="{items.U_MOVE_UP}">{L_MOVE_UP}</a> <br /> <a href="{items.MOVE_DOWN}">{L_MOVE_DOWN}</a></td>
</tr>
<!-- END items -->
</tbody>
</table>
<form id="acp_icons" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="button2" name="add" type="submit" value="{L_ICON_ADD}" />&nbsp; &nbsp;<input class="button2" type="submit" name="edit" value="{L_ICON_EDIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,53 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_JABBER_SETTINGS}</h1>
<p>{L_ACP_JABBER_SETTINGS_EXPLAIN}</p>
<!-- IF S_WARNING -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{WARNING_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_jabber" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_JABBER_SETTINGS}</legend>
<dl>
<dt><label for="jab_enable">{L_JAB_ENABLE}:</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
<dd><input type="radio" id="jab_enable" name="jab_enable" value="1"<!-- IF JAB_ENABLE --> checked="checked"<!-- ENDIF --> />&nbsp;{L_ENABLED}&nbsp; &nbsp;<input type="radio" name="jab_enable" value="0"<!-- IF not JAB_ENABLE --> checked="checked"<!-- ENDIF --> />&nbsp;{L_DISABLED}</dd>
</dl>
<dl>
<dt><label for="jab_host">{L_JAB_SERVER}:</label><br /><span>{L_JAB_SERVER_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_host" name="jab_host" value="{JAB_HOST}" /></dd>
</dl>
<dl>
<dt><label for="jab_port">{L_JAB_PORT}:</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_port" name="jab_port" value="{JAB_PORT}" /></dd>
</dl>
<dl>
<dt><label for="jab_username">{L_JAB_USERNAME}:</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_username" name="jab_username" value="{JAB_USERNAME}" /></dd>
</dl>
<dl>
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label></dt>
<dd><input type="text" id="jab_password" name="jab_password" value="{JAB_PASSWORD}" /></dd>
</dl>
<dl>
<dt><label for="jab_resource">{L_JAB_RESOURCE}:</label><br /><span>{L_JAB_RESOURCE_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_resource" name="jab_resource" value="{JAB_RESOURCE}" /></dd>
</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>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,201 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_SELECT_METHOD -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_SELECT_DOWNLOAD_FORMAT}</h1>
<form id="selectmethod" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_DOWNLOAD_AS}</legend>
<dl>
<dt><label for="use_method">{L_DOWNLOAD_AS}:</label></dt>
<dd>{RADIO_BUTTONS}</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input type="submit" class="button2" value="{L_DOWNLOAD}" name="download" />
</fieldset>
</form>
<!-- ELSEIF S_DETAILS -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_LANGUAGE_PACK_DETAILS}</h1>
<form id="details" method="post" action="{U_ACTION}">
<fieldset>
<legend>{LANG_LOCAL_NAME}</legend>
<dl>
<dt><label for="lang_english_name">{L_LANG_ENGLISH_NAME}:</label></dt>
<dd><input type="text" id="lang_english_name" name="lang_english_name" value="{LANG_ENGLISH_NAME}" /></dd>
</dl>
<dl>
<dt><label for="lang_local_name">{L_LANG_LOCAL_NAME}:</label></dt>
<dd><input type="text" id="lang_local_name" name="lang_local_name" value="{LANG_LOCAL_NAME}" /></dd>
</dl>
<dl>
<dt><label>{L_LANG_ISO_CODE}:</label></dt>
<dd><b>{LANG_ISO}</b></dd>
</dl>
<dl>
<dt><label for="lang_author">{L_LANG_AUTHOR}:</label></dt>
<dd><input type="text" id="lang_author" name="lang_author" value="{LANG_AUTHOR}" /></dd>
</dl>
</fieldset>
<fieldset class="quick" style="margin-top: -15px;">
<input type="submit" name="update_details" class="button2" value="{L_SUBMIT}" />
</fieldset>
</form>
<br /><br />
<!-- IF S_MISSING_FILES -->
<div class="errorbox">
<h3>{L_MISSING_FILES}</h3>
<p>{MISSING_FILES}</p>
</div>
<br /><br />
<!-- ENDIF -->
<!-- IF S_MISSING_VARS -->
<h1>{L_MISSING_LANG_VARIABLES}</h1>
<p>{L_MISSING_VARS_EXPLAIN}</p>
<form id="missing" method="post" action="{U_MISSING_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th>{L_LANGUAGE_KEY}</th>
<th>{L_LANGUAGE_VARIABLE}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN missing -->
<tr class="row4">
<td><b>{missing.FILE}</b></td>
<td style="text-align: right;"><input type="submit" name="missing_file[{missing.KEY}]" value="{L_SELECT}" class="button2" /></td>
</tr>
{missing.TPL}
<!-- END missing -->
</tbody>
</table>
</form>
<br /><br />
<!-- ENDIF -->
<a name="entries"></a>
<h1>{L_LANGUAGE_ENTRIES}</h1>
<p>{L_LANGUAGE_ENTRIES_EXPLAIN}</p>
<form id="entries" method="post" action="{U_ENTRY_ACTION}">
<!-- IF S_FROM_STORE -->
<fieldset class="quick" style="float: left;">
<input type="submit" name="remove_store" value="{L_REMOVE_FROM_STORAGE_FOLDER}" class="button2" />
</fieldset>
<!-- ENDIF -->
<fieldset class="quick" style="float: right;">
<select name="language_file">{S_LANG_OPTIONS}</select>&nbsp;<input type="submit" class="button2" name="change" value="{L_SELECT}" />
</fieldset>
<br /><br />
<table cellspacing="1">
<thead>
<!-- IF S_EMAIL_FILE -->
<tr>
<th colspan="2">{L_FILE_CONTENTS}</th>
</tr>
<!-- ELSE -->
<tr>
<th>{L_LANGUAGE_KEY}</th>
<th>{L_LANGUAGE_VARIABLE}</th>
</tr>
<!-- ENDIF -->
<tr>
<td class="row3"><b>{PRINT_MESSAGE}<!-- IF S_FROM_STORE --><br /><span style="color: red;">{L_FILE_FROM_STORAGE}</span><!-- ENDIF --></b></td>
<td class="row3" style="text-align: right;"><input type="submit" name="download_file" class="button2" value="{L_SUBMIT_AND_DOWNLOAD}" />&nbsp;&nbsp;<input type="submit" name="submit_file" class="button2" value="{L_SUBMIT}" /></td>
</tr>
</thead>
<tbody>
<!-- IF S_EMAIL_FILE -->
<tr>
<td class="row2" colspan="2" style="text-align: center;"><textarea name="entry" id="entry" cols="80" rows="20" style="width: 90%">{LANG}</textarea></td>
</tr>
<!-- ELSE -->
{TPL}
<!-- ENDIF -->
<tr>
<td class="row3" colspan="3" style="text-align: right;"><input type="submit" name="download_file" class="button2" value="{L_SUBMIT_AND_DOWNLOAD}" />&nbsp;&nbsp;<input type="submit" name="submit_file" class="button2" value="{L_SUBMIT}" /></td>
</tr>
</tbody>
</table>
</form>
<!-- ELSE -->
<h1>{L_ACP_LANGUAGE_PACKS}</h1>
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_LANGUAGE_PACK_NAME}</th>
<th>{L_LANGUAGE_PACK_LOCALNAME}</th>
<th>{L_LANGUAGE_PACK_ISO}</th>
<th>{L_LANGUAGE_PACK_USED_BY}</th>
<th>{L_OPTIONS}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="row3" colspan="5"><b>{L_INSTALLED_LANGUAGE_PACKS}</b></td>
</tr>
<!-- BEGIN lang -->
<!-- IF lang.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{lang.U_DETAILS}">{lang.ENGLISH_NAME}</a> {lang.TAG}</td>
<td>{lang.LOCAL_NAME}</td>
<td style="text-align: center;"><b>{lang.ISO}</b></td>
<td style="text-align: center;">{lang.USED_BY}</td>
<td style="text-align: center;">&nbsp;<a href="{lang.U_DOWNLOAD}">{L_DOWNLOAD}</a>&nbsp;|&nbsp;<a href="{lang.U_DELETE}">{L_DELETE}</a></td>
</tr>
<!-- END lang -->
<!-- IF .notinst -->
<tr>
<td class="row3" colspan="5"><b>{L_UNINSTALLED_LANGUAGE_PACKS}</b></td>
</tr>
<!-- ENDIF -->
<!-- BEGIN notinst -->
<!-- IF notinst.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{notinst.NAME}</td>
<td>{notinst.LOCAL_NAME}</td>
<td style="text-align: center;"><b>{notinst.ISO}</b></td>
<td colspan="2" style="text-align: center;"><a href="{notinst.U_INSTALL}">{L_INSTALL}</a></td>
</tr>
<!-- END notinst -->
</tbody>
</table>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,75 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="list" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: left;">
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<div class="clearfix"></div>
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF PAGINATION -->
<a href="javascript:jumpto();" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<!-- ELSE -->
{S_ON_PAGE}
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- IF .log -->
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
<th>{L_IP}</th>
<th>{L_TIME}</th>
<th>{L_ACTION}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN log -->
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{log.USERNAME}</td>
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
<td>{log.ACTION}</td>
<td style="text-align: center;"><input type="checkbox" name="mark[]" value="{log.ID}" /></td>
</tr>
<!-- END log -->
</tbody>
</table>
<!-- ELSE -->
<div class="errorbox">
<p>{L_NO_ENTRIES}</p>
</div>
<!-- ENDIF -->
<!-- IF S_SHOW_FORUMS -->
<fieldset class="quick" style="float: left;">
{L_SELECT_FORUM}: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
</fieldset>
<!-- ENDIF -->
<!-- IF S_CLEARLOGS -->
<fieldset class="quick">
<b class="small"><a href="#" onclick="marklist('list', true);">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('list', false);">{L_UNMARK_ALL}</a></b><br />
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />&nbsp;
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />&nbsp;
</fieldset>
<!-- ENDIF -->
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,155 @@
<!-- INCLUDE overall_header.html -->
<script type="text/javascript">
<!--
function marklist(status)
{
for (i = 0; i < document.inactive.length; i++)
{
document.inactive.elements[i].checked = status;
}
}
//-->
</script>
<a name="maincontent"></a><h1>{L_WELCOME_PHPBB}</h1>
<p>{L_ADMIN_INTRO}</p>
<table cellspacing="1">
<caption>{L_FORUM_STATS}</caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
<thead>
<tr>
<th>{L_STATISTIC}</th>
<th>{L_VALUE}</th>
<th>{L_STATISTIC}</th>
<th>{L_VALUE}</th>
</tr>
</thead>
<tbody>
<tr>
<td>{L_NUMBER_POSTS}: </td>
<td><b>{TOTAL_POSTS}</b></td>
<td>{L_POSTS_PER_DAY}: </td>
<td><b>{POSTS_PER_DAY}</b></td>
</tr>
<tr>
<td>{L_NUMBER_TOPICS}: </td>
<td><b>{TOTAL_TOPICS}</b></td>
<td>{L_TOPICS_PER_DAY}: </td>
<td><b>{TOPICS_PER_DAY}</b></td>
</tr>
<tr>
<td>{L_NUMBER_USERS}: </td>
<td><b>{TOTAL_USERS}</b></td>
<td>{L_USERS_PER_DAY}: </td>
<td><b>{USERS_PER_DAY}</b></td>
</tr>
<tr>
<td>{L_NUMBER_FILES}: </td>
<td><b>{TOTAL_FILES}</b></td>
<td>{L_FILES_PER_DAY}: </td>
<td><b>{FILES_PER_DAY}</b></td>
</tr>
<tr>
<td>{L_BOARD_STARTED}: </td>
<td><b>{START_DATE}</b></td>
<td>{L_AVATAR_DIR_SIZE}: </td>
<td><b>{AVATAR_DIR_SIZE}</b></td>
</tr>
<tr>
<td>{L_DATABASE_SIZE}: </td>
<td><b>{DBSIZE}</b></td>
<td>{L_UPLOAD_DIR_SIZE}: </td>
<td><b>{UPLOAD_DIR_SIZE}</b></td>
</tr>
<tr>
<td>{L_GZIP_COMPRESSION}: </td>
<td><b>{GZIP_COMPRESSION}</b></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<form id="stats" method="post" action="{U_ACTION}">
<fieldset class="quick">
<select name="action">{S_ACTION_OPTIONS}</select>
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
</fieldset>
</form>
<h2>{L_ADMIN_LOG}</h2>
<p>{L_ADMIN_LOG_INDEX_EXPLAIN}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
<th>{L_IP}</th>
<th>{L_TIME}</th>
<th>{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN log -->
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{log.USERNAME}</td>
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
<td>{log.ACTION}</td>
</tr>
<!-- END log -->
</tbody>
</table>
<!-- IF S_INACTIVE_USERS -->
<h2>{L_INACTIVE_USERS}</h2>
<p>{L_INACTIVE_USERS_EXPLAIN}</p>
<form id="inactive" method="post" action="{U_ACTION}">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
<th>{L_JOINED}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN inactive -->
<!-- IF inactive.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{inactive.U_USER_ADMIN}">{inactive.USERNAME}</a></td>
<td>{inactive.DATE}</td>
<td>&nbsp;<input type="checkbox" name="mark[]" value="{inactive.USER_ID}" />&nbsp;</td>
</tr>
<!-- BEGINELSE -->
<tr>
<td colspan="3" style="text-align: center;">{L_NO_INACTIVE_USERS}</td>
</tr>
<!-- END inactive -->
</tbody>
</table>
<!-- IF .inactive -->
<fieldset class="quick">
<p><a href="javascript:marklist(true);">Mark all</a> &bull; <a href="javascript:marklist(false);">Unmark all</a></p>
<select name="action">{S_INACTIVE_OPTIONS}</select>
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
</fieldset>
<!-- ENDIF -->
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,190 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT_MODULE -->
<script type="text/javascript">
<!--
function display_options(value)
{
if (value == 'category')
{
dE('modoptions', -1);
}
else
{
dE('modoptions', 1);
}
}
function display_modes(value)
{
// Remove select fields
var item = document.getElementById('module_mode');
var j = 0;
// empty existing items
for (var i = 0; i <= item.options.length; i++)
{
item.options[i] = null;
}
<!-- BEGIN m_names -->
if (value == '{m_names.NAME}')
{
<!-- BEGIN modes -->
item.options[j] = new Option('{m_names.modes.VALUE}');
item.options[j].value = '{m_names.modes.OPTION}';
j++;
<!-- END modes -->
}
<!-- END m_names -->
// select first item
item.options[0].selected = true;
}
//-->
</script>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE} :: {MODULENAME}</h1>
<p>{L_EDIT_MODULE_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="moduleedit" method="post" action="{U_EDIT_ACTION}">
<fieldset>
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="module_langname">{L_MODULE_LANGNAME}:</label><br />
<span>{L_MODULE_LANGNAME_EXPLAIN}</span></dt>
<dd><input name="module_langname" type="text" id="module_langname" value="{MODULE_LANGNAME}" class="medium" /></dd>
</dl>
<dl>
<dt><label for="module_type">{L_MODULE_TYPE}:</label></dt>
<dd><select name="module_type" id="module_type" onchange="display_options(this.value);"><option value="category"<!-- IF S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_CATEGORY}</option><option value="module"<!-- IF not S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_MODULE}</option></select></dd>
</dl>
<dl>
<dt><label for="parent_id">{L_PARENT}:</label></dt>
<dd><select name="parent_id" id="parent_id">{S_CAT_OPTIONS}</select></dd>
</dl>
<hr />
<dl>
<dt><label for="module_enabled">{L_MODULE_ENABLED}:</label></dt>
<dd><label><input class="radio" type="radio" name="module_enabled" id="module_enabled" value="1"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input class="radio" type="radio" name="module_enabled" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<div id="modoptions"<!-- IF S_IS_CAT --> style="display: none;"<!-- ENDIF -->>
<dl>
<dt><label for="module_display">{L_MODULE_DISPLAYED}:</label><br /><span>{L_MODULE_DISPLAYED_EXPLAIN}</span></dt>
<dd><label><input class="radio" type="radio" name="module_display" id="module_display" value="1"<!-- IF MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input class="radio" type="radio" name="module_display" value="0"<!-- IF not MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="module_name">{L_CHOOSE_MODULE}:</label><br />
<span>{L_CHOOSE_MODULE_EXPLAIN}</span></dt>
<dd><select name="module_name" id="module_name" onchange="display_modes(this.value);">{S_MODULE_NAMES}</select></dd>
</dl>
<dl>
<dt><label for="module_mode">{L_CHOOSE_MODE}:</label><br />
<span>{L_CHOOSE_MODE_EXPLAIN}</span></dt>
<dd><select name="module_mode" id="module_mode">{S_MODULE_MODES}</select></dd>
</dl>
</div>
</fieldset>
<fieldset class="submit-buttons">
<input type="hidden" name="action" value="{ACTION}" />
<input type="hidden" name="m" value="{MODULE_ID}" />
<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>
<!-- ELSE -->
<h1>{L_ACP_MODULE_MANAGEMENT}</h1>
<p>{L_ACP_MODULE_MANAGEMENT_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<table cellspacing="1">
<tbody>
<tr>
<td class="row3">{NAVIGATION}<!-- IF S_NO_MODULES --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a> | <!-- IF MODULE_ENABLED --><a href="{U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{U_ENABLE}">{L_ENABLE}</a><!-- ENDIF -->]<!-- ENDIF --></td>
</tr>
</tbody>
</table>
<!-- IF .modules -->
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" /><col class="row2" />
<tbody>
<!-- BEGIN modules -->
<tr>
<td style="width: 5%;">{modules.MODULE_IMAGE}</td>
<td style="width: 50%;"><a href="{modules.U_MODULE}">{modules.MODULE_TITLE}</a><!-- IF not modules.MODULE_DISPLAYED --> <span class="small">[{L_HIDDEN_MODULE}]</span><!-- ENDIF --></td>
<td style="width: 15%; white-space: nowrap; text-align: center; vertical-align: middle;"><a href="{modules.U_MOVE_UP}">{L_MOVE_UP}</a><br /><a href="{modules.U_MOVE_DOWN}">{L_MOVE_DOWN}</a></td>
<td style="width: 20%; white-space: nowrap; text-align: center; vertical-align: middle;">&nbsp;
<a href="{modules.U_EDIT}">{L_EDIT}</a> | <a href="{modules.U_DELETE}">{L_DELETE}</a> |
<!-- IF modules.MODULE_ENABLED --><a href="{modules.U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{modules.U_ENABLE}">{L_ENABLE}</a><!-- ENDIF -->
&nbsp;</td>
</tr>
<!-- END modules -->
</tbody>
</table>
<!-- ENDIF -->
<form id="module" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: left;">
<input type="hidden" name="action" value="add" />
<input type="text" name="module_langname" />
<input class="button2" name="addmodule" type="submit" value="{L_CREATE_MODULE}" />
</fieldset>
</form>
<form id="quick" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input type="hidden" name="action" value="quickadd" />
<select name="quick_install">{S_INSTALL_OPTIONS}</select>
<input class="button2" name="quickadd" type="submit" value="{L_ADD_MODULE}" />
</fieldset>
</form>
<form id="mselect" method="post" action="{U_SEL_ACTION}">
<fieldset class="quick">
{L_SELECT_MODULE}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{MODULE_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,11 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_PHP_INFO}</h1>
<p>{L_ACP_PHP_INFO_EXPLAIN}</p>
{PHPINFO}
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,189 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF ERROR_MSG -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="add_profile_field" method="post" action="{U_ACTION}">
<!-- IF S_STEP_ONE -->
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label>{L_FIELD_TYPE}:</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
<dd><b>{FIELD_TYPE}</b></dd>
</dl>
<dl>
<dt><label for="field_ident">{L_FIELD_IDENT}:</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
<dd><input class="medium" type="text" id="field_ident" name="field_ident" value="{FIELD_IDENT}" /></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_LANG_SPECIFIC}</legend>
<dl>
<dt><label for="lang_name">{L_USER_FIELD_NAME}:</label></dt>
<dd><input class="medium" type="text" id="lang_name" name="lang_name" value="{LANG_NAME}" /></dd>
</dl>
<dl>
<dt><label for="lang_explain">{L_FIELD_DESCRIPTION}:</label><br /><span>{L_FIELD_DESCRIPTION_EXPLAIN}</span></dt>
<dd><textarea id="lang_explain" name="lang_explain" rows="3" cols="80">{LANG_EXPLAIN}</textarea></dd>
</dl>
<!-- IF S_TEXT or S_STRING -->
<dl>
<dt><label for="lang_default_value">{L_DEFAULT_VALUE}:</label><br /><span>{L_DEFAULT_VALUE_EXPLAIN}</span></dt>
<dd><!-- IF S_STRING --><input class="medium" type="text" id="lang_default_value" name="lang_default_value" value="{LANG_DEFAULT_VALUE}" /><!-- ELSE --><textarea id="lang_default_value" name="lang_default_value" rows="5" cols="80">{LANG_DEFAULT_VALUE}</textarea><!-- ENDIF --></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_BOOL or S_DROPDOWN -->
<dl>
<dt><label for="lang_options">{L_ENTRIES}:</label><br /><span>{L_LANG_OPTIONS_EXPLAIN}</span></dt>
<!-- IF S_DROPDOWN -->
<dd><textarea id="lang_options" name="lang_options" rows="5" cols="80">{LANG_OPTIONS}</textarea></dd>
<!-- ELSE -->
<dd><input class="medium" id="lang_options" name="lang_options[0]" value="{FIRST_LANG_OPTION}" /> {L_FIRST_OPTION}</dd>
<dd><input class="medium" name="lang_options[1]" value="{SECOND_LANG_OPTION}" /> {L_SECOND_OPTION}</dd>
<!-- ENDIF -->
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
<input class="button1" type="submit" name="next" value="{L_PROFILE_TYPE_OPTIONS}" />
</fieldset>
<!-- ELSEIF S_STEP_TWO -->
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="field_required">{L_REQUIRED_FIELD}:</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" id="field_required" name="field_required" value="1"<!-- IF S_FIELD_REQUIRED --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTRATION}:</label></dt>
<dd><input type="checkbox" id="field_show_on_reg" name="field_show_on_reg" value="1"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}:</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" id="field_hide" name="field_hide" value="1"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_no_view">{L_EXCLUDE_FROM_VIEW}:</label><br /><span>{L_EXCLUDE_FROM_VIEW_EXPLAIN}</span></dt>
<dd><input type="checkbox" id="field_no_view" name="field_no_view" value="1"<!-- IF S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<!-- BEGIN option -->
<dl>
<dt><label>{option.TITLE}:</label><!-- IF option.EXPLAIN --><br /><span>{option.EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{option.FIELD}</dd>
</dl>
<!-- END option -->
</fieldset>
<fieldset class="quick" style="float: left;">
<input class="button1" type="submit" name="prev" value="{L_PROFILE_BASIC_OPTIONS}" />
</fieldset>
<fieldset class="quick" style="float: right">
{S_HIDDEN_FIELDS}
<input class="button1" type="submit" name="update" value="{L_UPDATE_PREVIEW}" />&nbsp;
<input class="button1" type="submit" name="next" value="{L_NEXT}" />
</fieldset>
<br /><br />
<fieldset>
<legend>{L_PREVIEW_PROFILE_FIELD}</legend>
<!-- IF USER_ERROR --><p style="color: red;">{USER_ERROR}</p><!-- ELSE --><p style="color: green;">{L_EVERYTHING_OK}</p><!-- ENDIF -->
<dl>
<dt><label>{PREVIEW_LANG_NAME}:</label><!-- IF PREVIEW_LANG_EXPLAIN --><br /><span>{PREVIEW_LANG_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{PREVIEW_FIELD}</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
<!-- ELSEIF S_STEP_THREE -->
<!-- BEGIN options -->
<fieldset>
<legend>{options.LANGUAGE}</legend>
<!-- BEGIN field -->
<dl>
<dt><label>{options.field.L_TITLE}:</label><!-- IF options.field.L_EXPLAIN --><br /><span>{options.field.L_EXPLAIN}</span><!-- ENDIF --></dt>
{options.field.FIELD}
</dl>
<!-- END field -->
</fieldset>
<!-- END options -->
<fieldset class="quick" style="float: left;">
<input class="button1" type="submit" name="prev" value="{L_PROFILE_TYPE_OPTIONS}" />
</fieldset>
<fieldset class="quick" style="float: right;">
{S_HIDDEN_FIELDS}
<input class="button1" type="submit" name="save" value="{L_SAVE}" />
</fieldset>
<!-- ENDIF -->
</form>
<!-- ELSE -->
<h1>{L_ACP_CUSTOM_PROFILE_FIELDS}</h1>
<table cellspacing="1">
<thead>
<tr>
<th>{L_FIELD_IDENT}</th>
<th>{L_FIELD_TYPE}</th>
<th colspan="3">{L_OPTIONS}</th>
<th>{L_REORDER}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN fields -->
<!-- IF fields.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{fields.FIELD_IDENT}</td>
<td>{fields.FIELD_TYPE}</td>
<td><a href="{fields.U_ACTIVATE_DEACTIVATE}">{fields.L_ACTIVATE_DEACTIVATE}</a></td>
<td><a href="{fields.U_EDIT}"><!-- IF fields.S_NEED_EDIT --><span style="color:red">{L_EDIT}</span><!-- ELSE -->{L_EDIT}<!-- ENDIF --></a></td>
<td><a href="{fields.U_DELETE}">{L_DELETE}</a></td>
<td style="text-align: center;"><a href="{fields.U_MOVE_UP}">{L_MOVE_UP}</a> | <a href="{fields.U_MOVE_DOWN}">{L_MOVE_DOWN}</a></td>
</tr>
<!-- END fields -->
</tbody>
</table>
<form id="profile_fields" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="small" type="text" name="field_ident" /> <select name="field_type">{S_TYPE_OPTIONS}</select>
<input class="button1" type="submit" name="create" value="{L_CREATE_NEW_FIELD}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,103 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_PRUNED -->
<h1>{L_FORUM_PRUNE}</h1>
<p>{L_PRUNE_SUCCESS}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_FORUM}</th>
<th>{L_TOPICS_PRUNED}</th>
<th>{L_POSTS_PRUNED}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN pruned -->
<!-- IF pruned.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{pruned.FORUM_NAME}</td>
<td style="text-align: center;">{pruned.NUM_TOPICS}</td>
<td style="text-align: center;">{pruned.NUM_POSTS}</td>
</tr>
<!-- BEGINELSE -->
<tr>
<td class="row3" style="text-align: center;">{L_NO_PRUNE}</td>
</tr>
<!-- END pruned -->
</tbody>
</table>
<!-- ELSEIF S_SELECT_FORUM -->
<h1>{L_ACP_PRUNE_FORUMS}</h1>
<p>{L_ACP_PRUNE_FORUMS_EXPLAIN}</p>
<form id="acp_prune" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_SELECT_FORUM}</legend>
<dl>
<dd class="full"><select name="f[]" multiple="multiple" size="5">{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" value="{L_LOOK_UP_FORUM}" />
</fieldset>
</form>
<!-- ELSE -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_PRUNE_FORUMS}</h1>
<p>{L_ACP_PRUNE_FORUMS_EXPLAIN}</p>
<h2>{L_FORUM}</h2>
<p>{L_SELECTED_FORUMS}: {FORUM_LIST}</p>
<form id="acp_prune" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_FORUM_PRUNE}</legend>
<dl>
<dt><label for="prune_days">{L_PRUNE_NOT_POSTED}:</label></dt>
<dd><input type="text" id="prune_days" name="prune_days" /></dd>
</dl>
<dl>
<dt><label for="prune_vieweddays">{L_PRUNE_NOT_VIEWED}:</label></dt>
<dd><input type="text" id="prune_vieweddays" name="prune_vieweddays" /></dd>
</dl>
<dl>
<dt><label for="polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dd><input type="radio" name="prune_old_polls" value="1" /> {L_YES} &nbsp; <input type="radio" id="polls" name="prune_old_polls" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
<dd><input type="radio" name="prune_announce" value="1" /> {L_YES} &nbsp; <input type="radio" id="announce" name="prune_announce" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="sticky">{L_PRUNE_STICKY}:</label></dt>
<dd><input type="radio" name="prune_sticky" value="1" /> {L_YES} &nbsp; <input type="radio" id="sticky" name="prune_sticky" value="0" checked="checked" /> {L_NO}</dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,57 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_PRUNE_USERS}</h1>
<p>{L_ACP_PRUNE_USERS_EXPLAIN}</p>
<form id="acp_prune" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_PRUNE_USERS}</legend>
<dl>
<dt><label for="username">{L_USERNAME}:</label></dt>
<dd><input type="text" id="username" name="username" /></dd>
</dl>
<dl>
<dt><label for="email">{L_EMAIL}:</label></dt>
<dd><input type="text" id="email" name="email" /></dd>
</dl>
<dl>
<dt><label for="joined">{L_JOINED}:</label><br /><span>{L_JOINED_EXPLAIN}</span></dt>
<dd><select name="joined_select">{S_JOINED_OPTIONS}</select> <input type="text" id="joined" name="joined" /></dd>
</dl>
<dl>
<dt><label for="active">{L_LAST_ACTIVE}:</label><br /><span>{L_LAST_ACTIVE_EXPLAIN}</span></dt>
<dd><select name="active_select">{S_ACTIVE_OPTIONS}</select> <input type="text" id="active" name="active" /></dd>
</dl>
<dl>
<dt><label for="count">{L_POSTS}:</label></dt>
<dd><select name="count_select">{S_COUNT_OPTIONS}</select> <input type="text" id="count" name="count" /></dd>
</dl>
<dl>
<dt><label for="users">{L_ACP_PRUNE_USERS}:</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
<dd><textarea id="users" name="users" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="#" onclick="window.open('{U_FIND_USER}', '_phpbbsearch', 'height=500, resizable=yes, scrollbars=yes, width=740'); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
<dl>
<dt><label for="deleteposts">{L_DELETE_USER_POSTS}:</label><br /><span>{L_DELETE_USER_POSTS_EXPLAIN}</span></dt>
<dd><input type="radio" name="deleteposts" value="1" /> {L_YES}&nbsp;&nbsp;<input type="radio" id="deleteposts" name="deleteposts" value="0" checked="checked" /> {L_NO}</dd>
</dl>
<dl>
<dt><label for="deactivate">{L_DEACTIVATE_DELETE}:</label><br /><span>{L_DEACTIVATE_DELETE_EXPLAIN}</span></dt>
<dd><input type="radio" name="action" value="delete" /> {L_DELETE_USERS}&nbsp;&nbsp;<input type="radio" id="deactivate" name="action" value="deactivate" checked="checked" /> {L_DEACTIVATE}</dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<input type="hidden" name="prune" value="1" />
<input class="button1" type="submit" id="update" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,95 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<script type="text/javascript">
<!--
function update_image(newimage)
{
document.getElementById('image').src = (newimage) ? "{RANKS_PATH}/" + newimage : "./images/spacer.gif";
}
//-->
</script>
<h1>{L_ACP_MANAGE_RANKS}</h1>
<p>{L_ACP_RANKS_EXPLAIN}</p>
<form id="acp_ranks" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_RANKS}</legend>
<dl>
<dt><label for="title">{L_RANK_TITLE}:</label></dt>
<dd><input name="title" type="text" id="title" value="{RANK_TITLE}" /></dd>
</dl>
<dl>
<dt><label for="rank_image">{L_RANK_IMAGE}:</label></dt>
<dd><select name="rank_image" id="rank_image" onchange="update_image(this.options[selectedIndex].value);">{S_FILENAME_LIST}</select></dd>
<dd><img src="{RANK_IMAGE}" id="image" alt="" /></dd>
</dl>
<dl>
<dt><label for="special_rank">{L_RANK_SPECIAL}:</label></dt>
<dd><input onchange="dE('posts', -1)" type="radio" name="special_rank" value="1" id="special_rank"<!-- IF S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> />{L_YES} &nbsp;&nbsp;<input onchange="dE('posts', 1)" type="radio" name="special_rank" value="0"<!-- IF not S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> /> {L_NO}</dd>
</dl>
<!-- IF S_SPECIAL_RANK --><div id="posts" style="display: none;"><!-- ELSE --><div id="posts"><!-- ENDIF -->
<dl>
<dt><label for="min_posts">{L_RANK_MINIMUM}:</label></dt>
<dd><input name="min_posts" type="text" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
</dl>
</div>
</fieldset>
<fieldset class="submit-buttons">
<input type="hidden" name="action" value="save" />
<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>
<!-- ELSE -->
<h1>{L_ACP_MANAGE_RANKS}</h1>
<p>{L_ACP_RANKS_EXPLAIN}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_RANK_IMAGE}</th>
<th>{L_RANK_TITLE}</th>
<th>{L_RANK_MINIMUM}</th>
<th>{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN ranks -->
<!-- IF ranks.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE -->&nbsp; - &nbsp;<!-- ENDIF --></td>
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK -->&nbsp; - &nbsp;<!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
<td style="text-align: center;"><a href="{ranks.U_EDIT}">{L_EDIT}</a> | <a href="{ranks.U_DELETE}">{L_DELETE}</a></td>
</tr>
<!-- END ranks -->
</tbody>
</table>
<form id="acp_ranks" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="button2" name="add" type="submit" value="{L_ADD_RANK}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,442 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_SELECT_USER -->
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_ADMIN_EXPLAIN}</p>
<form id="select_user" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_SELECT_USER}</legend>
<dl>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input class="medium" type="text" id="username" name="username" /></dd>
<dd>[ <a href="#" onclick="window.open('{U_FIND_USERNAME}', '_phpbbsearch', 'height=500, resizable=yes, scrollbars=yes, width=740'); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input type="submit" name="submituser" value="{L_SUBMIT}" class="button1" />
</fieldset>
</form>
<!-- ELSEIF S_SELECT_FORUM -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_ADMIN_EXPLAIN}</p>
<form id="select_forum" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_USER_ADMIN_MOVE_POSTS}</legend>
<dl>
<dt><label for="new_forum">{L_USER_ADMIN_MOVE_POSTS}</label><br /><span>{L_MOVE_POSTS_EXPLAIN}</span></dt>
<dd><select id="new_forum" name="new_f">{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input type="submit" name="update" value="{L_SUBMIT}" class="button1" />
</fieldset>
</form>
<!-- ELSE -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_ADMIN_EXPLAIN}</p>
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="mode_select" method="post" action="{U_MODE_SELECT}">
<fieldset class="quick">
{L_SELECT_FORM}: <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select>
</fieldset>
</form>
<!-- ENDIF -->
<!-- IF S_OVERVIEW -->
<form id="user_overview" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ACP_USER_OVERVIEW}</legend>
<dl>
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_NAME_CHARS_EXPLAIN}</span></dt>
<dd><input type="text" id="user" name="user" value="{USER}" /></dd>
</dl>
<dl>
<dt><label>{L_REGISTERED}:</label></dt>
<dd><strong>{USER_REGISTERED}</strong></dd>
</dl>
<!-- IF S_USER_IP -->
<dl>
<dt><label>{L_REGISTERED_IP}:</label></dt>
<dd><a href="{U_SHOW_IP}">{REGISTERED_IP}</a></dd>
<dd>[ <a href="#" onclick="window.open('{U_WHOIS}', '_whois', 'height=500, resizable=yes, scrollbars=yes, width=700'); return false;">{L_WHOIS}</a> ]</strong></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label>{L_LAST_ACTIVE}:</label></dt>
<dd><strong>{USER_LASTACTIVE}</strong></dd>
</dl>
<dl>
<dt><label for="user_founder">{L_FOUNDER}:</label><br /><span>{L_FOUNDER_EXPLAIN}</span></dt>
<dd><input type="radio" name="user_founder" value="1"<!-- IF S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> />&nbsp;{L_YES}&nbsp; <input type="radio" name="user_founder" value="0"<!-- IF not S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> />&nbsp;{L_NO}&nbsp;</dd>
</dl>
<dl>
<dt><label for="user_email">{L_EMAIL}:</label></dt>
<dd><input class="medium" type="text" id="user_email" name="user_email" value="{USER_EMAIL}" /></dd>
</dl>
<dl>
<dt><label for="email_confirm">{L_CONFIRM_EMAIL}:</label><br /><span>{L_CONFIRM_EMAIL_EXPLAIN}</span></dt>
<dd><input class="medium" type="text" id="email_confirm" name="email_confirm" value="" /></dd>
</dl>
<dl>
<dt><label for="user_password">{L_NEW_PASSWORD}:</label><br /><span>{L_CHANGE_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="user_password" name="user_password" value="" /></dd>
</dl>
<dl>
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label><br /><span>{L_CONFIRM_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="password_confirm" name="password_confirm" value="" /></dd>
</dl>
<!-- IF not S_USER_FOUNDER or S_FOUNDER -->
</fieldset>
<fieldset>
<legend>{L_USER_TOOLS}</legend>
<dl>
<dt><label for="warnings">{L_WARNINGS}:</label><br /><span>{L_WARNINGS_EXPLAIN}</span></dt>
<dd><input type="text" id="warnings" name="warnings" value="{USER_WARNINGS}" size="2" /></dd>
</dl>
<dl>
<dt><label for="quicktools">{L_QUICK_TOOLS}:</label></dt>
<dd><select id="quicktools" name="action">{S_ACTION_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="delete_user">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
<dd><input type="checkbox" name="delete" value="1" /></dd>
<dd><select id="delete_user" name="delete_type"><option value="retain">{L_RETAIN_POSTS}</option><option value="remove">{L_DELETE_POSTS}</option></select></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ELSEIF S_FEEDBACK -->
<form id="list" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: left;">
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<div class="clearfix"></div>
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF PAGINATION -->
<a href="javascript:jumpto();" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<!-- ELSE -->
{S_ON_PAGE}
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- IF .log -->
<table cellspacing="1">
<thead>
<tr>
<th>{L_REPORT_BY}</th>
<th>{L_IP}</th>
<th>{L_TIME}</th>
<th>{L_ACTION}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN log -->
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{log.USERNAME}</td>
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
<td>
{log.ACTION}
<!-- IF log.DATA --><br />&#187; <span class="gensmall">[ {log.DATA} ]</span><!-- ENDIF -->
</td>
<td style="text-align: center;"><input type="checkbox" name="mark[]" value="{log.ID}" /></td>
</tr>
<!-- END log -->
</tbody>
</table>
<!-- ELSE -->
<div class="errorbox">
<p>{L_NO_ENTRIES}</p>
</div>
<!-- ENDIF -->
<!-- IF S_CLEARLOGS -->
<fieldset class="quick">
<b class="small"><a href="#" onclick="marklist('list', true);">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('list', false);">{L_UNMARK_ALL}</a></b><br />
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />&nbsp;
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />&nbsp;
</fieldset>
<!-- ENDIF -->
<h1>{L_ADD_FEEDBACK}</h1>
<p>{L_ADD_FEEDBACK_EXPLAIN}</p>
<fieldset>
<legend>{L_ACP_USER_FEEDBACK}</legend>
<dl>
<dd class="full"><textarea name="message" id="message" rows="10" cols="76"></textarea></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ELSEIF S_PROFILE -->
<form id="user_profile" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_USER_PROFILE}</legend>
<dl>
<dt><label for="icq">{L_UCP_ICQ}:</label></dt>
<dd><input type="text" id="icq" name="icq" value="{ICQ}" /></dd>
</dl>
<dl>
<dt><label for="aim">{L_UCP_AIM}:</label></dt>
<dd><input type="text" id="aim" name="aim" value="{AIM}" /></dd>
</dl>
<dl>
<dt><label for="msn">{L_UCP_MSNM}:</label></dt>
<dd><input type="text" id="msn" name="msn" value="{MSN}" /></dd>
</dl>
<dl>
<dt><label for="yim">{L_UCP_YIM}:</label></dt>
<dd><input type="text" id="yim" name="yim" value="{YIM}" /></dd>
</dl>
<dl>
<dt><label for="jabber">{L_UCP_JABBER}:</label></dt>
<dd><input type="text" id="jabber" name="jabber" value="{JABBER}" /></dd>
</dl>
<dl>
<dt><label for="website">{L_WEBSITE}:</label></dt>
<dd><input type="text" id="website" name="website" value="{WEBSITE}" /></dd>
</dl>
<dl>
<dt><label for="location">{L_LOCATION}:</label></dt>
<dd><input type="text" id="location" name="location" value="{LOCATION}" /></dd>
</dl>
<dl>
<dt><label for="occupation">{L_OCCUPATION}:</label></dt>
<dd><textarea id="occupation" name="occupation" rows="3" cols="30">{OCCUPATION}</textarea></dd>
</dl>
<dl>
<dt><label for="interests">{L_INTERESTS}:</label></dt>
<dd><textarea id="interests" name="interests" rows="3" cols="30">{INTERESTS}</textarea></dd>
</dl>
<dl>
<dt><label for="birthday">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
</dl>
</fieldset>
<!-- IF .profile_fields -->
<fieldset>
<legend>{L_USER_CUSTOM_PROFILE_FIELDS}</legend>
<!-- BEGIN profile_fields -->
<dl>
<dt><label>{profile_fields.LANG_NAME}:</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{profile_fields.FIELD}</dd>
<!-- IF profile_fields.ERROR -->
<dd><span class="small" style="color: red;">{profile_fields.ERROR}</span></dd>
<!-- ENDIF -->
</dl>
<!-- END profile_fields -->
</fieldset>
<!-- ENDIF -->
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ELSEIF S_PREFS -->
<form id="user_prefs" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_UCP_PREFS_PERSONAL}</legend>
<dl>
<dt><label for="viewemail">{L_SHOW_EMAIL}:</label></dt>
<dd><input type="radio" name="viewemail" value="1"<!-- IF VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="viewemail" value="0"<!-- IF not VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="massemail">{L_ADMIN_EMAIL}:</label></dt>
<dd><input type="radio" name="massemail" value="1"<!-- IF MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="massemail" value="0"<!-- IF not MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="allowpm">{L_ALLOW_PM}:</label><br /><span>{L_ALLOW_PM_EXPLAIN}</span></dt>
<dd><input type="radio" name="allowpm" value="1"<!-- IF ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="allowpm" value="0"<!-- IF not ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="hideonline">{L_HIDE_ONLINE}:</label></dt>
<dd><input type="radio" name="hideonline" value="1"<!-- IF HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="hideonline" value="0"<!-- IF not HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="notifymethod">{L_NOTIFY_METHOD}:</label><br /><span>{L_NOTIFY_METHOD_EXPLAIN}</span></dt>
<dd><input type="radio" name="notifymethod" value="0"<!-- IF NOTIFY_EMAIL --> id="notifymethod" checked="checked"<!-- ENDIF --> />&nbsp; {L_NOTIFY_METHOD_EMAIL} &nbsp;<input type="radio" name="notifymethod" value="1"<!-- IF NOTIFY_IM --> id="notifymethod" checked="checked"<!-- ENDIF --><!-- IF S_JABBER_DISABLED --> disabled="disabled"<!-- ENDIF --> />&nbsp; {L_NOTIFY_METHOD_IM} &nbsp;<input type="radio" name="notifymethod" value="2"<!-- IF NOTIFY_BOTH --> id="notifymethod" checked="checked"<!-- ENDIF --> />&nbsp; {L_NOTIFY_METHOD_BOTH}</dd>
</dl>
<dl>
<dt><label for="notifypm">{L_NOTIFY_ON_PM}:</label></dt>
<dd><input type="radio" name="notifypm" value="1"<!-- IF NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="notifypm" value="0"<!-- IF not NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="popuppm">{L_POPUP_ON_PM}:</label></dt>
<dd><input type="radio" name="popuppm" value="1"<!-- IF POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="popuppm" value="0"<!-- IF not POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> />{L_NO}</dd>
</dl>
<dl>
<dt><label for="report_pm_notify">{L_REPORT_PM_NOTIFY}:</label><br /><span>{L_REPORT_PM_NOTIFY_EXPLAIN}</span></dt>
<dd><input type="radio" name="report_pm_notify" value="1"<!-- IF REPORT_PM_NOTIFY --> id="report_pm_notify" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="report_pm_notify" value="0"<!-- IF not REPORT_PM_NOTIFY --> id="report_pm_notify" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="lang">{L_BOARD_LANGUAGE}:</label></dt>
<dd><select id="lang" name="lang">{S_LANG_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="style">{L_BOARD_STYLE}:</label></dt>
<dd><select id="style" name="style">{S_STYLE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="tz">{L_BOARD_TIMEZONE}:</label></dt>
<dd><select id="tz" name="tz">{S_TZ_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="dst">{L_BOARD_DST}:</label></dt>
<dd><input type="radio" name="dst" value="1"<!-- IF DST --> id="dst" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="dst" value="0"<!-- IF not DST --> id="dst" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="dateoptions">{L_BOARD_DATE_FORMAT}:</label><br /><span>{L_BOARD_DATE_FORMAT_EXPLAIN}</span></dt>
<dd><select name="dateoptions" id="dateoptions" onchange="if(this.value=='custom'){dE('custom_date',1);}else{dE('custom_date',-1);} if (this.value == 'custom') { document.getElementById('dateformat').value = '{DEFAULT_DATEFORMAT}'; } else { document.getElementById('dateformat').value = this.value; }">{S_DATEFORMAT_OPTIONS}</select></dd>
<dd><div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" /></div></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_UCP_PREFS_POST}</legend>
<dl>
<dt><label for="bbcode">{L_DEFAULT_BBCODE}:</label></dt>
<dd><input type="radio" name="bbcode" value="1"<!-- IF BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="bbcode" value="0"<!-- IF not BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="html">{L_DEFAULT_HTML}:</label></dt>
<dd><input type="radio" name="html" value="1"<!-- IF HTML --> id="html" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="html" value="0"<!-- IF HTML --> id="html" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="smilies">{L_DEFAULT_SMILIES}:</label></dt>
<dd><input type="radio" name="smilies" value="1"<!-- IF SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="smilies" value="0"<!-- IF not SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="sig">{L_DEFAULT_ADD_SIG}:</label></dt>
<dd><input type="radio" name="sig" value="1"<!-- IF ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="sig" value="0"<!-- IF not ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="notify">{L_DEFAULT_NOTIFY}:</label></dt>
<dd><input type="radio" name="notify" value="1"<!-- IF NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="notify" value="0"<!-- IF not NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_UCP_PREFS_VIEW}</legend>
<dl>
<dt><label for="view_images">{L_VIEW_IMAGES}:</label></dt>
<dd><input type="radio" name="view_images" value="1"<!-- IF VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_images" value="0"<!-- IF not VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="view_flash">{L_VIEW_FLASH}:</label></dt>
<dd><input type="radio" name="view_flash" value="1"<!-- IF VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_flash" value="0"<!-- IF not VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="view_smilies">{L_VIEW_SMILIES}:</label></dt>
<dd><input type="radio" name="view_smilies" value="1"<!-- IF VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_smilies" value="0"<!-- IF not VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="view_sigs">{L_VIEW_SIGS}:</label></dt>
<dd><input type="radio" name="view_sigs" value="1"<!-- IF VIEW_SIGS --> id="view_sigs" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_sigs" value="0"<!-- IF not VIEW_SIGS --> id="view_sigss" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="view_avatars">{L_VIEW_AVATARS}:</label></dt>
<dd><input type="radio" name="view_avatars" value="1"<!-- IF VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_avatars" value="0"<!-- IF not VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label for="view_wordcensor">{L_DISABLE_CENSORS}:</label></dt>
<dd><input type="radio" name="view_wordcensor" value="1"<!-- IF VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> />&nbsp; {L_YES} &nbsp;<input type="radio" name="view_wordcensor" value="0"<!-- IF not VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> />&nbsp; {L_NO}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_DAYS}:</label></dt>
<dd>{S_TOPIC_SORT_DAYS}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_KEY}:</label></dt>
<dd>{S_TOPIC_SORT_KEY}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_DIR}:</label></dt>
<dd>{S_TOPIC_SORT_DIR}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_DAYS}:</label></dt>
<dd>{S_POST_SORT_DAYS}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_KEY}:</label></dt>
<dd>{S_POST_SORT_KEY}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_DIR}:</label></dt>
<dd>{S_POST_SORT_DIR}</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,72 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT_WORD -->
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_WORDS}</h1>
<p>{L_ACP_WORDS_EXPLAIN}</p>
<form id="acp_words" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_EDIT_WORD}</legend>
<dl>
<dt><label for="word">{L_WORD}</label></dt>
<dd><input id="word" type="text" name="word" value="{WORD}" /></dd>
</dl>
<dl>
<dt><label for="replacement">{L_REPLACEMENT}</label></dt>
<dd><input id="replacement" type="text" name="replacement" value="{REPLACEMENT}" /></dd>
</dl>
{S_HIDDEN_FIELDS}
</fieldset>
<fieldset class="submit-buttons">
<input class="button1" type="submit" id="submit" name="save" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</fieldset>
</form>
<!-- ELSE -->
<h1>{L_ACP_WORDS}</h1>
<p>{L_ACP_WORDS_EXPLAIN}</p>
<table cellspacing="1">
<thead>
<tr>
<th>{L_WORD}</th>
<th>{L_REPLACEMENT}</th>
<th colspan="2">{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN words -->
<!-- IF words.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{words.WORD}</td>
<td style="text-align: center;">{words.REPLACEMENT}</td>
<td>&nbsp;<a href="{words.U_EDIT}">{L_EDIT}</a>&nbsp;</td>
<td>&nbsp;<a href="{words.U_DELETE}">{L_DELETE}</a>&nbsp;</td>
</tr>
<!-- END words -->
</tbody>
</table>
<form id="acp_words" method="post" action="{U_ACTION}">
<fieldset class="quick">
{S_HIDDEN_FIELDS}
<input class="button2" name="add" type="submit" value="{L_ADD_WORD}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

794
phpBB/adm/style/admin.css Normal file
View File

@ -0,0 +1,794 @@
/* phpBB 3.0 Admin Style Sheet
-------------------------------------------------
Author: subBlue (http://www.subBlue.com/)
(c) 2005 phpBB Group
-------------------------------------------------*/
/* General markup styles
---------------------------------------- */
* {
margin: 0;
padding: 0;
font-size: 100%;
}
body, div, p, th, td, li, dd {
font-size: x-small;
voice-family: "\"}\"" inherit;
font-size: small
}
html>body, html>div, html>p, html>th, html>td, html>li, html>dd {
font-size: small
}
body {
font-family: Verdana, Arial, Helvetica, sans-serif;;
color: #000;
background-image: url(../images/bg_header.jpg);
background-repeat: repeat-x;
background-color: #E4EDF0;
margin: 0;
}
/* Always show a scrollbar for short pages - stops the jump when the scrollbar appears. non-ie browsers */
html {
height: 100%;
margin-bottom: 1px;
}
img {
border: 0;
}
/* Adjust */
#page-header h1 {
font-family: Verdana, Arial, Helvetica, sans-serif;;
font-size: 170%;
font-weight: normal;
color: #12749B;
}
#content h1 {
font: bold 18pt 'Trebuchet MS', Verdana, sans-serif;
text-decoration: none;
line-height: 120%;
margin-bottom: 0px;
}
h2, caption {
font: bold 12pt Arial, Helvetica, sans-serif;
text-decoration: none;
line-height: 120%;
text-align: left;
margin-top: 25px;
}
p {
margin-bottom: 0.7em;
line-height: 140%;
font-size: 90%;
}
hr {
border: 0 none;
border-top: 1px solid #999999;
margin-bottom: 5px;
padding-bottom: 5px;
height: 1px;
}
.small {
font-size: 85%;
}
/* General links */
a:link, a:active, a:visited {
color: #006699;
text-decoration: none;
}
a:hover {
color: #DD6900;
text-decoration: underline;
}
/* Main blocks
---------------------------------------- */
#page-header {
clear: both;
text-align: right;
font-size: 85%;
height: 60px;
padding-right: 20px;
}
#page-header p {
font-size: 100%;
}
#page-body {
clear: both;
min-width: 700px;
}
#page-footer {
clear: both;
font-size: 75%;
text-align: center;
}
#logo {
float: left;
width: auto;
margin-left: 4px;
margin-bottom: 5px;
}
#content {
padding: 30px 10px 10px 10px;
}
#main {
float:left;
width: 76%;
margin-left: 3%;
min-height: 350px;
}
* html #main {
height: 350px;
}
/* Tabbed menu
Based on: http://www.alistapart.com/articles/slidingdoors2/
----------------------------------------*/
#tabs {
line-height: normal;
margin-left: 27px;
margin-bottom: -5px;
min-width: 600px;
}
* html #tabs {
width: 700px;
}
#tabs ul {
list-style: none;
}
#tabs li {
display: inline;
font-size: 85%;
font-weight: bold;
text-transform: capitalize;
}
#tabs a {
float: left;
background-color: #C7D0D7;
margin-right: 2px;
padding-left: 7px;
text-decoration: none;
font-size: 100%;
position: relative;
border: solid 1px #A9B8C2;
background-image: url(../images/cellpic1.gif);
}
#tabs a span {
float: left;
display: block;
padding: 7px 10px 4px 4px;
color: #006699;
white-space: nowrap;
font-family: Arial, Helvetica, sans-serif;
text-transform: uppercase;
font-weight: bold;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
#tabs a span { float:none; }
/* End hack */
#tabs a:hover {
background-color: #EFEFEF;
}
#tabs #activetab a {
border: solid 1px #A9B8C2;
border-bottom: 1px solid #FFF;
background-color: #fff;
background-image: none;
}
#tabs #activetab a span {
padding-bottom: 4px;
background-color: #fff;
color: #006699;
}
#tabs #activetab a:hover {
color: #FFA34F;
}
/* box
---------------------------------------- */
.box {
margin: 4px 20px;
padding: 1px;
min-width: 550px;
background-color: #FFFFFF;
border: solid 1px #A9B8C2;
}
.innerbox {
background-color: #FFFFFF;
}
/* Sub-navigation Menu
---------------------------------------- */
#menu {
float: left;
width: 20%;
font-size: 100%;
padding: 0;
}
#menu p {
font-size: 85%;
}
#menu ul {
margin:0;
padding:0;
list-style:none;
background-color: #ECECEC;
border: solid 1px #A9B8C2;
}
/* Default list state */
#menu li {
margin: 1px 0;
padding: 0; margin: 0;
font-size: 10px;
font-weight: bold;
display: inline;
}
/* Link styles for the sub-section links */
#menu li a, #menu li a:link, #menu li a:active, #menu li a:visited {
display: block;
padding: 2px 2px 2px 10px;
margin: 1px 0;
text-decoration:none;
font-weight: normal;
color: #006699;
font-weight: bold;
}
#menu li a:active {
color: #000;
}
#menu li a:hover {
text-decoration: underline;
color: #DD6900;
}
#menu li.header {
display: block;
font-weight: bold;
color: #115098;
padding: 5px 0;
font-size: 11px;
font-family: Verdana;
text-align: center;
color: #FFA34F;
font-weight: bold; background-color: #006699;
background-image: url("../images/cellpic3.gif");
background-repeat: repeat-x;
}
#menu li#activemenu a, #menu li#activemenu a:link, #menu li#activemenu a:active, #menu li#activemenu a:visited {
text-decoration: none;
font-weight: bold;
color: #000;
}
#menu li#activemenu a:hover {
text-decoration: none;
color: #000;
}
/* Table styles
---------------------------------------- */
table {
width: 100%;
background-color: #ACBBC6
}
th, td {
font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
}
th {
height: 25px;
background-color: #006699;
color: #FFA34F;
font-weight: bold;
font-size: 11px;
background-image: url("../images/cellpic3.gif") !important;
}
td {
text-align: left;
font-size: 85%;
padding: 4px;
line-height: 120%;
}
.row1 { background-color: #EFEFEF; }
.row2 { background-color: #DEE3E7; }
.row3 { background-color: #D1D7DC; }
.col1 { background-color: #DEE3E7; }
.col2 { background-color: #EFEFEF; }
.spacer {
background-color: #D1D7DC;
height: 1px;
line-height: 1px;
}
/* General form styles
----------------------------------------*/
fieldset {
margin: 15px 0;
padding: 10px;
border-top: 1px solid #D7D7D7;
border-right: 1px solid #CCCCCC;
border-bottom: 1px solid #CCCCCC;
border-left: 1px solid #D7D7D7;
background-color: #ECECEC;
position: relative;
}
* html fieldset {
padding: 0 10px 5px 10px;
}
fieldset p {
font-size: 85% !important;
}
legend {
padding: 1px 0;
font-family: arial,Verdana,Sans-serif;
font-size: 12px;
font-weight: bold;
color: #006699;
position: relative;
text-transform: capitalize;
line-height: 100%;
top: 0em;
vertical-align:middle;
}
/* Hide from macIE \*/
legend { top: -1.2em; }
/* end */
* html legend {
margin-bottom: -10px;
margin-left: -7px;
}
input {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 90%;
font-weight: normal;
cursor: pointer;
vertical-align: middle;
}
optgroup, select {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 85%;
font-weight: normal;
font-style: normal;
cursor: pointer;
vertical-align: middle;
width: auto;
}
optgroup {
font-size: 100%;
font-weight: bold;
}
.sep {
color: white;
background-color: #006699;
}
textarea {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 85%;
width: 60%;
padding: 2px;
}
label {
cursor:pointer;
font-size: 85%;
padding-right: 5px;
}
label input {
font-size: 100%;
vertical-align: middle;
}
label img {
vertical-align: middle;
}
fieldset.quick {
margin: 0 0 5px 0;
padding: 5px 0 0 0;
border: none;
background-color: transparent;
text-align: right;
}
fieldset.nobg {
margin: 15px 0 0 0;
padding: 0;
border: none;
background-color: transparent;
}
fieldset.display-options {
margin: 15px 0 2px 0;
padding: 0 0 4px 0;
border: none;
background-color: transparent;
text-align: center;
font-size: 75%;
}
fieldset.display-options select, fieldset.display-options input, fieldset.display-options label {
font-size: 100%;
vertical-align: middle;
}
select option.disabled {
background-color: #bbb;
color: #fff;
}
/* Definition list layout for forms
Other general def. list properties defined in prosilver_main.css
---------------------------------------- */
dl {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 100%;
}
dt {
float: left;
width: auto;
}
dd { color: #000; }
dd + dd { margin-top: 4px; }
dt span { padding-right: 5px; }
dt label {
font-size: 100%;
text-align: left;
font-weight: bold;
}
dd label {
font-size: 100%;
white-space: nowrap;
margin-right: 10px;
}
html>body dd label input { vertical-align: text-bottom; } /* Tweak for Moz to align checkboxes/radio buttons nicely */
dd input, dd textarea { font-size: 90%; }
dd select {
width: auto;
font-size: 100%;
}
dd textarea {
width: 90%;
}
fieldset dl {
font-size: 85%;
margin-bottom: 10px;
}
fieldset dt {
width: 45%;
text-align: left;
border-right: 1px solid #CCC;
padding-top: 3px;
}
fieldset dd {
margin-left: 45%;
padding-left: 5px;
font-size: 100% !important;
border-left: 1px solid #CCC;
vertical-align: top;
}
dd.full {
margin-left: 0;
border: 0;
padding-left: 0;
padding-top: 3px;
text-align: center;
width: 95%;
}
/* Hover highlights for form rows */
fieldset dl:hover dt {
border-right-color: #ccc;
}
fieldset dl:hover dd {
border-left-color: #ccc;
}
fieldset dl dd label:hover {
color: #ccc;
}
/* Submit button fieldset
---------------------------------------- */
fieldset.submit-buttons {
text-align: center;
background-image: url(../images/cellpic1.gif);
margin: 0;
padding: 4px;
border: solid 1px #A9B8C2;
margin-top: -1px;
}
fieldset.submit-buttons input {
padding: 3px 2px;
}
/* Input field styles
---------------------------------------- */
.inputbox {
border-left: 1px solid #AFAEAA;
border-top: 1px solid #AFAEAA;
border-right: 1px solid #D5D5C8;
border-bottom: 1px solid #D5D5C8;
background-color: #E3DFD8;
color: #111111;
font-size: 100%;
padding:2px;
cursor: text;
width: 75%;
}
select.inputbox {
cursor: pointer;
padding: 0;
width: auto;
}
.inputbox:hover {
border-left: 1px solid #AFAEAA;
border-top: 1px solid #AFAEAA;
border-right: 1px solid #AFAEAA;
border-bottom: 1px solid #AFAEAA;
background-color: #E9E9E2;
}
.inputbox:focus {
border: 1px solid #BC2A4D;
background-color: #E9E9E2;
color: #BC2A4D;
}
input.full, textarea.full { width: 99%; }
* html input.full, * html textarea.full { width: 95%; }
input.medium { width: 50%; }
input.narrow { width: 25%; }
input.tiny { width: 10%; }
input.autowidth { width: auto !important; }
.box2 .inputbox { background-color: #E9E9E9; }
/* Pagination
---------------------------------------- */
.pagination {
height: 1%; /* IE tweak (holly hack) */
width: auto;
text-align: right;
margin-top: 5px;
font-size: 85%;
padding-bottom: 2px;
}
.pagination strong, .pagination b {
font-weight: normal;
}
.pagination span strong {
padding: 0 2px;
margin: 0 2px;
font-weight: normal;
color: #FFFFFF;
background: #069;
border: 1px solid #069;
}
.pagination span a, .pagination span a:link, .pagination span a:visited, .pagination span a:active {
font-weight: normal;
text-decoration: none;
color: #5C758C;
margin: 0 2px;
padding: 0 2px;
background: #ECEDEE;
border: 1px solid #B4BAC0;
}
.pagination span a:hover {
border-color: #069;
background: #069;
color: #FFF;
text-decoration: none;
}
.pagination img {
vertical-align: middle;
}
/* Form button styles
---------------------------------------- */
a.button1, input.button1, input.button3,
a.button2, input.button2 {
width: auto !important;
padding: 1px 3px;
font-family: Verdana, Helvetica, Arial, sans-serif;
color: #000;
font-size: 85%;
background: #FAFAFA;
}
a.button1, input.button1 {
font-weight: bold;
border: 1px solid #666666;
}
/* Alternative button */
a.button2, input.button2 {
border: 1px solid #666666;
}
/* <a> button in the style of the form buttons */
a.button1, a.button1:link, a.button1:visited, a.button1:active,
a.button2, a.button2:link, a.button2:visited, a.button2:active {
text-decoration: none;
color: #000000;
padding: 4px 8px;
}
/* Success highlighting
---------------------------------------- */
.success {
color: #282 !important;
}
.successbox {
padding: 0px;
margin: 37px 0;
font-size: 100%;
background-color: #ECECEC;
color: #282;
text-align: center;
font-weight: bold;
}
* html .sucessbox { height: 1%; } /* Pixel shift fix for IE */
.successbox h3 {
font-size: 11px;
color: #FFA34F;
font-weight: bold;
background-color: #006699;
background-image: url('../images/cellpic3.gif');
background-repeat: repeat-x;
padding: 5px 0;
}
.successbox p {
margin: 20px;
font-size: 12px;
}
.successbox a:link, .errorbox a:active, .errorbox a:visited {
text-decoration: none;
}
.successbox a:hover {
text-decoration: none;
}
/* Error highlighting
---------------------------------------- */
.error {
color: #BC2A4D !important;
}
.errorbox {
padding: 0px;
margin: 37px 0;
font-size: 100%;
background-color: #ECECEC;
color: #BC2A4D;
text-align: center;
font-weight: bold;
}
* html .errorbox { height: 1%; } /* Pixel shift fix for IE */
.errorbox h3 {
font-size: 11px;
color: #FFA34F;
font-weight: bold;
background-color: #006699;
background-image: url('../images/cellpic3.gif');
background-repeat: repeat-x;
padding: 5px 0;
}
.errorbox p {
margin: 20px;
font-size: 12px;
}
.errorbox a:link, .errorbox a:active, .errorbox a:visited {
text-decoration: none;
}
.errorbox a:hover {
text-decoration: none;
}
/* Nice method for clearing floated blocks without having to insert any extra markup
From http://www.positioniseverything.net/easyclearing.html */
.clearfix:after, #tabs:after, .row:after, #content:after, fieldset dl:after, #page-body:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* Hide from Mac IE, Windows IE uses this as it doesn't support the :after method above \*/
* html .clearfix, * html #tabs, * html .row, * html #content, * html fieldset dl, #page-body {
height: 1%;
}
/* End hide */

View File

@ -0,0 +1,20 @@
<!-- INCLUDE overall_header.html -->
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
<fieldset>
<h2>{MESSAGE_TITLE}</h2>
<p>{MESSAGE_TEXT}</p>
{S_HIDDEN_FIELDS}
<div style="text-align: center;">
<input type="submit" name="confirm" value="{L_YES}" class="button2" />&nbsp;
<input type="submit" name="cancel" value="{L_NO}" class="button2" />
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,32 @@
<!-- BEGIN dropdown -->
<select name="{dropdown.FIELD_IDENT}">
<!-- BEGIN options --><option value="{dropdown.options.OPTION_ID}"{dropdown.options.SELECTED}>{dropdown.options.VALUE}</option><!-- END options -->
</select>
<!-- END dropdown -->
<!-- BEGIN text -->
<textarea name="{text.FIELD_IDENT}" rows="{text.FIELD_ROWS}" cols="{text.FIELD_COLS}">{text.FIELD_VALUE}</textarea>
<!-- END text -->
<!-- BEGIN string -->
<input type="text" name="{string.FIELD_IDENT}" size="{string.FIELD_LENGTH}" maxlength="{string.FIELD_MAXLEN}" value="{string.FIELD_VALUE}" />
<!-- END string -->
<!-- BEGIN bool -->
<!-- IF bool.FIELD_LENGTH eq 1 -->
<!-- BEGIN options --><input type="radio" name="{bool.FIELD_IDENT}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}&nbsp; &nbsp;<!-- END options -->
<!-- ELSE -->
<input type="checkbox" name="{bool.FIELD_IDENT}"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
<!-- ENDIF -->
<!-- END bool -->
<!-- BEGIN int -->
<input type="text" name="{int.FIELD_IDENT}" size="{int.FIELD_LENGTH}" value="{int.FIELD_VALUE}" />
<!-- END int -->
<!-- BEGIN date -->
<span>{L_DAY}:</span> <select name="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
<span>{L_MONTH}:</span> <select name="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
<span>{L_YEAR}:</span> <select name="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
<!-- END date -->

View File

@ -0,0 +1,8 @@
<!-- INCLUDE overall_header.html -->
<div class="errorbox">
<h3>{MESSAGE_TITLE}</h3>
<p>{MESSAGE_TEXT}</p>
</div>
<!-- INCLUDE overall_footer.html -->

View File

@ -0,0 +1,34 @@
<br /><br />
<!-- End page content -->
</div>
</div>
<div class="corner3"></div><div class="corner4"></div>
</div></div>
</div>
<!--
We request you retain the full copyright notice below including the link to www.phpbb.com.
This not only gives respect to the large amount of time given freely by the developers
but also helps build interest, traffic and use of phpBB2. If you (honestly) cannot retain
the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
forums may be affected.
The phpBB Group : 2004
// -->
<div id="page-footer">
<!-- IF S_COPYRIGHT_HTML -->
Powered by phpBB {VERSION} &copy; 2005 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- ENDIF -->
<!-- IF DEBUG_OUTPUT -->
<!-- IF S_COPYRIGHT_HTML --><br /><br /><!-- ENDIF -->
{DEBUG_OUTPUT}
<!-- ENDIF -->
</div>
</body>
</html>

View File

@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>
<link href="style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
<!--
var jump_page = '{L_JUMP_PAGE}:';
var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}';
var base_url = '{BASE_URL}';
// Jump to page
function jumpto()
{
var page = prompt(jump_page, on_page);
if (page !== null && !isNaN(page) && page > 0)
{
document.location.href = base_url.replace('&amp;', '&') + '&start=' + ((page - 1) * per_page);
}
}
// Set display of page element
// s[-1,0,1] = hide,toggle display,show
function dE(n,s)
{
var e = document.getElementById(n);
if(!s) s = (e.style.display=='') ? -1:1;
e.style.display = (s==1) ? 'block':'none';
}
function marklist(match, status)
{
doc = document.getElementById(match);
for (i = 0; i < doc.length; i++)
{
doc.elements[i].checked = status;
}
}
<!-- IF S_INCLUDE_SWATCH -->
function swatch()
{
window.open('{U_SWATCH}', '_swatch', 'height=115, resizable=yes, scrollbars=no, width=636');
return false;
}
<!-- ENDIF -->
//-->
</script>
</head>
<body>
<div id="page-header">
<a href="{U_INDEX}" title="{L_FORUM_INDEX}"><img src="{ROOT_PATH}images/logo.gif" id="logo" alt="phpBB Creating Communities" /></a>
<h1>{L_ADMIN_PANEL}</h1>
<p><a href="{U_ADM_INDEX}">{L_ADMIN_INDEX}</a> &bull; <a href="{U_INDEX}">{L_FORUM_INDEX}</a></p>
</div>
<div id="page-body">
<div id="tabs">
<ul>
<!-- BEGIN t_block1 -->
<li<!-- IF t_block1.S_SELECTED --> id="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>
<!-- END t_block1 -->
</ul>
</div>
<div class="box"><div class="innerbox">
<div class="corner1"></div><div class="corner2"></div>
<div id="content">
<div id="menu">
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;]</p>
<ul>
<!-- BEGIN l_block1 -->
<!-- IF l_block1.S_SELECTED -->
<!-- BEGIN l_block2 -->
<!-- IF .l_block1.l_block2.l_block3 -->
<li class="header">{l_block1.l_block2.L_TITLE}</li>
<!-- ENDIF -->
<!-- BEGIN l_block3 -->
<li<!-- IF l_block1.l_block2.l_block3.S_SELECTED --> id="activemenu"<!-- ENDIF -->><a href="{l_block1.l_block2.l_block3.U_TITLE}"><span>{l_block1.l_block2.l_block3.L_TITLE}</span></a></li>
<!-- END l_block3 -->
<!-- END l_block2 -->
<!-- ENDIF -->
<!-- END l_block1 -->
</ul>
</div>
<div id="main">
<!-- Start page content -->

View File

@ -0,0 +1,8 @@
<!-- INCLUDE simple_header.html -->
<div class="errorbox">
<h3>{MESSAGE_TITLE}</h3>
<p>{MESSAGE_TEXT}</p>
</div>
<!-- INCLUDE simple_footer.html -->

View File

@ -0,0 +1,30 @@
<div style="text-align: right;"><a href="#" onclick="javascript: self.close();">{L_CLOSE_WINDOW}</a></div>
<br /><br />
</div>
<!--
We request you retain the full copyright notice below including the link to www.phpbb.com.
This not only gives respect to the large amount of time given freely by the developers
but also helps build interest, traffic and use of phpBB2. If you (honestly) cannot retain
the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
forums may be affected.
The phpBB Group : 2004
// -->
<div id="page-footer">
<!-- IF S_COPYRIGHT_HTML -->
<br />Powered by phpBB {VERSION} &copy; 2005 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- ENDIF -->
<!-- IF DEBUG_OUTPUT -->
<!-- IF S_COPYRIGHT_HTML --><br /><br /><!-- ENDIF -->
{DEBUG_OUTPUT}
<!-- ENDIF -->
</div>
</body>
</html>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<!-- IF META -->{META}<!-- ENDIF -->
<title>{PAGE_TITLE}</title>
<link href="style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
<!--
var jump_page = '{L_JUMP_PAGE}:';
var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}';
var base_url = '{BASE_URL}';
// Jump to page
function jumpto()
{
var page = prompt(jump_page, on_page);
if (page !== null && !isNaN(page) && page > 0)
{
document.location.href = base_url.replace('&amp;', '&') + '&start=' + ((page - 1) * per_page);
}
}
// Set display of page element
// s[-1,0,1] = hide,toggle display,show
function dE(n,s)
{
var e = document.getElementById(n);
if(!s) s = (e.style.display=='') ? -1:1;
e.style.display = (s==1) ? 'block':'none';
}
function marklist(match, status)
{
doc = document.getElementById(match);
for (i = 0; i < doc.length; i++)
{
doc.elements[i].checked = status;
}
}
<!-- IF S_INCLUDE_SWATCH -->
function swatch()
{
window.open('{U_SWATCH}', '_swatch', 'height=115, resizable=yes, scrollbars=no, width=636');
return false;
}
<!-- ENDIF -->
//-->
</script>
</head>
<body>
<div id="page-body" style="padding: 0 10px;">

View File

@ -1,217 +0,0 @@
/*
$Id$
The original "subSilver" theme for phpBB2
Created by subBlue design :: http://www.subBlue.com
Updated for phpBB 2.2 by psoTFX :: phpBB Group
Copyright (c) 2002 phpBB Group
*/
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin: 0px;
border: 0px;
padding: 0px;
scrollbar-face-color: #DEE3E7;
scrollbar-highlight-color: white;
scrollbar-shadow-color: #DEE3E7;
scrollbar-3dlight-color: #D1D7DC;
scrollbar-arrow-color: #006699;
scrollbar-track-color: #EFEFEF;
scrollbar-darkshadow-color: #98AAB1;
}
p {
font-size: 8pt;
}
.maintitle, h1 {
font: bold 18pt 'Trebuchet MS', Verdana, sans-serif;
text-decoration:none;
line-height: 120%;
}
h2 {
font: bold 12pt Arial, Helvetica, sans-serif;
text-decoration:none;
line-height: 120%;
}
.maintitle {
color: #12749B
}
.subtitle {
font: bold 12pt Arial, Helvetica, sans-serif;
}
.blue {
color: #006699;
}
.syntaxbg { color: #FFFFFF; }
.syntaxcomment { color: #FF8000; }
.syntaxdefault { color: #0000BB; }
.syntaxhtml { color: #000000; }
.syntaxkeyword { color: #007700; }
.syntaxstring { color: #DD0000; }
/*
Anchors
*/
a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.nav { color: #006699; text-decoration: none; }
a.nav:hover { text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover { color: #FFA34F; text-decoration: underline; }
/*
Non-tag specific
*/
.gen, .gensmall {
color: black;
}
.gen {
font-size: 8pt;
}
.gensmall {
font-size: 7pt;
}
.nav {
color: black;
font: bold 7pt;
}
.forumlink {
font: bold 120% Verdana, Arial, Helvetica, sans-serif;
}
.name {
color: black;
font-size: 11px;
}
.postdetails {
color: black;
font-size: 10px;
}
.copyright {
color: #444444;
font: 8pt Verdana, Arial, Helvetica, sans-serif;
letter-spacing: -1px;
}
.error { color: #FF0000 }
/*
Tables
*/
table.bg {
background-color: #ACBBC6
}
th, td {
font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
}
th {
height: 25px;
background-color: #006699;
color: #FFA34F;
font-weight: bold;
font-size: 11px;
}
th.menu {
text-align: left;
}
td.cat {
height: 28px;
background-color: #D1D7DC;
}
.row1 {
background-color: #EFEFEF;
}
.row2 {
background-color: #DEE3E7;
}
.row3 {
background-color: #D1D7DC;
}
.sourcenum {
color: gray;
font-family: 'Courier New', monospace;
font-size: 9pt;
font-weight: bold;
line-height: 160%;
}
.source {
font-family: 'Courier New', monospace;
font-size: 9pt;
line-height: 160%;
}
/*
Misc
*/
hr {
height: 0px;
border: solid #D1D7DC 0px;
border-top-width: 1px;
}
/*
Forms
*/
input {
text-indent: 2px;
}
textarea, select, input.post, input.mainoption, input.liteoption {
border: 1px solid;
}
input, textarea, select {
color: black;
font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
border-color: black;
}
input.text {
font-family: 'Courier New', courier;
}
input.checkbox {
height: 16px;
width: 16px;
}
option.sep {
color: white;
background-color: #006699;
}
textarea.edit {
font: 9pt 'Courier New', courier;
line-height:125%;
}
.btnmain {
background-color: #FAFAFA;
font-weight: bold;
border-width: 1px;
}
.btnlite {
background-color: #FAFAFA;
font-weight: normal;
border-width: 1px;
}
.helpline { background-color: #DEE3E7; border-style: none; }

View File

@ -1,10 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<title>phpBB3 Color Swatch</title>
<style type="text/css">
<!--
body {
background-color: #404040;
color: #fff;
}
td {
border: solid 1px #333333;
border: solid 1px #333;
}
.over {
@ -15,9 +24,17 @@ td {
border-color: #333333;
}
img {
border: 0;
}
//-->
</style>
<body bgcolor="#404040" text="#FFFFFF">
<script language="javascript" type="text/javascript">
</head>
<body>
<script type="text/javascript">
<!--
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
@ -37,7 +54,7 @@ td {
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '" onmouseover="this.className=\'over\'" onmouseout="this.className=\'out\'">');
document.write('<a href="javascript:cell(\'' + color + '\');"><img src="../images/spacer.gif" width="15" height="12" border="0" alt="#' + color + '" title="#' + color + '" \/><\/a>');
document.write('<a href="javascript:cell(\'' + color + '\');"><img src="./images/spacer.gif" width="15" height="12" alt="#' + color + '" title="#' + color + '" \/><\/a>');
document.writeln('<\/td>');
}
}

View File

@ -52,6 +52,9 @@ class acp_jabber
$jabber->password = $jab_password;
$jabber->resource = $jab_resource;
$message = $user->lang['JAB_SETTINGS_CHANGED'];
$log = 'JAB_SETTINGS_CHANGED';
// Are changing (or initialising) a new host or username? If so run some checks and
// try to create account if it doesn't exist
if ($jab_enable)

View File

@ -47,13 +47,13 @@ class acp_logs
$sql_in = array();
foreach ($marked as $mark)
{
$sql_in[] = $mark;
$sql_in[] = $mark;
}
$where_sql = ' AND log_id IN (' . implode(', ', $sql_in) . ')';
unset($sql_in);
}
if ($where_sql)
if ($where_sql || $deleteall)
{
$sql = 'DELETE FROM ' . LOG_TABLE . "
WHERE log_type = {$this->log_type}

View File

@ -474,6 +474,7 @@ class acp_modules
'MODULE_IMAGE' => $module_image,
'MODULE_TITLE' => $langname,
'MODULE_ENABLED' => ($row['module_enabled']) ? true : false,
'MODULE_DISPLAYED' => ($row['module_display']) ? true : false,
'U_MODULE' => $u_action . '&amp;parent_id=' . $row['module_id'],
'U_MOVE_UP' => $url . '&amp;action=move_up',

File diff suppressed because it is too large Load Diff

View File

@ -1868,7 +1868,7 @@ function view_log($mode, &$log, &$log_count, $limit = 0, $offset = 0, $forum_id
$topic_id_list = $is_auth = $is_mod = array();
$profile_url = (defined('IN_ADMIN')) ? "admin_users.$phpEx$SID" : "memberlist.$phpEx$SID&amp;mode=viewprofile";
$profile_url = (defined('IN_ADMIN')) ? "index.$phpEx$SID&amp;i=users&amp;mode=overview" : "memberlist.$phpEx$SID&amp;mode=viewprofile";
switch ($mode)
{

View File

@ -80,8 +80,8 @@ function user_update_name($old_name, $new_name)
foreach ($field_ary as $field)
{
$sql = "UPDATE $table
SET $field = '$new_name'
WHERE $field = '$old_name'";
SET $field = '" . $db->sql_escape($new_name) . "'
WHERE $field = '" . $db->sql_escape($old_name) . "'";
$db->sql_query($sql);
}
}
@ -277,10 +277,10 @@ function user_active_flip($user_id, $user_type, $user_actkey = false, $username
if (!function_exists('add_log'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
include_once($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
}
if (!$username)
if ($username === false)
{
$sql = 'SELECT username
FROM ' . USERS_TABLE . "
@ -296,7 +296,6 @@ function user_active_flip($user_id, $user_type, $user_actkey = false, $username
return false;
}
/**
* Add a ban or ban exclusion to the banlist. Bans either a user, an IP or an email address
*
@ -357,12 +356,13 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
{
// Select the relevant user_ids.
$sql_usernames = array();
foreach($ban_list as $username)
foreach ($ban_list as $username)
{
$username = trim($username);
if ($username != '')
{
$sql_usernames[] = "'" . $username . "'";
$sql_usernames[] = "'" . $db->sql_escape($username) . "'";
}
}
$sql_usernames = implode(', ', $sql_usernames);
@ -386,7 +386,7 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
}
$db->sql_freeresult($result);
}
break;
break;
case 'ip':
$type = 'ban_ip';
@ -458,7 +458,7 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
foreach ($ip_ary as $ip)
{
if (!empty($ip))
if ($ip)
{
$banlist_ary[] = $ip;
}
@ -479,7 +479,7 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
trigger_error('NO_IPS_DEFINED');
}
}
break;
break;
case 'email':
$type = 'ban_email';
@ -496,7 +496,11 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
{
trigger_error('NO_EMAILS_DEFINED');
}
break;
break;
default:
trigger_error('NO_MODE');
break;
}
// Fetch currently set bans of the specified type and exclude state. Prevent duplicate bans.
@ -515,15 +519,15 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
{
case 'user':
$banlist_ary_tmp[] = $row['ban_userid'];
break;
break;
case 'ip':
$banlist_ary_tmp[] = $row['ban_ip'];
break;
break;
case 'email':
$banlist_ary_tmp[] = $row['ban_email'];
break;
break;
}
}
while ($row = $db->sql_fetchrow($result));
@ -531,12 +535,14 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
$banlist_ary = array_unique(array_diff($banlist_ary, $banlist_ary_tmp));
unset($banlist_ary_tmp);
}
$db->sql_freeresult($result);
// We have some entities to ban
if (sizeof($banlist_ary))
{
$sql = '';
$sql_ary = array();
foreach ($banlist_ary as $ban_entry)
{
$sql_ary[] = array(
@ -563,20 +569,22 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
{
case 'user':
$sql_where = 'WHERE session_user_id IN (' . implode(', ', $banlist_ary) . ')';
break;
break;
case 'ip':
$banlist_ary_sql = array();
foreach($banlist_ary as $ban_entry)
foreach ($banlist_ary as $ban_entry)
{
$banlist_ary_sql[] = "'" . $db->sql_escape($ban_entry) . "'";
}
$sql_where = 'WHERE session_ip IN (' . implode(', ', $banlist_ary_sql) . ')';
break;
break;
case 'email':
$banlist_ary_sql = array();
foreach($banlist_ary as $ban_entry)
foreach ($banlist_ary as $ban_entry)
{
$banlist_ary_sql[] = "'" . $db->sql_escape(str_replace('*', '%', $ban_entry)) . "'";
}
@ -588,6 +596,7 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
$sql_in = array();
$sql = '';
if ($row = $db->sql_fetchrow($result))
{
do
@ -598,10 +607,11 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
$sql_where = 'WHERE session_user_id IN (' . implode(', ', $sql_in) . ")";
}
break;
$db->sql_freeresult($result);
break;
}
if (isset($sql_where))
if (isset($sql_where) && $sql_where)
{
$sql = 'DELETE FROM ' . SESSIONS_TABLE . "
$sql_where";
@ -612,7 +622,7 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
if (!function_exists('add_log'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
}
// Update log
@ -655,19 +665,19 @@ function user_unban($mode, $ban)
FROM ' . USERS_TABLE . ' u, ' . BANLIST_TABLE . " b
WHERE b.ban_id IN ($unban_sql)
AND u.user_id = b.ban_userid";
break;
break;
case 'email':
$sql = 'SELECT ban_email AS unban_info
FROM ' . BANLIST_TABLE . "
WHERE ban_id IN ($unban_sql)";
break;
break;
case 'ip':
$sql = 'SELECT ban_ip AS unban_info
FROM ' . BANLIST_TABLE . "
WHERE ban_id IN ($unban_sql)";
break;
break;
}
$result = $db->sql_query($sql);
@ -685,14 +695,13 @@ function user_unban($mode, $ban)
if (!function_exists('add_log'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
}
add_log('admin', 'LOG_UNBAN_' . strtoupper($mode), $l_unban_list);
}
return false;
}
/**
@ -985,9 +994,9 @@ function avatar_delete($id)
{
global $phpbb_root_path, $config, $db, $user;
if (file_exists($phpbb_root_path . $config['avatar_path'] . '/' . $id))
if (file_exists($phpbb_root_path . $config['avatar_path'] . '/' . basename($id)))
{
@unlink($phpbb_root_path . $config['avatar_path'] . '/' . $id);
@unlink($phpbb_root_path . $config['avatar_path'] . '/' . basename($id));
}
return false;

View File

@ -101,8 +101,8 @@ class bbcode_firstpass extends bbcode
'code' => array('bbcode_id' => 8, 'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#ise' => "\$this->bbcode_code('\$1', '\$2')")),
'quote' => array('bbcode_id' => 0, 'regexp' => array('#\[quote(?:=&quot;(.*?)&quot;)?\](.+)\[/quote\]#ise' => "\$this->bbcode_quote('\$0')")),
'attachment'=> array('bbcode_id' => 12, 'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#ise' => "\$this->bbcode_attachment('\$1', '\$2')")),
'b' => array('bbcode_id' => 1, 'regexp' => array('#\[b\](.*?)\[/b\]#ise' => "\$this->bbcode_strong('\$1')")),
'i' => array('bbcode_id' => 2, 'regexp' => array('#\[i\](.*?)\[/i\]#ise' => "\$this->bbcode_italic('\$1')")),
'b' => array('bbcode_id' => 1, 'regexp' => array('#\[b\](.+)\[/b\]#ise' => "\$this->bbcode_strong('\$1')")),
'i' => array('bbcode_id' => 2, 'regexp' => array('#\[i\](.+)\[/i\]#ise' => "\$this->bbcode_italic('\$1')")),
'url' => array('bbcode_id' => 3, 'regexp' => array('#\[url(=(.*))?\](.*)\[/url\]#iUe' => "\$this->validate_url('\$2', '\$3')")),
'img' => array('bbcode_id' => 4, 'regexp' => array('#\[img\](https?://)([a-z0-9\-\.,\?!%\*_:;~\\&$@/=\+]+)\[/img\]#ie' => "\$this->bbcode_img('\$1\$2')")),
'size' => array('bbcode_id' => 5, 'regexp' => array('#\[size=([\-\+]?[1-2]?[0-9])\](.*?)\[/size\]#ise' => "\$this->bbcode_size('\$1', '\$2')")),

View File

@ -402,7 +402,7 @@ class ucp_pm_info
'unread' => array('title' => 'UCP_PM_UNREAD', 'auth' => 'cfg_allow_privmsg'),
'drafts' => array('title' => 'UCP_PM_DRAFTS', 'auth' => 'cfg_allow_privmsg'),
'options' => array('title' => 'UCP_PM_OPTIONS', 'auth' => 'cfg_allow_privmsg'),
'popup' => array('title' => 'UCP_PM_POPUP_TITLE', 'auth' => 'cfg_allow_privmsg', 'display' => 0),
'popup' => array('title' => 'UCP_PM_POPUP_TITLE', 'auth' => 'cfg_allow_privmsg', 'display' => false),
),
);
}

View File

@ -169,7 +169,7 @@ class ucp_prefs
'NOTIFY_IM' => ($notifymethod == NOTIFY_IM) ? 'checked="checked"' : '',
'NOTIFY_BOTH' => ($notifymethod == NOTIFY_BOTH) ? 'checked="checked"' : '',
'DATE_FORMAT' => $dateformat,
'DATE_FORMAT' => $dateformat,
'S_DATEFORMAT_OPTIONS' => $dateformat_options,
'S_CUSTOM_DATEFORMAT' => $s_custom,
'DEFAULT_DATEFORMAT' => $config['default_dateformat'],
@ -256,7 +256,7 @@ class ucp_prefs
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
}
$topic_sk = (isset($topic_sk)) ? $topic_sk : ((!empty($user->data['user_tpic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't');
$topic_sk = (isset($topic_sk)) ? $topic_sk : ((!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't');
$post_sk = (isset($post_sk)) ? $post_sk : ((!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't');
$topic_sd = (isset($topic_sd)) ? $topic_sd : ((!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd');

View File

@ -522,7 +522,8 @@ class ucp_profile
}
else if ($delete && $auth->acl_get('u_chgavatar'))
{
$type = $filename = $width = $height = '';
$filename = '';
$type = $width = $height = 0;
}
}

View File

@ -429,52 +429,119 @@ INSERT INTO phpbb_bots (bot_id, bot_active, bot_name, user_id, bot_agent, bot_ip
# MSSQL IDENTITY phpbb_modules OFF #
# -- Modules
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (13, 1, '', 'ucp', 0, 19, 28, 'UCP_MAIN', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (14, 1, 'main', 'ucp', 13, 20, 21, 'UCP_MAIN_FRONT', 'front', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (15, 1, 'main', 'ucp', 13, 22, 23, 'UCP_MAIN_SUBSCRIBED', 'subscribed', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (16, 1, 'main', 'ucp', 13, 24, 25, 'UCP_MAIN_BOOKMARKS', 'bookmarks', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (17, 1, 'main', 'ucp', 13, 26, 27, 'UCP_MAIN_DRAFTS', 'drafts', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (18, 1, '', 'ucp', 0, 29, 38, 'UCP_PROFILE', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (19, 1, 'profile', 'ucp', 18, 30, 31, 'UCP_PROFILE_REG_DETAILS', 'reg_details', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (20, 1, 'profile', 'ucp', 18, 32, 33, 'UCP_PROFILE_PROFILE_INFO', 'profile_info', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (21, 1, 'profile', 'ucp', 18, 34, 35, 'UCP_PROFILE_SIGNATURE', 'signature', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (22, 1, 'profile', 'ucp', 18, 36, 37, 'UCP_PROFILE_AVATAR', 'avatar', '');
# UCP
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (69, 1, 'modules', 'acp', 1, 67, 295, 296, 'UCP', 'ucp', '');
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 (13, 1, '', 'ucp', 1, 0, 59, 68, 'UCP_MAIN', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (14, 1, 'main', 'ucp', 1, 13, 60, 61, 'UCP_MAIN_FRONT', 'front', '');
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 (15, 1, 'main', 'ucp', 1, 13, 62, 63, 'UCP_MAIN_SUBSCRIBED', 'subscribed', '');
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 (16, 1, 'main', 'ucp', 1, 13, 64, 65, 'UCP_MAIN_BOOKMARKS', 'bookmarks', 'cfg_allow_bookmarks');
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 (17, 1, 'main', 'ucp', 1, 13, 66, 67, 'UCP_MAIN_DRAFTS', 'drafts', '');
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 (18, 1, '', 'ucp', 1, 0, 69, 78, 'UCP_PROFILE', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (19, 1, 'profile', 'ucp', 1, 18, 70, 71, 'UCP_PROFILE_REG_DETAILS', 'reg_details', '');
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 (20, 1, 'profile', 'ucp', 1, 18, 72, 73, 'UCP_PROFILE_PROFILE_INFO', 'profile_info', '');
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 (21, 1, 'profile', 'ucp', 1, 18, 74, 75, 'UCP_PROFILE_SIGNATURE', 'signature', '');
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 (22, 1, 'profile', 'ucp', 1, 18, 76, 77, 'UCP_PROFILE_AVATAR', 'avatar', '');
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 (23, 1, '', 'ucp', 1, 0, 79, 86, 'UCP_PREFS', '', '');
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 (24, 1, 'prefs', 'ucp', 1, 23, 80, 81, 'UCP_PREFS_PERSONAL', 'personal', '');
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 (25, 1, 'prefs', 'ucp', 1, 23, 82, 83, 'UCP_PREFS_VIEW', 'view', '');
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 (26, 1, 'prefs', 'ucp', 1, 23, 84, 85, 'UCP_PREFS_POST', 'post', '');
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 (27, 1, '', 'ucp', 1, 0, 87, 100, 'UCP_PM', '', '');
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 (28, 1, 'pm', 'ucp', 1, 27, 88, 89, 'UCP_PM_VIEW', 'view', 'cfg_allow_privmsg');
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 (29, 1, 'pm', 'ucp', 1, 27, 90, 91, 'UCP_PM_COMPOSE', 'compose', 'cfg_allow_privmsg');
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 (30, 1, 'pm', 'ucp', 1, 27, 92, 93, 'UCP_PM_UNREAD', 'unread', 'cfg_allow_privmsg');
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 (31, 1, 'pm', 'ucp', 1, 27, 94, 95, 'UCP_PM_DRAFTS', 'drafts', 'cfg_allow_privmsg');
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 (32, 1, 'pm', 'ucp', 1, 27, 96, 97, 'UCP_PM_OPTIONS', 'options', 'cfg_allow_privmsg');
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 (33, 1, '', 'ucp', 1, 0, 101, 106, 'UCP_USERGROUPS', '', '');
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 (34, 1, 'groups', 'ucp', 1, 33, 102, 103, 'UCP_USERGROUPS_MEMBER', 'membership', '');
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 (35, 1, 'groups', 'ucp', 1, 33, 104, 105, 'UCP_USERGROUPS_MANAGE', 'manage', '');
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 (36, 1, '', 'ucp', 1, 0, 107, 110, 'UCP_ATTACHMENTS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (37, 1, 'attachments', 'ucp', 1, 36, 108, 109, 'UCP_ATTACHMENTS', 'attachments', 'acl_u_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (38, 1, '', 'ucp', 1, 0, 111, 116, 'UCP_ZEBRA', '', '');
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 (39, 1, 'zebra', 'ucp', 1, 38, 112, 113, 'UCP_ZEBRA_FRIENDS', 'friends', '');
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 (40, 1, 'zebra', 'ucp', 1, 38, 114, 115, 'UCP_ZEBRA_FOES', 'foes', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (23, 1, '', 'ucp', 0, 39, 46, 'UCP_PREFS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (24, 1, 'prefs', 'ucp', 23, 40, 41, 'UCP_PREFS_PERSONAL', 'personal', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (25, 1, 'prefs', 'ucp', 23, 42, 43, 'UCP_PREFS_VIEW', 'view', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (26, 1, 'prefs', 'ucp', 23, 44, 45, 'UCP_PREFS_POST', 'post', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (27, 1, '', 'ucp', 0, 47, 58, 'UCP_PM', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (28, 1, 'pm', 'ucp', 27, 48, 49, 'UCP_PM_VIEW', 'view', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (29, 1, 'pm', 'ucp', 27, 50, 51, 'UCP_PM_COMPOSE', 'compose', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (30, 1, 'pm', 'ucp', 27, 52, 53, 'UCP_PM_UNREAD', 'unread', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (31, 1, 'pm', 'ucp', 27, 54, 55, 'UCP_PM_DRAFTS', 'drafts', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (32, 1, 'pm', 'ucp', 27, 56, 57, 'UCP_PM_OPTIONS', 'options', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (33, 1, '', 'ucp', 0, 59, 64, 'UCP_USERGROUPS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (34, 1, 'groups', 'ucp', 33, 60, 61, 'UCP_USERGROUPS_MEMBER', 'membership', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (35, 1, 'groups', 'ucp', 33, 62, 63, 'UCP_USERGROUPS_MANAGE', 'manage', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (36, 1, '', 'ucp', 0, 65, 68, 'UCP_ATTACHMENTS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (37, 1, 'attachments', 'ucp', 36, 66, 67, 'UCP_ATTACHMENTS', 'default', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (38, 1, '', 'ucp', 0, 69, 74, 'UCP_ZEBRA', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (39, 1, 'zebra', 'ucp', 38, 70, 71, 'UCP_ZEBRA_FRIENDS', 'friends', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (40, 1, 'zebra', 'ucp', 38, 72, 73, 'UCP_ZEBRA_FOES', 'foes', '');
INSERT INTO phpbb_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, '', 'mcp', 0, 74, 83, 'MCP_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 (51, 1, 1, 'main', 'mcp', 50, 75, 76, 'MCP_MAIN_FRONT', 'front', 'acl_m_');
INSERT INTO phpbb_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, 'main', 'mcp', 50, 77, 78, 'MCP_MAIN_FORUM_VIEW', 'forum_view', 'acl_m_');
INSERT INTO phpbb_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, 'main', 'mcp', 50, 79, 80, 'MCP_MAIN_TOPIC_VIEW', 'topic_view', 'acl_m_');
INSERT INTO phpbb_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, 'main', 'mcp', 50, 81, 82, 'MCP_MAIN_POST_DETAILS', 'post_details', 'acl_m_');
INSERT INTO phpbb_modules (module_id, module_enabled, module_display, module_name, module_class, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (55, 1, 1, '', 'mcp', 0, 84, 91, 'MCP_QUEUE', '', '');
INSERT INTO phpbb_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, 'queue', 'mcp', 55, 85, 86, 'MCP_QUEUE_UNAPPROVED_TOPICS', 'unapproved_topics', 'acl_m_approve');
INSERT INTO phpbb_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, 'queue', 'mcp', 55, 87, 88, 'MCP_QUEUE_UNAPPROVED_POSTS', 'unapproved_posts', 'acl_m_approve');
INSERT INTO phpbb_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, 'queue', 'mcp', 55, 89, 90, 'MCP_QUEUE_REPORTS', 'reports', 'acl_m_approve');
# ACP
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (7, 1, 'modules', 'acp', 1, 67, 293, 294, 'ACP', 'acp', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (2, 1, '', 'acp', 1, 0, 157, 192, 'ACP_CAT_GENERAL', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (11, 1, '', 'acp', 1, 0, 227, 268, 'ACP_CAT_USERGROUP', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (41, 1, 'main', 'acp', 1, 2, 158, 159, 'ACP_MAIN', 'main', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (42, 1, '', 'acp', 1, 2, 160, 171, 'ACP_GENERAL_CONFIGURATION', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (43, 1, '', 'acp', 1, 2, 172, 179, 'ACP_CLIENT_COMMUNICATION', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (44, 1, '', 'acp', 1, 2, 180, 191, 'ACP_SERVER_CONFIGURATION', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (46, 1, '', 'acp', 1, 0, 193, 202, 'ACP_CAT_FORUMS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (47, 1, '', 'acp', 1, 0, 203, 226, 'ACP_CAT_POSTING', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (48, 1, '', 'acp', 1, 0, 269, 274, 'ACP_CAT_PERMISSIONS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (49, 1, '', 'acp', 1, 0, 275, 278, 'ACP_CAT_STYLES', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (50, 1, '', 'acp', 1, 0, 279, 290, 'ACP_CAT_MAINTANENCE', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (51, 1, '', 'acp', 1, 0, 291, 310, 'ACP_CAT_SYSTEM', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (52, 1, '', 'acp', 1, 0, 311, 312, 'ACP_CAT_DOT_MODS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (53, 1, '', 'acp', 1, 46, 194, 199, 'ACP_CAT_FORUMS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (54, 1, '', 'acp', 1, 46, 200, 201, 'ACP_CAT_PERMISSIONS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (56, 1, '', 'acp', 1, 47, 216, 225, 'ACP_ATTACHMENTS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (57, 1, '', 'acp', 1, 11, 228, 251, 'ACP_CAT_USERS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (58, 1, '', 'acp', 1, 11, 252, 255, 'ACP_GROUPS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (59, 1, '', 'acp', 1, 11, 256, 267, 'ACP_USER_SECURITY', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (60, 1, '', 'acp', 1, 48, 270, 271, 'ACP_CAT_GENERAL', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (61, 1, '', 'acp', 1, 48, 272, 273, 'ACP_PERMISSION_SETTINGS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (62, 1, '', 'acp', 1, 49, 276, 277, 'ACP_STYLE_MANAGEMENT', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (63, 1, '', 'acp', 1, 50, 280, 287, 'ACP_FORUM_LOGS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (64, 1, '', 'acp', 1, 50, 288, 289, 'ACP_CAT_DATABASE', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (65, 1, '', 'acp', 1, 51, 300, 301, 'ACP_AUTOMATION', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (66, 1, '', 'acp', 1, 51, 302, 309, 'ACP_GENERAL_TASKS', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (67, 1, '', 'acp', 1, 51, 292, 299, 'ACP_MODULE_MANAGEMENT', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (71, 1, 'board', 'acp', 1, 42, 161, 162, 'ACP_BOARD_SETTINGS', 'settings', 'acl_a_board');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (72, 1, 'board', 'acp', 1, 42, 163, 164, 'ACP_BOARD_DEFAULTS', 'default', 'acl_a_defaults');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (73, 1, 'board', 'acp', 1, 42, 165, 166, 'ACP_AVATAR_SETTINGS', 'avatar', 'acl_a_board');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (74, 1, 'attachments', 'acp', 1, 42, 167, 168, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (75, 1, '', 'acp', 1, 47, 204, 215, 'ACP_MESSAGES', '', '');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (76, 1, 'attachments', 'acp', 1, 56, 217, 218, 'ACP_ATTACHMENT_SETTINGS', 'attach', 'acl_a_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (77, 1, 'attachments', 'acp', 1, 56, 219, 220, 'ACP_EXTENSION_GROUPS', 'ext_groups', 'acl_a_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (78, 1, 'attachments', 'acp', 1, 56, 221, 222, 'ACP_MANAGE_EXTENSIONS', 'extensions', 'acl_a_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (80, 1, 'attachments', 'acp', 1, 56, 223, 224, 'ACP_ORPHAN_ATTACHMENTS', 'orphan', 'acl_a_attach');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (81, 1, 'board', 'acp', 1, 42, 169, 170, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (82, 1, 'board', 'acp', 1, 43, 173, 174, 'ACP_AUTH_SETTINGS', 'auth', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (83, 1, 'board', 'acp', 1, 43, 175, 176, 'ACP_EMAIL_SETTINGS', 'email', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (84, 1, 'jabber', 'acp', 1, 43, 177, 178, 'ACP_JABBER_SETTINGS', 'settings', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (85, 1, 'board', 'acp', 1, 44, 181, 182, 'ACP_COOKIE_SETTINGS', 'cookie', 'acl_a_cookies');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (86, 1, 'board', 'acp', 1, 44, 183, 184, 'ACP_SERVER_SETTINGS', 'server', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (87, 1, 'board', 'acp', 1, 44, 185, 186, 'ACP_LOAD_SETTINGS', 'load', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (89, 1, 'php_info', 'acp', 1, 44, 187, 188, 'ACP_PHP_INFO', 'info', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (90, 1, 'pm', 'ucp', 0, 27, 98, 99, 'UCP_PM_POPUP_TITLE', 'popup', 'cfg_allow_privmsg');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (91, 1, 'bots', 'acp', 1, 44, 189, 190, 'ACP_BOTS', 'bots', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (93, 1, 'board', 'acp', 1, 75, 205, 206, 'ACP_MESSAGE_SETTINGS', 'message', 'acl_a_defaults');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (94, 1, 'bbcodes', 'acp', 1, 75, 207, 208, 'ACP_BBCODES', 'bbcodes', 'acl_a_bbcode');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (95, 1, 'icons', 'acp', 1, 75, 209, 210, 'ACP_ICONS', 'icons', 'acl_a_icons');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (96, 1, 'icons', 'acp', 1, 75, 211, 212, 'ACP_SMILIES', 'smilies', 'acl_a_icons');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (97, 1, 'words', 'acp', 1, 75, 213, 214, 'ACP_WORDS', 'words', 'acl_a_words');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (98, 1, 'logs', 'acp', 1, 63, 281, 282, 'ACP_ADMIN_LOGS', 'admin', 'acl_a_');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (99, 1, 'logs', 'acp', 1, 63, 283, 284, 'ACP_MOD_LOGS', 'mod', 'acl_a_');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (100, 1, 'logs', 'acp', 1, 63, 285, 286, 'ACP_CRITICAL_LOGS', 'critical', 'acl_a_');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (101, 1, 'language', 'acp', 1, 66, 303, 304, 'ACP_LANGUAGE_PACKS', 'lang_packs', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (102, 1, 'bots', 'acp', 1, 66, 305, 306, 'ACP_BOTS', 'bots', 'acl_a_server');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (103, 1, 'groups', 'acp', 1, 58, 253, 254, 'ACP_GROUPS_MANAGE', 'manage', 'acl_a_group');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (105, 1, 'email', 'acp', 1, 66, 307, 308, 'ACP_MASS_EMAIL', 'email', 'acl_a_email');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (106, 1, 'ranks', 'acp', 1, 57, 233, 234, 'ACP_MANAGE_RANKS', 'ranks', 'acl_a_ranks');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (107, 1, 'ban', 'acp', 1, 59, 261, 262, 'ACP_BAN_EMAILS', 'email', 'acl_a_ban');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (108, 1, 'ban', 'acp', 1, 59, 263, 264, 'ACP_BAN_IPS', 'ip', 'acl_a_ban');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (109, 1, 'ban', 'acp', 1, 59, 265, 266, 'ACP_BAN_USERNAMES', 'user', 'acl_a_ban');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (110, 1, 'disallow', 'acp', 1, 59, 259, 260, 'ACP_DISALLOW_USERNAMES', 'usernames', 'acl_a_names');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (111, 1, 'prune', 'acp', 1, 59, 257, 258, 'ACP_PRUNE_USERS', 'users', 'acl_a_userdel');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (112, 1, 'prune', 'acp', 1, 53, 197, 198, 'ACP_PRUNE_FORUMS', 'forums', 'acl_a_prune');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (113, 1, 'profile', 'acp', 1, 57, 231, 232, 'ACP_CUSTOM_PROFILE_FIELDS', 'profile', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (114, 1, 'forums', 'acp', 1, 53, 195, 196, 'ACP_MANAGE_FORUMS', 'manage', 'acl_a_forum');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (115, 1, 'users', 'acp', 1, 57, 229, 230, 'ACP_MANAGE_USERS', 'overview', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (116, 1, 'users', 'acp', 0, 57, 235, 236, 'ACP_USER_FEEDBACK', 'feedback', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (117, 1, 'users', 'acp', 0, 57, 237, 238, 'ACP_USER_PROFILE', 'profile', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (118, 1, 'users', 'acp', 0, 57, 239, 240, 'ACP_USER_PREFS', 'prefs', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (119, 1, 'users', 'acp', 0, 57, 241, 242, 'ACP_USER_AVATAR', 'avatar', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (120, 1, 'users', 'acp', 0, 57, 243, 244, 'ACP_USER_SIG', 'sig', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (121, 1, 'users', 'acp', 0, 57, 245, 246, 'ACP_USER_GROUPS', 'groups', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (122, 1, 'users', 'acp', 0, 57, 247, 248, 'ACP_USER_PERM', 'perm', 'acl_a_user');
INSERT INTO phpbb_modules (module_id, module_enabled, module_name, module_class, module_display, parent_id, left_id, right_id, module_langname, module_mode, module_auth) VALUES (123, 1, 'users', 'acp', 0, 57, 249, 250, 'ACP_USER_ATTACH', 'attach', 'acl_a_user');
# 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 (92, 1, 'modules', 'acp', 1, 67, 297, 298, 'MCP', 'mcp', '');
# MSSQL IDENTITY phpbb_modules OFF #

View File

@ -48,6 +48,7 @@ $lang = array_merge($lang, array(
'JAB_PASS_CHANGED' => 'Jabber password changed successfully',
'JAB_REGISTERED' => 'New account registered successfully',
'JAB_CHANGED' => 'Jabber account changed successfully',
'JAB_SETTINGS_CHANGED' => 'Jabber settings changed successfully',
'ERR_JAB_USERNAME' => 'The username specified already exists, please choose an alternative.',
'ERR_JAB_REGISTER' => 'An error occured trying to register this account, %s',

View File

@ -83,6 +83,7 @@ $lang = array_merge($lang, array(
'ACP_MANAGE_EXTENSIONS' => 'Manage Extensions',
'ACP_MANAGE_FORUMS' => 'Manage Forums',
'ACP_MANAGE_RANKS' => 'Manage Ranks',
'ACP_MANAGE_USERS' => 'Manage Users',
'ACP_MASS_EMAIL' => 'Mass Email',
'ACP_MESSAGES' => 'Messages',
'ACP_MESSAGE_SETTINGS' => 'Message Settings',
@ -99,7 +100,17 @@ $lang = array_merge($lang, array(
'ACP_SERVER_SETTINGS' => 'Server Settings',
'ACP_SMILIES' => 'Smilies',
'ACP_STYLE_MANAGEMENT' => 'Style Management',
'ACP_USER_ATTACH' => 'Attachments',
'ACP_USER_AVATAR' => 'Avatar',
'ACP_USER_FEEDBACK' => 'Feedback',
'ACP_USER_GROUPS' => 'Groups',
'ACP_USER_MANAGEMENT' => 'User Management',
'ACP_USER_OVERVIEW' => 'Overview',
'ACP_USER_PERM' => 'Permissions',
'ACP_USER_PREFS' => 'Preferences',
'ACP_USER_PROFILE' => 'Profile',
'ACP_USER_SECURITY' => 'User Security',
'ACP_USER_SIG' => 'Signature',
'ACP_WORDS' => 'Word Censoring',
'ACTION' => 'Action',
@ -261,8 +272,9 @@ $lang = array_merge($lang, array(
'LOG_BOT_UPDATED' => '<b>Existing bot updated</b><br />&#187; %s',
'LOG_CLEAR_ADMIN' => '<b>Cleared admin log</b>',
'LOG_CLEAR_MODE' => '<b>Cleared moderator log</b>',
'LOG_CLEAR_CRITICAL' => '<b>Cleared error log</b>',
'LOG_CLEAR_MOD' => '<b>Cleared moderator log</b>',
'LOG_CLEAR_USER' => '<b>Cleared user log</b><br />&#187; %s',
'LOG_CONFIG_ATTACH' => '<b>Altered attachment settings</b>',
'LOG_CONFIG_AUTH' => '<b>Altered authentication settings</b>',
@ -314,9 +326,10 @@ $lang = array_merge($lang, array(
'LOG_INDEX_DELETE' => '<b>Deleted inactive users</b><br />&#187; %s',
'LOG_INDEX_REMIND' => '<b>Sent reminder emails to inactive users</b><br />&#187; %s',
'LOG_JAB_CHANGED' => '<b>Jabber account changed</b>',
'LOG_JAB_PASSCHG' => '<b>Jabber password changed</b>',
'LOG_JAB_REGISTER' => '<b>Jabber account registered</b>',
'LOG_JAB_CHANGED' => '<b>Jabber account changed</b>',
'LOG_JAB_PASSCHG' => '<b>Jabber password changed</b>',
'LOG_JAB_REGISTER' => '<b>Jabber account registered</b>',
'LOG_JAB_SETTINGS_CHANGED' => '<b>Jabber settings changed</b>',
'LOG_LANGUAGE_PACK_DELETED' => '<b>Deleted language pack</b><br />&#187; %s',
'LOG_LANGUAGE_PACK_INSTALLED' => '<b>Installed language pack</b><br />&#187; %s',
@ -349,6 +362,23 @@ $lang = array_merge($lang, array(
'LOG_RESYNC_POSTCOUNTS' => '<b>User postcounts synced</b>',
'LOG_RESYNC_STATS' => '<b>Post, topic and user stats reset</b>',
'LOG_USER_ACTIVE' => '<b>User activated</b><br />&#187; %s',
'LOG_USER_BAN_USER' => '<b>Banned User via user management</b> for reason "<i>%s</i>"<br />&#187; %s',
'LOG_USER_BAN_IP' => '<b>Banned ip via user management</b> for reason "<i>%s</i>"<br />&#187; %s',
'LOG_USER_BAN_EMAIL' => '<b>Banned email via user management</b> for reason "<i>%s</i>"<br />&#187; %s',
'LOG_USER_DELETED' => '<b>Deleted user</b><br />&#187; %s',
'LOG_USER_DEL_ATTACH' => '<b>Removed all attachments made by the user</b><br />&#187; %s',
'LOG_USER_DEL_AVATAR' => '<b>Removed user avatar</b><br />&#187; %s',
'LOG_USER_DEL_POSTS' => '<b>Removed all posts made by the user</b><br />&#187; %s',
'LOG_USER_DEL_SIG' => '<b>Removed user signature</b><br />&#187; %s',
'LOG_USER_GROUP_CHANGE' => '<b>User changed default group</b><br />&#187; %s',
'LOG_USER_INACTIVE' => '<b>User deactivated</b><br />&#187; %s',
'LOG_USER_MOVE_POSTS' => '<b>Moved user posts</b><br />&#187; posts by "%s" to forum "%s"',
'LOG_USER_NEW_PASSWORD' => '<b>Changed user password</b><br />&#187; %s',
'LOG_USER_REACTIVATE' => '<b>Forced user account re-activation</b><br />&#187; %s',
'LOG_USER_UPDATE_NAME' => '<b>Changed username</b><br />&#187; from "%s" to "%s"',
'LOG_USER_USER_UPDATE' => '<b>Updated user details</b><br />&#187; %s',
'LOG_WORD_ADD' => '<b>Added word censor</b><br />&#187; %s',
'LOG_WORD_DELETE' => '<b>Deleted word censor</b><br />&#187; %s',
'LOG_WORD_EDIT' => '<b>Edited word censor</b><br />&#187; %s',

View File

@ -49,6 +49,8 @@ $lang = array_merge($lang, array(
'EDIT_MODULE' => 'Edit module',
'EDIT_MODULE_EXPLAIN' => 'Here you are able to enter module specific settings',
'HIDDEN_MODULE' => 'Hidden Module',
'MODULE' => 'Module',
'MODULE_ADDED' => 'Module successfully added',
'MODULE_DELETED' => 'Module successfully removed',

View File

@ -0,0 +1,94 @@
<?php
/**
*
* acp_users [English]
*
* @package language
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* DO NOT CHANGE
*/
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'BAN_SUCCESSFULL' => 'Ban entered successfully',
'CONFIRM_EMAIL_EXPLAIN' => 'You only need to specify this if you are changing the users email address.',
'DELETE_POSTS' => 'Delete posts',
'DELETE_USER' => 'Delete user',
'DELETE_USER_EXPLAIN' => 'Please note that deleting a user is final, they cannot be recovered',
'FORCE_REACTIVATION_SUCCESS' => 'Successfully forced re-activation',
'FOUNDER' => 'Founder',
'FOUNDER_EXPLAIN' => 'Founders can never be banned, deleted or altered by non-founder members',
'IP_WHOIS_FOR' => 'IP whois for %s',
'LAST_ACTIVE' => 'Last active',
'MOVE_POSTS_EXPLAIN' => 'Please select the forum to which you wish to move all the posts this user has made.',
'QUICK_TOOLS' => 'Quick tools',
'REGISTERED' => 'Registered',
'REGISTERED_IP' => 'Registered from IP',
'RETAIN_POSTS' => 'Retain posts',
'SELECT_FORM' => 'Select form',
'SELECT_USER' => 'Select User',
'USER_ADMIN' => 'User Administration',
'USER_ADMIN_ACTIVATE' => 'Activate account',
'USER_ADMIN_ACTIVATED' => 'User activated successfully',
'USER_ADMIN_AVATAR_REMOVED' => 'Successfully removed avatar from user account',
'USER_ADMIN_BAN_EMAIL' => 'Ban by email',
'USER_ADMIN_BAN_EMAIL_REASON' => 'Email address banned via user management',
'USER_ADMIN_BAN_IP' => 'Ban by IP',
'USER_ADMIN_BAN_IP_REASON' => 'IP banned via user management',
'USER_ADMIN_BAN_NAME_REASON' => 'Username banned via user management',
'USER_ADMIN_BAN_USER' => 'Ban by username',
'USER_ADMIN_DEACTIVATE' => 'Deactivate account',
'USER_ADMIN_DEACTIVED' => 'User deactivated successfully',
'USER_ADMIN_DEL_ATTACH' => 'Delete all attachments',
'USER_ADMIN_DEL_AVATAR' => 'Delete avatar',
'USER_ADMIN_DEL_POSTS' => 'Delete all posts',
'USER_ADMIN_DEL_SIG' => 'Delete signature',
'USER_ADMIN_EXPLAIN' => 'Here you can change your users information and certain specific options. To modify the users permissions please use the user and group permissions system.',
'USER_ADMIN_FORCE' => 'Force re-activation',
'USER_ADMIN_MOVE_POSTS' => 'Move all posts',
'USER_ADMIN_SIG_REMOVED' => 'Successfully removed signature from user account',
'USER_ATTACHMENTS_REMOVED' => 'Successfully removed all attachments made by this user',
'USER_CUSTOM_PROFILE_FIELDS' => 'Custom profile fields',
'USER_DELETED' => 'User deleted successfully',
'USER_OVERVIEW_UPDATED' => 'User details updated',
'USER_POSTS_DELETED' => 'Successfully removed all posts made by this user',
'USER_POSTS_MOVED' => 'Successfully moved users posts to target forum',
'USER_PREFS_UPDATED' => 'User preferences updated',
'USER_PROFILE' => 'User Profile',
'USER_PROFILE_UPDATED' => 'User profile updated',
'USER_TOOLS' => 'Basic tools',
'WARNINGS' => 'Warnings',
'WARNINGS_EXPLAIN' => 'You can directly alter the warnings this users has received.',
));
?>

File diff suppressed because it is too large Load Diff

View File

@ -78,39 +78,45 @@ $lang = array_merge($lang, array(
'IP_INFO' => 'IP Information',
'LATEST_LOGS' => 'Latest 5 logged actions',
'LATEST_REPORTED' => 'Latest 5 reports',
'LATEST_UNAPPROVED' => 'Latest 5 posts awaiting for approval',
'LEAVE_SHADOW' => 'Leave shadow topic in place',
'LIST_REPORT' => '1 Report',
'LIST_REPORTS' => '%d Reports',
'LOCK' => 'Lock',
'LOCK_POST_POST' => 'Lock Post',
'LOCK_POST_POST_CONFIRM'=> 'Are you sure you want to prevent editing this post?',
'LOCK_POST_POSTS' => 'Lock selected posts',
'LOCK_POST_POSTS_CONFIRM'=> 'Are you sure you want to prevent editing the selected posts?',
'LOCK_TOPIC_CONFIRM' => 'Are you sure you want to lock this topic?',
'LOCK_TOPICS' => 'Lock selected topics',
'LOCK_TOPICS_CONFIRM' => 'Are you sure you want to lock all selected topics?',
'LOGS_CURRENT_TOPIC' => 'Currently viewing logs of:',
'LOG_APPROVE_TOPIC' => '<b>Approved topic</b><br />&#187; %s',
'LOG_FORK' => '<b>Copied topic</b><br />&#187; from %s',
'LOG_LOCK' => '<b>Locked topic</b><br />&#187; %s',
'LOG_LOCK_POST' => '<b>Locked post</b><br />&#187; %s',
'LOG_MERGE' => '<b>Merged posts</b> into topic<br />&#187;%s',
'LOG_MOVE' => '<b>Moved topic</b><br />&#187; from %s',
'LOG_TOPIC_DELETED' => '<b>Deleted topic</b><br />&#187; %s',
'LOG_TOPIC_RESYNC' => '<b>Resynchronised topic counters</b><br />&#187; %s',
'LOG_TOPIC_TYPE_CHANGED'=> '<b>Changed topic type</b><br />&#187; %s',
'LOG_UNLOCK' => '<b>Unlocked topic</b><br />&#187; %s',
'LOG_UNLOCK_POST' => '<b>Unlocked post</b><br />&#187; %s',
'LOG_UNRATE' => '<b>Unrated post</b><br />&#187; %s',
'LOG_USER_LOCK' => '<b>User locked own topic</b><br />&#187; %s',
'LOGVIEW_VIEWTOPIC' => 'View Topic',
'LOGVIEW_VIEWLOGS' => 'View Topic Log',
'LOGVIEW_VIEWFORUM' => 'View Forum',
'LOOKUP_ALL' => 'Look up all IP',
'LOOKUP_IP' => 'Look up IP',
'LATEST_LOGS' => 'Latest 5 logged actions',
'LATEST_REPORTED' => 'Latest 5 reports',
'LATEST_UNAPPROVED' => 'Latest 5 posts awaiting for approval',
'LEAVE_SHADOW' => 'Leave shadow topic in place',
'LIST_REPORT' => '1 Report',
'LIST_REPORTS' => '%d Reports',
'LOCK' => 'Lock',
'LOCK_POST_POST' => 'Lock Post',
'LOCK_POST_POST_CONFIRM' => 'Are you sure you want to prevent editing this post?',
'LOCK_POST_POSTS' => 'Lock selected posts',
'LOCK_POST_POSTS_CONFIRM' => 'Are you sure you want to prevent editing the selected posts?',
'LOCK_TOPIC_CONFIRM' => 'Are you sure you want to lock this topic?',
'LOCK_TOPICS' => 'Lock selected topics',
'LOCK_TOPICS_CONFIRM' => 'Are you sure you want to lock all selected topics?',
'LOGS_CURRENT_TOPIC' => 'Currently viewing logs of:',
'LOG_APPROVE_TOPIC' => '<b>Approved topic</b><br />&#187; %s',
'LOG_FORK' => '<b>Copied topic</b><br />&#187; from %s',
'LOG_LOCK' => '<b>Locked topic</b><br />&#187; %s',
'LOG_LOCK_POST' => '<b>Locked post</b><br />&#187; %s',
'LOG_MERGE' => '<b>Merged posts</b> into topic<br />&#187;%s',
'LOG_MOVE' => '<b>Moved topic</b><br />&#187; from %s',
'LOG_TOPIC_DELETED' => '<b>Deleted topic</b><br />&#187; %s',
'LOG_TOPIC_RESYNC' => '<b>Resynchronised topic counters</b><br />&#187; %s',
'LOG_TOPIC_TYPE_CHANGED' => '<b>Changed topic type</b><br />&#187; %s',
'LOG_UNLOCK' => '<b>Unlocked topic</b><br />&#187; %s',
'LOG_UNLOCK_POST' => '<b>Unlocked post</b><br />&#187; %s',
'LOG_UNRATE' => '<b>Unrated post</b><br />&#187; %s',
'LOG_USER_ACTIVE_USER' => '<b>User account activated</b>',
'LOG_USER_DEL_AVATAR_USER' => '<b>User avatar removed</b>',
'LOG_USER_DEL_SIG_USER' => '<b>User signature removed</b>',
'LOG_USER_INACTIVE_USER' => '<b>User account de-activated</b>',
'LOG_USER_LOCK' => '<b>User locked own topic</b><br />&#187; %s',
'LOG_USER_MOVE_POSTS_USER' => '<b>Moved all posts to forum "%s"</b>',
'LOG_USER_REACTIVATE_USER' => '<b>Forced user account re-activation</b>',
'LOGVIEW_VIEWTOPIC' => 'View Topic',
'LOGVIEW_VIEWLOGS' => 'View Topic Log',
'LOGVIEW_VIEWFORUM' => 'View Forum',
'LOOKUP_ALL' => 'Look up all IP',
'LOOKUP_IP' => 'Look up IP',
'MCP_ADD' => 'Add a warning',
'MCP_MAIN' => 'Main',