1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-11 00:30:53 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
(no author)
19c923cf1b This commit was manufactured by cvs2svn to create tag
'release_3_0_RC1'.

git-svn-id: file:///svn/phpbb/tags/release_3_0_RC1@7657 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-05-20 14:59:17 +00:00
598 changed files with 18058 additions and 54133 deletions

View File

@@ -1,408 +0,0 @@
#!/usr/bin/env php
<?php
/**
*
* @package build
* @version $Id$
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
// CONFIG - Begin
$substitute_old = '3.0.6';
$substitute_new = '3.0.7-RC2';
$simple_name_old = 'phpbb306';
$simple_name_new = 'phpbb307-RC2';
$echo_changes = false;
// Set this to true to just compress the changes and do not build them again
// This should be used for building custom modified txt file. ;)
$package_changed_files = false;
// CONFIG - End
//$debug_file = 'includes/functions_user.php'; //'styles/prosilver/style.cfg';
$debug_file = false;
if ($debug_file !== false)
{
$echo_changes = false;
}
$s_name = 'save_' . $substitute_old . '_to_' . $substitute_new;
$location = dirname(__FILE__);
if (!$package_changed_files)
{
if (!$echo_changes)
{
// Cleanup...
run_command("rm -R $location/save/*");
// Create directory...
run_command("mkdir $location/save/{$s_name}");
run_command("mkdir $location/save/{$s_name}/language");
run_command("mkdir $location/save/{$s_name}/prosilver");
run_command("mkdir $location/save/{$s_name}/subsilver2");
}
}
// Build code changes and place them into 'save'
if (!$package_changed_files)
{
build_code_changes('language');
build_code_changes('prosilver');
build_code_changes('subsilver2');
}
// Package code changes
$code_changes_filename = 'phpBB-' . $substitute_old . '_to_' . $substitute_new . '-codechanges';
if (!$echo_changes)
{
// Now compress the files...
// Build Main phpBB Release
$compress_programs = array(
// 'tar.gz' => 'tar -czf',
'tar.bz2' => 'tar -cjf',
'zip' => 'zip -r'
);
chdir($location . '/save/' . $s_name);
foreach ($compress_programs as $extension => $compress_command)
{
echo "Packaging code changes for $extension\n";
run_command("rm ./../../release_files/{$code_changes_filename}.{$extension}");
flush();
// Build Package
run_command("$compress_command ./../../release_files/{$code_changes_filename}.{$extension} *");
// Build MD5 Sum
run_command("md5sum ./../../release_files/{$code_changes_filename}.{$extension} > ./../../release_files/{$code_changes_filename}.{$extension}.md5");
flush();
}
}
/**
* $output_format can be: language, prosilver and subsilver2
*/
function build_code_changes($output_format)
{
global $substitute_new, $substitute_old, $simple_name_old, $simple_name_new, $echo_changes, $package_changed_files, $location, $debug_file, $s_name;
// Global array holding the data entries
$data = array(
'header' => array(),
'diff' => array(),
);
// Read diff file and prepare the output filedata...
//$patch_filename = '../new_version/patches/phpBB-' . $substitute_old . '_to_' . $substitute_new . '.patch';
$release_filename = 'phpbb-' . $substitute_old . '_to_' . $substitute_new . '_' . $output_format . '.txt';
if (!$package_changed_files)
{
if (!$echo_changes)
{
$fp = fopen('save/' . $s_name . '/' . $output_format . '/' . $release_filename, 'wb');
if (!$fp)
{
die('Unable to create ' . $release_filename);
}
}
}
include_once($location . '/build_helper.php');
$package = new build_package(array($substitute_old, $substitute_new), false);
$titles = array(
'language' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' Language Pack Changes',
'prosilver' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' prosilver Changes',
'subsilver2' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' subsilver2 Changes',
);
$data['header'] = array(
'title' => $titles[$output_format],
'intro' => '
These are the ' . $titles[$output_format] . ' summed up into a little Mod. These changes are only partial and do not include any code changes, therefore not meant for updating phpBB.
',
'included_files' => array(),
);
// We collect the files we want to diff first (ironically we grab this from a diff file)
if (!$echo_changes)
{
echo "\n\nCollecting Filenames:";
}
// We re-create the patch file
foreach ($package->old_packages as $_package_name => $dest_package_filename)
{
chdir($package->locations['old_versions']);
if (!$echo_changes)
{
echo "\n\n" . 'Creating patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number');
}
$dest_package_filename = $location . '/save/' . $s_name . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch';
$package->run_command('diff ' . $package->diff_options . ' ' . $_package_name . ' ' . $package->get('simple_name') . ' > ' . $dest_package_filename);
// Parse this diff to determine file changes from the checked versions and save them
$result = $package->collect_diff_files($dest_package_filename, $_package_name);
$package->run_command('rm ' . $dest_package_filename);
}
chdir($location);
$filenames = array();
foreach ($result['files'] as $filename)
{
if ($debug_file !== false && $filename != $debug_file)
{
continue;
}
// Decide which files to compare...
switch ($output_format)
{
case 'language':
if (strpos($filename, 'language/en/') !== 0)
{
continue 2;
}
break;
case 'prosilver':
if (strpos($filename, 'styles/prosilver/') !== 0)
{
continue 2;
}
break;
case 'subsilver2':
if (strpos($filename, 'styles/subsilver2/') !== 0)
{
continue 2;
}
break;
}
if (!file_exists($location . '/old_versions/' . $simple_name_old . '/' . $filename))
{
// New file... include it
$data['header']['included_files'][] = array(
'old' => $location . '/old_versions/' . $simple_name_old . '/' . $filename,
'new' => $location . '/old_versions/' . $simple_name_new . '/' . $filename,
'phpbb_filename' => $filename,
);
continue;
}
$filenames[] = array(
'old' => $location . '/old_versions/' . $simple_name_old . '/' . $filename,
'new' => $location . '/old_versions/' . $simple_name_new . '/' . $filename,
'phpbb_filename' => $filename,
);
}
// Now let us go through the filenames list and create a more comprehensive diff
if (!$echo_changes)
{
fwrite($fp, build_header($output_format, $filenames, $data['header']));
}
else
{
//echo build_header('text', $filenames, $data['header']);
}
// Copy files...
$files_to_copy = array();
foreach ($data['header']['included_files'] as $filename)
{
$files_to_copy[] = $filename['phpbb_filename'];
}
// First step is to copy the new version over (clean structure)
if (!$echo_changes && sizeof($files_to_copy))
{
foreach ($files_to_copy as $file)
{
// Create directory?
$dirname = dirname($file);
if ($dirname)
{
$dirname = explode('/', $dirname);
$__dir = array();
foreach ($dirname as $i => $dir)
{
$__dir[] = $dir;
run_command("mkdir -p $location/save/" . $s_name . '/' . $output_format . '/' . implode('/', $__dir));
}
}
$source_file = $location . '/new_version/phpBB3/' . $file;
$dest_file = $location . '/save/' . $s_name . '/' . $output_format . '/';
$dest_file .= $file;
$command = "cp -p $source_file $dest_file";
$result = trim(`$command`);
echo "- Copied File: " . $source_file . " -> " . $dest_file . "\n";
}
}
include_once('diff_class.php');
if (!$echo_changes)
{
echo "\n\nDiffing Codebases:";
}
foreach ($filenames as $file_ary)
{
if (!file_exists($file_ary['old']))
{
$lines1 = array();
}
else
{
$lines1 = file($file_ary['old']);
}
$lines2 = file($file_ary['new']);
if (!sizeof($lines1))
{
// New File
}
else
{
$diff = new Diff($lines1, $lines2);
$fmt = new BBCodeDiffFormatter(false, 5, $debug_file);
if (!$echo_changes)
{
fwrite($fp, $fmt->format_open($file_ary['phpbb_filename']));
fwrite($fp, $fmt->format($diff, $lines1));
fwrite($fp, $fmt->format_close($file_ary['phpbb_filename']));
}
else
{
echo $fmt->format_open($file_ary['phpbb_filename']);
echo $fmt->format($diff, $lines1);
echo $fmt->format_close($file_ary['phpbb_filename']);
}
if ($debug_file !== false)
{
echo $fmt->format_open($file_ary['phpbb_filename']);
echo $fmt->format($diff, $lines1);
echo $fmt->format_close($file_ary['phpbb_filename']);
exit;
}
}
}
if (!$echo_changes)
{
fwrite($fp, build_footer($output_format));
// Close file
fclose($fp);
chmod('save/' . $s_name . '/' . $output_format . '/' . $release_filename, 0666);
}
else
{
echo build_footer($output_format);
}
}
/**
* Build Footer
*/
function build_footer($mode)
{
$html = '';
$html .= "# \n";
$html .= "#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ \n";
$html .= "# \n";
$html .= "# EoM";
return $html;
}
/**
* Build Header
*/
function build_header($mode, $filenames, $header)
{
global $substitute_old;
$html = '';
$html .= "############################################################## \n";
$html .= "## Title: " . $header['title'] . "\n";
$html .= "## Author: naderman < naderman@phpbb.com > (Nils Adermann) http://www.phpbb.com \n";
$html .= "## Description: \n";
$intr = explode("\n", $header['intro']);
$introduction = '';
foreach ($intr as $_line)
{
$introduction .= wordwrap($_line, 80) . "\n";
}
$intr = explode("\n", $introduction);
foreach ($intr as $_line)
{
$html .= "## " . $_line . "\n";
}
$html .= "## \n";
$html .= "## Files To Edit: \n";
foreach ($filenames as $file_ary)
{
$html .= "## " . $file_ary['phpbb_filename'] . "\n";
}
$html .= "##\n";
if (sizeof($header['included_files']))
{
$html .= "## Included Files: \n";
foreach ($header['included_files'] as $filename)
{
$html .= "## {$filename['phpbb_filename']}\n";
}
}
$html .= "## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2 \n";
$html .= "############################################################## \n";
$html .= "\n";
// COPY Statement?
if (sizeof($header['included_files']))
{
$html .= "#\n#-----[ COPY ]------------------------------------------\n#\n";
foreach ($header['included_files'] as $filename)
{
$html .= "copy {$filename['phpbb_filename']} to {$filename['phpbb_filename']}\n";
}
$html .= "\n";
}
return $html;
}
function run_command($command)
{
$result = trim(`$command`);
echo "\n- Command Run: " . $command . "\n";
}
?>

View File

@@ -1,485 +0,0 @@
<?php
/**
*
* @package build
* @version $Id$
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
class build_package
{
var $package_infos;
var $old_packages;
var $versions;
var $locations;
var $clean_directory_structure;
var $files_to_copy;
var $files_to_remove;
var $remove_from_diff_structure;
// -c - context diff
// -r - compare recursive
// -N - Treat missing files as empty
// -E - Ignore tab expansions
// not used: -b - Ignore space changes.
// -w - Ignore all whitespace
// -B - Ignore blank lines
// -d - Try to find smaller set of changes
var $diff_options = '-crNEBwd';
var $diff_options_long = '-x images -crNEB'; // -x fonts -x imageset //imageset not used here, because it includes the imageset.cfg file. ;)
var $verbose = false;
var $status_begun = false;
var $num_dots = 0;
function build_package($versions, $verbose = false)
{
$this->versions = $versions;
$this->verbose = $verbose;
// Get last two entries
$_latest = $this->versions[sizeof($this->versions) - 1];
$_before = $this->versions[sizeof($this->versions) - 2];
$this->locations = array(
'new_version' => dirname(dirname(__FILE__)) . '/phpBB/',
'old_versions' => dirname(__FILE__) . '/old_versions/',
'root' => dirname(__FILE__) . '/',
'package_dir' => dirname(__FILE__) . '/new_version/'
);
$this->package_infos = array(
'package_name' => 'phpBB3',
'name_prefix' => 'phpbb',
'simple_name' => 'phpbb' . str_replace('.', '', $_latest),
'new_version_number' => $_latest,
'short_version_number' => str_replace('.', '', $_latest),
'release_filename' => 'phpBB-' . $_latest,
'last_version' => 'phpbb' . str_replace('.', '', $_before),
'last_version_number' => $_before,
);
$this->package_infos['dest_dir'] = $this->locations['package_dir'] . $this->package_infos['package_name'];
$this->package_infos['diff_dir'] = $this->locations['old_versions'] . $this->package_infos['simple_name'];
$this->package_infos['patch_directory'] = $this->locations['package_dir'] . 'patches';
$this->package_infos['files_directory'] = $this->locations['package_dir'] . 'files';
$this->package_infos['update_directory'] = $this->locations['package_dir'] . 'update';
$this->package_infos['release_directory'] = $this->locations['package_dir'] . 'release_files';
// Old packages always exclude the latest version. ;)
$this->old_packages = array();
foreach ($this->versions as $package_version)
{
if ($package_version == $_latest)
{
continue;
}
$this->old_packages['phpbb' . str_replace('.', '', $package_version)] = $package_version . '_to_';
}
// We need to make sure this is up to date with the latest version
$this->clean_directory_structure = array(
'adm' => array(
'images' => '',
'style' => '',
),
'cache' => '',
'docs' => '',
'download' => '',
'files' => '',
'images' => array(
'avatars' => array(
'gallery' => '',
'upload' => '',
),
'icons' => array(
'misc' => '',
'smile' => '',
),
'ranks' => '',
'smilies' => '',
'upload_icons' => '',
),
'includes' => array(
'acm' => '',
'acp' => array(
'info' => '',
),
'auth' => '',
'captcha' => array(
'plugins' => '',
),
'diff' => '',
'db' => '',
'hooks' => '',
'mcp' => array(
'info' => '',
),
'questionnaire' => '',
'search' => '',
'ucp' => array(
'info' => '',
),
'utf' => array(
'data' => '',
),
),
'install' => array(
'convertors'=> '',
'schemas' => '',
// 'data' => '',
),
'language' => array(
'en' => array(
'acp' => '',
'email' => '',
'mods' => '',
),
),
'store' => '',
'styles' => array(
'subsilver2' => array(
'imageset' => array(
'en' => '',
),
'template' => '',
'theme' => array(
'images' => '',
),
),
'prosilver' => array(
'imageset' => array(
'en' => '',
),
'template' => '',
'theme' => array(
'images' => '',
),
),
),
);
// Files to remove (not include within package)
$this->files_to_remove = array(); //array('includes/utf/data/recode_cjk.php');
// Files within the main directory to copy - do not include config.php
$this->files_to_copy = array(
'.htaccess', 'common.php', 'cron.php', 'faq.php', 'feed.php', 'index.php', 'mcp.php', 'memberlist.php', 'posting.php', 'report.php',
'search.php', 'style.php', 'ucp.php', 'viewforum.php', 'viewonline.php', 'viewtopic.php'
);
// These files/directories will be removed and not used for creating the patch files
$this->remove_from_diff_structure = array(
'config.php', 'cache', 'docs', 'files', 'install', 'store', 'develop'
);
// Writeable directories
$this->writeable = array('cache', 'store', 'images/avatars/upload', 'files');
// Fill the rest of the files_to_copy array
foreach ($this->clean_directory_structure as $cur_dir => $dir_struct)
{
$this->_fill_files_to_copy($this->locations['new_version'] . $cur_dir, $cur_dir, $dir_struct);
}
}
function get($var)
{
return $this->package_infos[$var];
}
function _fill_files_to_copy($directory, $cur_dir, $dir_struct)
{
$dh = opendir($directory);
while ($file = readdir($dh))
{
if (is_file($directory . '/' . $file) && $file != '.' && $file != '..')
{
$_loc = str_replace($this->locations['new_version'], '', $directory . '/' . $file);
if (in_array($_loc, $this->files_to_remove))
{
continue;
}
$this->files_to_copy[] = $cur_dir . '/' . $file;
}
}
closedir($dh);
if (is_array($dir_struct))
{
foreach ($dir_struct as $_cur_dir => $_dir_struct)
{
$this->_fill_files_to_copy($directory . '/' . $_cur_dir, $cur_dir . '/' . $_cur_dir, $_dir_struct);
}
}
}
function adjust_permissions($directory)
{
$dh = opendir($directory);
while ($file = readdir($dh))
{
if ($file == '.' || $file == '..' || $file == '.svn')
{
continue;
}
// If file, then 644
if (is_file($directory . '/' . $file))
{
chmod($directory . '/' . $file, 0644);
}
else if (is_dir($directory . '/' . $file))
{
$_loc = str_replace($this->package_infos['dest_dir'] . '/', '', $directory . '/' . $file);
// If directory is within the writeable chmod to 777, else 755
$mode = (in_array($_loc, $this->writeable)) ? 0777 : 0755;
chmod($directory . '/' . $file, $mode);
// Now traverse to the directory
$this->adjust_permissions($directory . '/' . $file);
}
}
closedir($dh);
}
function begin_status($headline)
{
if ($this->status_begun)
{
echo "\nDone.\n\n";
}
$this->num_dots = 0;
echo $headline . "\n ";
$this->status_begun = true;
}
function run_command($command)
{
$result = trim(`$command`);
if ($this->verbose)
{
echo " command : " . getcwd() . '$ ' . $command . "\n";
echo " result : " . $result . "\n";
}
else
{
if ($this->num_dots > 70)
{
echo "\n";
$this->num_dots = 0;
}
echo '.';
$this->num_dots++;
}
flush();
}
function create_directory($directory, $dir_struct)
{
if (!file_exists($directory))
{
$this->run_command("mkdir $directory");
}
if (is_array($dir_struct))
{
foreach ($dir_struct as $_dir => $_dir_struct)
{
$this->create_directory($directory . '/' . $_dir, $_dir_struct);
}
}
}
function collect_diff_files($diff_filename, $package_name)
{
$diff_result = $binary = array();
$diff_contents = file($diff_filename);
$special_diff_contents = array();
foreach ($diff_contents as $num => $line)
{
$line = trim($line);
if (!$line)
{
continue;
}
// Special diff content?
if (strpos($line, 'diff ' . $this->diff_options . ' ') === 0 || strpos($line, '*** ') === 0 || strpos($line, '--- ') === 0 || (strpos($line, ' Exp $') !== false && strpos($line, '$Id:') !== false))
{
$special_diff_contents[] = $line;
}
else if (strpos($line, 'diff ' . $this->diff_options . ' ') === 0 || strpos($line, '*** ') === 0 || strpos($line, '--- ') === 0 || (strpos($line, ' Exp $') !== false && strpos($line, '$Id:') !== false) || (strpos($line, ' $') !== false && strpos($line, '$Id:') !== false))
{
$special_diff_contents[] = $line;
}
// Is diffing line?
if (strstr($line, 'diff ' . $this->diff_options . ' '))
{
$next_line = $diff_contents[$num+1];
if (strpos($next_line, '***') === 0)
{
// *** phpbb208/admin/admin_board.php Sat Jul 10 20:16:26 2004
$next_line = explode("\t", $next_line);
$next_line = trim($next_line[0]);
$next_line = str_replace('*** ' . $package_name . '/', '', $next_line);
$diff_result[] = $next_line;
}
}
// Is binary?
if (preg_match('/^Binary files ' . $package_name . '\/(.*) and [a-z0-9_-]+\/\1 differ/i', $line, $match))
{
$binary[] = trim($match[1]);
}
}
// Now go through the list again and find out which files have how many changes...
$num_changes = array();
/* [1070] => diff -crN phpbb200/includes/usercp_avatar.php phpbb2023/includes/usercp_avatar.php
[1071] => *** phpbb200/includes/usercp_avatar.php Sat Jul 10 20:16:13 2004
[1072] => --- phpbb2023/includes/usercp_avatar.php Wed Feb 6 22:28:04 2008
[1073] => *** 6,12 ****
[1074] => ! * $Id$
[1075] => --- 6,12 ----
[1076] => *** 51,59 ****
[1077] => --- 51,60 ----
[1078] => *** 62,80 ****
[1079] => --- 63,108 ----
[1080] => *** 87,97 ****
*/
while (($line = array_shift($special_diff_contents)) !== NULL)
{
$line = trim($line);
if (!$line)
{
continue;
}
// Is diffing line?
if (strstr($line, 'diff ' . $this->diff_options . ' '))
{
$next_line = array_shift($special_diff_contents);
if (strpos($next_line, '*** ') === 0)
{
// *** phpbb208/admin/admin_board.php Sat Jul 10 20:16:26 2004
$next_line = explode("\t", $next_line);
$next_line = trim($next_line[0]);
$next_line = str_replace('*** ' . $package_name . '/', '', $next_line);
$is_reached = false;
$prev_line = '';
while (!$is_reached)
{
$line = array_shift($special_diff_contents);
if (strpos($line, 'diff ' . $this->diff_options) === 0 || empty($special_diff_contents))
{
$is_reached = true;
array_unshift($special_diff_contents, $line);
continue;
}
if (strpos($line, '*** ') === 0 && strpos($line, ' ****') !== false)
{
$is_comment = false;
while (!(strpos($line, '--- ') === 0 && strpos($line, ' ----') !== false))
{
$line = array_shift($special_diff_contents);
if (strpos($line, ' Exp $') !== false || strpos($line, '$Id:') !== false)
{
$is_comment = true;
}
}
if (!$is_comment)
{
if (!isset($num_changes[$next_line]))
{
$num_changes[$next_line] = 1;
}
else
{
$num_changes[$next_line]++;
}
}
}
}
}
}
}
// Now remove those results not having changes
$return = array();
foreach ($diff_result as $key => $value)
{
if (isset($num_changes[$value]))
{
$return[] = $value;
}
}
foreach ($binary as $value)
{
$return[] = $value;
}
$diff_result = $return;
unset($return);
unset($special_diff_contents);
$result = array(
'files' => array(),
'binary' => array(),
'all' => $diff_result,
);
$binary_extensions = array('gif', 'jpg', 'jpeg', 'png', 'ttf');
// Split into file and binary
foreach ($diff_result as $filename)
{
if (strpos($filename, '.') === false)
{
$result['files'][] = $filename;
continue;
}
$extension = explode('.', $filename);
$extension = array_pop($extension);
if (in_array($extension, $binary_extensions))
{
$result['binary'][] = $filename;
}
else
{
$result['files'][] = $filename;
}
}
return $result;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,521 +0,0 @@
#!/usr/bin/env php
<?php
/**
*
* @package build
* @version $Id$
* @copyright (c) 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
// The only thing i need to adjust. ;)
// Please always add the latest version number to the end
// Only have 5 releases here...
// If RC8 drops remove the install/data directory
//$versions = array('3.0.2', '3.0.3-RC1', '3.0.3', '3.0.4-RC1', '3.0.4', '3.0.5-RC1', '3.0.5', '3.0.6-RC1', '3.0.6-RC2', '3.0.6-RC3');
//$versions = array('3.0.2', '3.0.3', '3.0.4', '3.0.5', '3.0.6', '3.0.7-RC1', '3.0.7');
$versions = array('3.0.2', '3.0.3-RC1', '3.0.3', '3.0.4-RC1', '3.0.4', '3.0.5-RC1', '3.0.5', '3.0.6-RC1', '3.0.6-RC2', '3.0.6-RC3', '3.0.6-RC4', '3.0.6', '3.0.7-RC1', '3.0.7-RC2');
$verbose = false;
require('build_helper.php');
$package = new build_package($versions, $verbose);
echo "Building Release Packages\n";
echo "Now all three package types (patch, files, release) are built as well as the update package (update).\n";
$package->begin_status('Remove temporary files');
// Cleanup...
$package->run_command('rm -Rv ' . $package->get('dest_dir'));
$package->run_command('rm -Rv ' . $package->get('diff_dir'));
$package->run_command('rm -Rv ' . $package->get('patch_directory'));
$package->run_command('rm -Rv ' . $package->get('files_directory'));
$package->run_command('rm -Rv ' . $package->get('update_directory'));
$package->run_command('rm -Rv ' . $package->get('release_directory'));
$package->begin_status('Create new directories');
// Make sure the directories got removed
while (file_exists($package->get('update_directory')))
{
sleep(1);
}
if (!file_exists($package->get('dest_dir')))
{
$package->run_command('mkdir ' . $package->get('dest_dir'));
}
if (!file_exists($package->get('diff_dir')))
{
$package->run_command('mkdir ' . $package->get('diff_dir'));
}
if (!file_exists($package->get('patch_directory')))
{
$package->run_command('mkdir ' . $package->get('patch_directory'));
}
if (!file_exists($package->get('files_directory')))
{
$package->run_command('mkdir ' . $package->get('files_directory'));
}
if (!file_exists($package->get('update_directory')))
{
$package->run_command('mkdir ' . $package->get('update_directory'));
}
if (!file_exists($package->get('release_directory')))
{
$package->run_command('mkdir ' . $package->get('release_directory'));
}
$package->begin_status('Copy release files to clean release directory');
// Create config.php file
$package->run_command('touch ' . $package->get('dest_dir') . '/config.php');
//$package->run_command('sudo chown www-data:www-data ' . $package->get('dest_dir') . '/config.php');
// Create new directory structure
foreach ($package->clean_directory_structure as $dir => $dir_struct)
{
$package->create_directory($package->get('dest_dir') . '/' . $dir, $dir_struct);
}
// First step is to copy the new version over (clean structure)
foreach ($package->files_to_copy as $file)
{
$source_file = $package->locations['new_version'] . $file;
$dest_file = $package->get('dest_dir') . '/' . $file;
$package->run_command("cp -p $source_file $dest_file");
}
// fix line endings
chdir($package->get('dest_dir'));
$package->run_command($package->locations['new_version'] . 'develop/fix_files.sh');
// Now clean up the permissions
$package->begin_status('Adjust permissions');
$package->adjust_permissions($package->get('dest_dir'));
// Now create a version for diffing the version - copy the tree over to old_versions...
$package->begin_status('Create diff directory for obtaining file differences');
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/* ' . $package->get('diff_dir'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/.htaccess ' . $package->get('diff_dir'));
// Cleanup diff directory (only contents to diff)
foreach ($package->remove_from_diff_structure as $remove_dir)
{
$package->run_command('rm -Rv ' . $package->get('diff_dir') . '/' . $remove_dir);
}
// Now, first of all we need to rebuild all old packages we want to support
foreach ($package->old_packages as $package_name => $tag_name)
{
$package->begin_status('Create old packages directory for diffing to ' . $package_name);
chdir($package->locations['old_versions']);
if (is_dir($package->locations['old_versions'] . $package_name))
{
$package->run_command('rm -Rv ' . $package->locations['old_versions'] . $package_name);
}
// Now, create a new one...
$tag_name = 'release_' . str_replace(array('.', '_to_'), array('_', ''), $tag_name);
$package->run_command('svn export --non-interactive http://code.phpbb.com/svn/phpbb/tags/' . $tag_name . '/phpBB/ ' . $package_name);
$location = $package->locations['old_versions'] . $package_name;
chdir($location . '/');
$package->run_command($package->locations['new_version'] . 'develop/fix_files.sh');
// Now clean up the permissions
$package->begin_status('Adjust permissions for package ' . $package_name);
$package->adjust_permissions($location);
// Cleanup diff directory (only contents to diff)
foreach ($package->remove_from_diff_structure as $remove_dir)
{
$package->run_command('rm -Rv ' . $location . '/' . $remove_dir);
}
}
// Go trough all versions making a diff if we even have old versions
// For phpBB 3.0.x we might choose a different update method, rendering the things below useless...
if (sizeof($package->old_packages))
{
chdir($package->locations['old_versions']);
// This array is for holding the filenames change
$diff_file_changes = array();
foreach ($package->old_packages as $_package_name => $dest_package_filename)
{
$package->begin_status('Creating patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number'));
$dest_package_filename = $package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch';
$package->run_command('diff ' . $package->diff_options . ' ' . $_package_name . ' ' . $package->get('simple_name') . ' > ' . $dest_package_filename);
// Parse this diff to determine file changes from the checked versions and save them
$diff_file_changes[$_package_name] = $package->collect_diff_files($dest_package_filename, $_package_name);
}
// Now put those files determined within the correct directories
foreach ($diff_file_changes as $_package_name => $file_contents)
{
$package->begin_status('Creating files-only informations for ' . $package->old_packages[$_package_name] . $package->get('new_version_number'));
$dest_filename_dir = $package->get('files_directory') . '/' . $package->old_packages[$_package_name] . $package->get('new_version_number');
if (!file_exists($dest_filename_dir))
{
$package->run_command('mkdir ' . $dest_filename_dir);
}
// Now copy the file contents
foreach ($file_contents['all'] as $file)
{
$source_filename = $package->get('dest_dir') . '/' . $file;
$dest_filename = $dest_filename_dir . '/' . $file;
// Create Directories along the way?
$file = explode('/', $file);
// Remove filename portion
$file[sizeof($file)-1] = '';
chdir($dest_filename_dir);
foreach ($file as $entry)
{
$entry = trim($entry);
if ($entry)
{
if (!file_exists('./' . $entry))
{
$package->run_command('mkdir ' . $entry);
}
chdir('./' . $entry);
}
}
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
}
}
// Because there might be binary changes, we re-create the patch files... without parsing file differences.
$package->run_command('rm -Rv ' . $package->get('patch_directory'));
if (!file_exists($package->get('patch_directory')))
{
$package->run_command('mkdir ' . $package->get('patch_directory'));
}
chdir($package->locations['old_versions']);
foreach ($package->old_packages as $_package_name => $dest_package_filename)
{
$package->begin_status('Creating patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number'));
$dest_package_filename = $package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch';
$package->run_command('diff ' . $package->diff_options_long . ' ' . $_package_name . ' ' . $package->get('simple_name') . ' > ' . $dest_package_filename);
}
$packages = $diff_file_changes;
foreach ($packages as $_package_name => $file_contents)
{
$package->begin_status('Building specific update files for ' . $package->old_packages[$_package_name] . $package->get('new_version_number'));
$dest_filename_dir = $package->get('update_directory') . '/' . $package->old_packages[$_package_name] . $package->get('new_version_number');
if (!file_exists($dest_filename_dir))
{
$package->run_command('mkdir ' . $dest_filename_dir);
}
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $dest_filename_dir);
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $dest_filename_dir);
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update');
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/old');
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/new');
// Remove some files
$package->run_command('rm -v ' . $dest_filename_dir . '/install/install_install.php');
$package->run_command('rm -v ' . $dest_filename_dir . '/install/install_convert.php');
$package->run_command('rm -Rv ' . $dest_filename_dir . '/install/schemas');
$package->run_command('rm -Rv ' . $dest_filename_dir . '/install/convertors');
foreach ($file_contents['all'] as $index => $file)
{
if (strpos($file, 'recode_cjk') !== false)
{
unset($file_contents['all'][$index]);
}
}
// First of all, fill the 'old' directory
foreach ($file_contents['all'] as $file)
{
$source_filename = $package->locations['old_versions'] . $_package_name . '/' . $file;
$dest_filename = $dest_filename_dir . '/install/update/old/' . $file;
if (!file_exists($source_filename))
{
continue;
}
// Create Directories along the way?
$file = explode('/', $file);
// Remove filename portion
$file[sizeof($file)-1] = '';
chdir($dest_filename_dir . '/install/update/old');
foreach ($file as $entry)
{
$entry = trim($entry);
if ($entry)
{
if (!file_exists('./' . $entry))
{
$package->run_command('mkdir ' . $entry);
}
chdir('./' . $entry);
}
}
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
}
// Then fill the 'new' directory
foreach ($file_contents['all'] as $file)
{
$source_filename = $package->locations['old_versions'] . $package->get('simple_name') . '/' . $file;
$dest_filename = $dest_filename_dir . '/install/update/new/' . $file;
if (!file_exists($source_filename))
{
continue;
}
// Create Directories along the way?
$file = explode('/', $file);
// Remove filename portion
$file[sizeof($file)-1] = '';
chdir($dest_filename_dir . '/install/update/new');
foreach ($file as $entry)
{
$entry = trim($entry);
if ($entry)
{
if (!file_exists('./' . $entry))
{
$package->run_command('mkdir ' . $entry);
}
chdir('./' . $entry);
}
}
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
}
// Build index.php file for holding the file structure
$index_contents = '<?php
if (!defined(\'IN_PHPBB\'))
{
exit;
}
// Set update info with file structure to update
$update_info = array(
\'version\' => array(\'from\' => \'' . str_replace('_to_', '', $package->old_packages[$_package_name]) . '\', \'to\' => \'' . $package->get('new_version_number') . '\'),
';
if (sizeof($file_contents['all']))
{
$index_contents .= '\'files\' => array(\'' . implode("',\n\t'", $file_contents['all']) . '\'),
';
}
else
{
$index_contents .= '\'files\' => array(),
';
}
if (sizeof($file_contents['binary']))
{
$index_contents .= '\'binary\' => array(\'' . implode("',\n\t'", $file_contents['binary']) . '\'),
';
}
else
{
$index_contents .= '\'binary\' => array(),
';
}
$index_contents .= ');
?' . '>';
$fp = fopen($dest_filename_dir . '/install/update/index.php', 'wt');
fwrite($fp, $index_contents);
fclose($fp);
}
unset($diff_file_changes);
$package->begin_status('Clean up all install files');
// Copy the install files to their respective locations
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('patch_directory'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('patch_directory'));
// Remove some files
chdir($package->get('patch_directory') . '/install');
$package->run_command('rm -v install_install.php');
$package->run_command('rm -v install_update.php');
$package->run_command('rm -v install_convert.php');
$package->run_command('rm -Rv schemas');
$package->run_command('rm -Rv convertors');
}
// Build Main phpBB Release
$compress_programs = array(
// 'tar.gz' => 'tar -czf',
'tar.bz2' => 'tar -cjf',
'zip' => 'zip -r'
);
if (sizeof($package->old_packages))
{
// Build Patch Files
chdir($package->get('patch_directory'));
foreach ($compress_programs as $extension => $compress_command)
{
$package->begin_status('Packaging phpBB Patch Files for ' . $extension);
$package->run_command('rm -v ../release_files/' . $package->get('release_filename') . '-patch.' . $extension);
// Build Package
$package->run_command($compress_command . ' ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . ' *');
// Build MD5 Sum
$package->run_command('md5sum ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . ' > ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . '.md5');
}
// Build Files Package
chdir($package->get('files_directory'));
foreach ($compress_programs as $extension => $compress_command)
{
$package->begin_status('Packaging phpBB Files for ' . $extension);
$package->run_command('rm -v ../release_files/' . $package->get('release_filename') . '-files.' . $extension);
$package->run_command('mkdir ' . $package->get('files_directory') . '/release');
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('files_directory') . '/release');
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('files_directory') . '/release');
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_install.php');
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_update.php');
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_convert.php');
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release/install/schemas');
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release/install/convertors');
// Pack files
foreach ($package->old_packages as $_package_name => $package_path)
{
chdir($package_path . $package->get('new_version_number'));
$command = ($extension == 'zip') ? 'zip -r' : 'tar cf';
$_ext = ($extension == 'zip') ? 'zip' : 'tar';
$package->run_command("$command ../release/phpBB-$package_path" . $package->get('new_version_number') . ".$_ext *");
chdir('..');
}
chdir('./release');
$package->run_command("$compress_command ../../release_files/" . $package->get('release_filename') . '-files.' . $extension . ' *');
// Build MD5 Sum
$package->run_command('md5sum ../../release_files/' . $package->get('release_filename') . '-files.' . $extension . ' > ../../release_files/' . $package->get('release_filename') . '-files.' . $extension . '.md5');
chdir('..');
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release');
}
// Build Update Package
foreach ($compress_programs as $extension => $compress_command)
{
chdir($package->get('update_directory'));
$package->begin_status('Packaging phpBB Update for ' . $extension);
$package->run_command('rm -v ../release_files/' . $package->get('release_filename') . '-update.' . $extension);
$package->run_command('mkdir ' . $package->get('update_directory') . '/release');
// Pack update files
$packages = $package->old_packages;
foreach ($packages as $_package_name => $package_path)
{
chdir($package_path . $package->get('new_version_number'));
$package->run_command('rm -v install/install_install.php');
$package->run_command('rm -v install/install_convert.php');
$package->run_command('rm -v includes/utf/data/recode_cjk.php');
$package->run_command('rm -Rv install/schemas');
$package->run_command('rm -Rv install/convertors');
$command = ($extension == 'zip') ? 'zip -r' : 'tar cf';
$_ext = ($extension == 'zip') ? 'zip' : 'tar';
$package->run_command("$command ../release/$package_path" . $package->get('new_version_number') . ".$_ext *");
chdir('..');
$last_version = $package_path . $package->get('new_version_number');
// chdir('./release');
// $package->run_command("$compress_command ../../release_files/" . $package->get('release_filename') . '-update.' . $extension . ' *');
// chdir('..');
chdir('./' . $last_version);
// Copy last package over...
$package->run_command('rm -v ../release_files/phpBB-' . $last_version . ".$extension");
$package->run_command("$compress_command ../../release_files/phpBB-$last_version.$extension *");
// Build MD5 Sum
$package->run_command("md5sum ../../release_files/phpBB-$last_version.$extension > ../../release_files/phpBB-$last_version.$extension.md5");
chdir('..');
}
$package->run_command('rm -Rv ' . $package->get('update_directory') . '/release');
}
}
// Delete updater and convertor from main archive
chdir($package->get('dest_dir') . '/install');
// $package->run_command('rm -v database_update.php');
$package->run_command('rm -v install_update.php');
chdir($package->locations['package_dir']);
foreach ($compress_programs as $extension => $compress_command)
{
$package->begin_status('Packaging phpBB for ' . $extension);
$package->run_command('rm -v ./release_files/' . $package->get('release_filename') . ".{$extension}");
// Build Package
$package->run_command("$compress_command ./release_files/" . $package->get('release_filename') . '.' . $extension . ' ' . $package->get('package_name'));
// Build MD5 Sum
$package->run_command('md5sum ./release_files/' . $package->get('release_filename') . '.' . $extension . ' > ./release_files/' . $package->get('release_filename') . '.' . $extension . '.md5');
}
echo "Done.\n";

View File

@@ -1,13 +1,3 @@
#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>
<Files "config.php">
Order Allow,Deny
Deny from All

0
phpBB/adm/images/progress_bar.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -15,7 +15,7 @@ define('ADMIN_START', true);
define('NEED_SID', true);
// Include files
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
@@ -27,6 +27,12 @@ $auth->acl($user->data);
$user->setup('acp/common');
// End session management
// Did user forget to login? Give 'em a chance to here ...
if ($user->data['user_id'] == ANONYMOUS)
{
login_box('', $user->lang['LOGIN_ADMIN'], $user->lang['LOGIN_ADMIN_SUCCESS'], true);
}
// Have they authenticated (again) as an admin for this session?
if (!isset($user->data['session_admin']) || !$user->data['session_admin'])
{
@@ -37,16 +43,16 @@ if (!isset($user->data['session_admin']) || !$user->data['session_admin'])
// check specific permissions but this is a catchall
if (!$auth->acl_get('a_'))
{
trigger_error('NO_ADMIN');
trigger_error($user->lang['NO_ADMIN']);
}
// We define the admin variables now, because the user is now able to use the admin related features...
define('IN_ADMIN', true);
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : './';
$phpbb_admin_path = './';
// Some oft used variables
$safe_mode = (@ini_get('safe_mode') == '1' || strtolower(@ini_get('safe_mode')) === 'on') ? true : false;
$file_uploads = (@ini_get('file_uploads') == '1' || strtolower(@ini_get('file_uploads')) === 'on') ? true : false;
$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;
$module_id = request_var('i', '');
$mode = request_var('mode', '');
@@ -77,8 +83,8 @@ $module->load_active();
adm_page_header($module->get_page_title());
$template->set_filenames(array(
'body' => $module->get_tpl_name(),
));
'body' => $module->get_tpl_name())
);
adm_page_footer();
@@ -116,7 +122,6 @@ function adm_page_header($page_title)
'ROOT_PATH' => $phpbb_admin_path,
'U_LOGOUT' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout'),
'U_ADM_LOGOUT' => append_sid("{$phpbb_admin_path}index.$phpEx", 'action=admlogout'),
'U_ADM_INDEX' => append_sid("{$phpbb_admin_path}index.$phpEx"),
'U_INDEX' => append_sid("{$phpbb_root_path}index.$phpEx"),
@@ -131,7 +136,7 @@ function adm_page_header($page_title)
'ICON_MOVE_UP' => '<img src="' . $phpbb_admin_path . 'images/icon_up.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
'ICON_MOVE_UP_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_up_disabled.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
'ICON_MOVE_DOWN' => '<img src="' . $phpbb_admin_path . 'images/icon_down.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
'ICON_MOVE_DOWN_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_down_disabled.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
'ICON_MOVE_DOWN_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_down_disabled.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
'ICON_EDIT' => '<img src="' . $phpbb_admin_path . 'images/icon_edit.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
'ICON_EDIT_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_edit_disabled.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
'ICON_DELETE' => '<img src="' . $phpbb_admin_path . 'images/icon_delete.gif" alt="' . $user->lang['DELETE'] . '" title="' . $user->lang['DELETE'] . '" />',
@@ -142,8 +147,6 @@ function adm_page_header($page_title)
'S_USER_LANG' => $user->lang['USER_LANG'],
'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'],
'S_CONTENT_ENCODING' => 'UTF-8',
'S_CONTENT_FLOW_BEGIN' => ($user->lang['DIRECTION'] == 'ltr') ? 'left' : 'right',
'S_CONTENT_FLOW_END' => ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left',
));
// application/xhtml+xml not used because of IE
@@ -185,7 +188,7 @@ function adm_page_footer($copyright_html = true)
{
global $base_memory_usage;
$memory_usage -= $base_memory_usage;
$memory_usage = get_formatted_filesize($memory_usage);
$memory_usage = ($memory_usage >= 1048576) ? round((round($memory_usage / 1048576 * 100) / 100), 2) . ' ' . $user->lang['MB'] : (($memory_usage >= 1024) ? round((round($memory_usage / 1024 * 100) / 100), 2) . ' ' . $user->lang['KB'] : $memory_usage . ' ' . $user->lang['BYTES']);
$debug_output .= ' | Memory Usage: ' . $memory_usage;
}
@@ -205,7 +208,8 @@ function adm_page_footer($copyright_html = true)
$template->display('body');
garbage_collection();
exit_handler();
exit;
}
/**
@@ -263,12 +267,6 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
$tpl = '';
$name = 'config[' . $config_key . ']';
// Make sure there is no notice printed out for non-existent config options (we simply set them)
if (!isset($new[$config_key]))
{
$new[$config_key] = '';
}
switch ($tpl_type[0])
{
case 'text':
@@ -283,7 +281,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input id="' . $key . '" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
$tpl = '<input id="' . $key . '" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" /> x <input type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" />';
break;
case 'textarea':
@@ -308,7 +306,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
case 'select':
case 'custom':
$return = '';
if (isset($vars['method']))
@@ -347,7 +345,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
{
$args = array($new[$config_key], $key);
}
$return = call_user_func_array($call, $args);
if ($tpl_type[0] == 'select')
@@ -374,15 +372,11 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
}
/**
* Going through a config array and validate values, writing errors to $error. The validation method accepts parameters separated by ':' for string and int.
* The first parameter defines the type to be used, the second the lower bound and the third the upper bound. Only the type is required.
* Going through a config array and validate values, writing errors to $error.
*/
function validate_config_vars($config_vars, &$cfg_array, &$error)
{
global $phpbb_root_path, $user;
$type = 0;
$min = 1;
$max = 2;
foreach ($config_vars as $config_name => $config_definition)
{
@@ -396,42 +390,15 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
continue;
}
$validator = explode(':', $config_definition['validate']);
// Validate a bit. ;) (0 = type, 1 = min, 2= max)
switch ($validator[$type])
// Validate a bit. ;) String is already checked through request_var(), therefore we do not check this again
switch ($config_definition['validate'])
{
case 'string':
$length = strlen($cfg_array[$config_name]);
// the column is a VARCHAR
$validator[$max] = (isset($validator[$max])) ? min(255, $validator[$max]) : 255;
if (isset($validator[$min]) && $length < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_SHORT'], $user->lang[$config_definition['lang']], $validator[$min]);
}
else if (isset($validator[$max]) && $length > $validator[2])
{
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$config_definition['lang']], $validator[$max]);
}
break;
case 'bool':
$cfg_array[$config_name] = ($cfg_array[$config_name]) ? 1 : 0;
break;
case 'int':
$cfg_array[$config_name] = (int) $cfg_array[$config_name];
if (isset($validator[$min]) && $cfg_array[$config_name] < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$config_definition['lang']], $validator[$min]);
}
else if (isset($validator[$max]) && $cfg_array[$config_name] > $validator[$max])
{
$error[] = sprintf($user->lang['SETTING_TOO_BIG'], $user->lang[$config_definition['lang']], $validator[$max]);
}
break;
// Absolute path
@@ -463,21 +430,6 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
break;
// Absolute path
case 'lang':
if (!$cfg_array[$config_name])
{
break;
}
$cfg_array[$config_name] = basename($cfg_array[$config_name]);
if (!file_exists($phpbb_root_path . 'language/' . $cfg_array[$config_name] . '/'))
{
$error[] = $user->lang['WRONG_DATA_LANG'];
}
break;
// Relative path (appended $phpbb_root_path)
case 'rpath':
case 'rwpath':
@@ -514,7 +466,7 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
$cfg_array[$config_name] = trim($cfg_array[$config_name]);
// Make sure no NUL byte is present...
if (strpos($cfg_array[$config_name], "\0") !== false || strpos($cfg_array[$config_name], '%00') !== false)
if (strpos($cfg_array[$config_name], '\0') !== false || strpos($cfg_array[$config_name], '%00') !== false)
{
$cfg_array[$config_name] = '';
break;
@@ -546,62 +498,4 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
return;
}
/**
* Checks whatever or not a variable is OK for use in the Database
* param mixed $value_ary An array of the form array(array('lang' => ..., 'value' => ..., 'column_type' =>))'
* param mixed $error The error array
*/
function validate_range($value_ary, &$error)
{
global $user;
$column_types = array(
'BOOL' => array('php_type' => 'int', 'min' => 0, 'max' => 1),
'USINT' => array('php_type' => 'int', 'min' => 0, 'max' => 65535),
'UINT' => array('php_type' => 'int', 'min' => 0, 'max' => (int) 0x7fffffff),
'INT' => array('php_type' => 'int', 'min' => (int) 0x80000000, 'max' => (int) 0x7fffffff),
'TINT' => array('php_type' => 'int', 'min' => -128, 'max' => 127),
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => 255),
);
foreach ($value_ary as $value)
{
$column = explode(':', $value['column_type']);
$max = $min = 0;
$type = 0;
if (!isset($column_types[$column[0]]))
{
continue;
}
else
{
$type = $column_types[$column[0]];
}
switch ($type['php_type'])
{
case 'string' :
$max = (isset($column[1])) ? min($column[1],$type['max']) : $type['max'];
if (strlen($value['value']) > $max)
{
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$value['lang']], $max);
}
break;
case 'int':
$min = (isset($column[1])) ? max($column[1],$type['min']) : $type['min'];
$max = (isset($column[2])) ? min($column[2],$type['max']) : $type['max'];
if ($value['value'] < $min)
{
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$value['lang']], $min);
}
else if ($value['value'] > $max)
{
$error[] = sprintf($user->lang['SETTING_TOO_BIG'], $user->lang[$value['lang']], $max);
}
break;
}
}
}
?>

View File

@@ -3,7 +3,7 @@
<a name="maincontent"></a>
<!-- IF U_BACK -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<!-- ENDIF -->
<h1>{L_TITLE}</h1>
@@ -16,7 +16,7 @@
<p>{WARNING_MSG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_NOTIFY -->
<div class="successbox">
<h3>{L_NOTIFY}</h3>
@@ -109,24 +109,25 @@
<!-- ELSE -->
<p>{L_NO_IPS_DEFINED}</p>
<!-- ENDIF -->
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_EXTENSION_GROUPS -->
<!-- IF S_EDIT_GROUP -->
<script type="text/javascript" defer="defer">
// <![CDATA[
<!--
function update_image(newimage)
{
if (newimage == 'no_image')
{
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}images/spacer.gif";
document.image_upload_icon.src = "{PHPBB_ROOT_PATH}images/spacer.gif";
}
else
{
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}{IMG_PATH}/" + newimage;
document.image_upload_icon.src = "{PHPBB_ROOT_PATH}{IMG_PATH}/" + newimage;
}
}
@@ -162,7 +163,7 @@
}
}
// ]]>
//-->
</script>
<form id="extgroups" method="post" action="{U_ACTION}">
@@ -192,7 +193,7 @@
<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 --> id="image_upload_icon" alt="" title="" />&nbsp;</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>
@@ -214,7 +215,7 @@
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
@@ -254,10 +255,9 @@
</tbody>
</table>
<p class="quick">
{L_CREATE_GROUP}: <input type="text" name="group_name" maxlength="30" />
{L_CREATE_GROUP}: <input type="text" name="group_name" maxlength="30" />
<input class="button2" name="add" type="submit" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
@@ -280,10 +280,10 @@
<p class="quick">
<input type="submit" id="add_extension_check" name="add_extension_check" class="button2" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
</form>
<br />
<form id="change_ext" method="post" action="{U_ACTION}">
@@ -307,7 +307,7 @@
<td class="spacer" colspan="3">&nbsp;</td>
</tr>
<!-- ENDIF -->
<tr>
<tr>
<td><strong>{extensions.EXTENSION}</strong></td>
<td>{extensions.GROUP_OPTIONS}</td>
<td><input type="checkbox" class="radio" name="extension_id_list[]" value="{extensions.EXTENSION_ID}" /><input type="hidden" name="extension_change_list[]" value="{extensions.EXTENSION_ID}" /></td>
@@ -320,8 +320,8 @@
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_ORPHAN -->
@@ -367,10 +367,11 @@
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -9,34 +9,34 @@
<p>{L_EXPLAIN}</p>
<script type="text/javascript">
// <![CDATA[
<!--
var ban_length = new Array();
ban_length[-1] = '';
<!-- BEGIN ban_length -->
ban_length['{ban_length.BAN_ID}'] = '{ban_length.A_LENGTH}';
ban_length['{ban_length.BAN_ID}'] = "{ban_length.A_LENGTH}";
<!-- END ban_length -->
var ban_reason = new Array();
ban_reason[-1] = '';
<!-- BEGIN ban_reason -->
ban_reason['{ban_reason.BAN_ID}'] = '{ban_reason.A_REASON}';
ban_reason['{ban_reason.BAN_ID}'] = "{ban_reason.A_REASON}";
<!-- END ban_reason -->
var ban_give_reason = new Array();
ban_give_reason[-1] = '';
<!-- BEGIN ban_give_reason -->
ban_give_reason['{ban_give_reason.BAN_ID}'] = '{ban_give_reason.A_REASON}';
ban_give_reason['{ban_give_reason.BAN_ID}'] = "{ban_give_reason.A_REASON}";
<!-- END ban_give_reason -->
function display_details(option)
{
document.getElementById('acp_unban').unbangivereason.value = ban_give_reason[option];
document.getElementById('acp_unban').unbanreason.value = ban_reason[option];
document.getElementById('acp_unban').unbanlength.value = ban_length[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}">
@@ -46,7 +46,7 @@
<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="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF -->
<!-- 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>
@@ -60,20 +60,18 @@
</dl>
<dl>
<dt><label for="banreason">{L_BAN_REASON}:</label></dt>
<dd><input name="banreason" type="text" class="text medium" maxlength="255" id="banreason" /></dd>
<dd><input name="banreason" type="text" class="text medium" maxlength="3000" id="banreason" /></dd>
</dl>
<dl>
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><input name="bangivereason" type="text" class="text medium" maxlength="255" id="bangivereason" /></dd>
<dd><input name="bangivereason" type="text" class="text medium" maxlength="3000" id="bangivereason" /></dd>
</dl>
<p 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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<br /><br />
@@ -81,8 +79,6 @@
<p>{L_UNBAN_EXPLAIN}</p>
<form id="acp_unban" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_UNBAN_TITLE}</legend>
@@ -93,32 +89,30 @@
</dl>
<dl>
<dt><label for="unbanlength">{L_BAN_LENGTH}:</label></dt>
<dd><input style="border: 0;" type="text" class="text full" readonly="readonly" name="unbanlength" id="unbanlength" /></dd>
<dd><input style="border: 0;" type="text" class="text full" disabled="disabled" name="unbanlength" id="unbanlength" /></dd>
</dl>
<dl>
<dt><label for="unbanreason">{L_BAN_REASON}:</label></dt>
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbanreason" id="unbanreason" rows="5" cols="80">&nbsp;</textarea></dd>
<dd><input style="border: 0;" type="text" class="text full" disabled="disabled" name="unbanreason" id="unbanreason" /></dd>
</dl>
<dl>
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbangivereason" id="unbangivereason" rows="5" cols="80">&nbsp;</textarea></dd>
<dd><input style="border: 0;" type="text" class="text full" disabled="disabled" name="unbangivereason" id="unbangivereason" /></dd>
</dl>
<p 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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
<!-- ELSE -->
<p>{L_NO_BAN_CELL}</p>
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
</form>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -4,7 +4,7 @@
<!-- IF S_EDIT_BBCODE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_BBCODES}</h1>
@@ -51,7 +51,6 @@
<legend>{L_SUBMIT}</legend>
<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}" />
{S_FORM_TOKEN}
</fieldset>
<br />
@@ -78,6 +77,7 @@
<!-- END token -->
</tbody>
</table>
</form>
<!-- ELSE -->
@@ -103,10 +103,6 @@
<td style="text-align: center;">{bbcodes.BBCODE_TAG}</td>
<td style="text-align: right; width: 40px;"><a href="{bbcodes.U_EDIT}">{ICON_EDIT}</a> <a href="{bbcodes.U_DELETE}">{ICON_DELETE}</a></td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">
<td colspan="2">{L_ACP_NO_ITEMS}</td>
</tr>
<!-- END bbcodes -->
</tbody>
</table>
@@ -114,7 +110,6 @@
<p class="quick">
<input class="button2" name="submit" type="submit" value="{L_ADD_BBCODE}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -37,13 +37,14 @@
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->
<p 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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<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

@@ -4,7 +4,7 @@
<!-- IF S_EDIT_BOT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -49,9 +49,9 @@
<p 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}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ELSE -->
@@ -85,16 +85,15 @@
</tbody>
</table>
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<fieldset class="quick" style="float: left;">
<input class="button2" name="add" type="submit" value="{L_BOT_ADD}" />
</fieldset>
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right;">
<select name="action">{S_BOT_OPTIONS}</select>
<input class="button2" name="submit" type="submit" value="{L_SUBMIT}" />
<p class="small"><a href="#" onclick="marklist('acp_bots', 'mark', true);">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('acp_bots', 'mark', false);">{L_UNMARK_ALL}</a></p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -17,55 +17,54 @@
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="enable_confirm" value="0"<!-- IF not REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
<dl>
<dt><label for="max_reg_attempts">{L_REG_LIMIT}:</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
<dd><input id="max_reg_attempts" type="text" size="4" maxlength="4" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}:</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
<dd><input id="max_login_attempts" type="text" size="4" maxlength="4" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
</dl>
<dl>
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}:</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"<!-- IF POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"<!-- IF not POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
<!-- IF GD -->
<dl>
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}:</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="confirm_refresh" name="confirm_refresh" value="1"<!-- IF CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="confirm_refresh" value="0"<!-- IF not CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
<dt><label for="captcha_gd">{L_CAPTCHA_GD}:</label><br /><span>{L_CAPTCHA_GD_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd" name="captcha_gd" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_AVAILABLE_CAPTCHAS}</legend>
<dl>
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}:</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
<dd><select id="captcha_select" name="select_captcha" onchange="(document.getElementById('acp_captcha')).submit()" >{CAPTCHA_SELECT}</select></dd>
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}:</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_foreground_noise" name="captcha_gd_foreground_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_foreground_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<!-- IF S_CAPTCHA_HAS_CONFIG -->
<dl>
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}:</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
<dd><input class="button2" type="submit" id="configure" name="configure" value="{L_CONFIGURE}" /></dd>
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}:</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="text" /></dd>
</dl>
<dl>
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}:</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="text" /></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<!-- IF CAPTCHA_PREVIEW_TPL -->
</fieldset>
<fieldset>
<legend>{L_PREVIEW}</legend>
<!-- INCLUDE {CAPTCHA_PREVIEW_TPL} -->
</fieldset>
<!-- IF PREVIEW -->
<div class="successbox">
<h3>{L_WARNING}</h3>
<p>{L_CAPTCHA_PREVIEW_MSG}</p>
</div>
<!-- ENDIF -->
<fieldset>
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
<p class="submit-buttons">
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />&nbsp;
</p>
{S_FORM_TOKEN}
<dl>
<dt><label for="captcha_preview">{L_PREVIEW}:</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
<dd><img src="{CAPTCHA_PREVIEW}" alt="{L_PREVIEW}" <!-- IF CAPTCHA_GD_PREVIEWED -->width="360" height="96"<!-- ELSE --> width="320" height="50"<!-- ENDIF --> id="captcha_preview" /></dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<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}" />&nbsp;
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -7,9 +7,8 @@
<p>{L_ACP_RESTORE_EXPLAIN}</p>
<!-- IF .files -->
<form id="acp_backup" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_RESTORE_OPTIONS}</legend>
<dl>
@@ -17,19 +16,16 @@
<dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF files.S_LAST_ROW --> selected="selected"<!-- ENDIF -->>{files.NAME}</option><!-- END files --></select></dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_START_RESTORE}" />&nbsp;
<input class="button2" type="submit" id="delete" name="delete" value="{L_DELETE_BACKUP}" />&nbsp;
<input class="button2" type="submit" id="download" name="download" value="{L_DOWNLOAD_BACKUP}" />
</p>
{S_FORM_TOKEN}
<!-- IF .files -->
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_START_RESTORE}" />&nbsp;
<input class="button2" type="submit" id="delete" name="delete" value="{L_DELETE_BACKUP}" />&nbsp;
<input class="button2" type="submit" id="download" name="download" value="{L_DOWNLOAD_BACKUP}" />
</p>
<!-- ENDIF -->
</fieldset>
</form>
<!-- ELSE -->
<div class="errorbox">
<p>{L_ACP_NO_ITEMS}</p>
</div>
<!-- ENDIF -->
<!-- ELSE -->
<h1>{L_ACP_BACKUP}</h1>
@@ -37,7 +33,7 @@
<p>{L_ACP_BACKUP_EXPLAIN}</p>
<script type="text/javascript">
// <![CDATA[
<!--
function selector(bool)
{
@@ -49,7 +45,7 @@
}
}
// ]]>
//-->
</script>
<form id="acp_backup" method="post" action="{U_ACTION}">
@@ -70,10 +66,9 @@
</dl>
<dl>
<dt><label for="where">{L_ACTION}:</label></dt>
<dd>
<label><input id="where" type="radio" class="radio" name="where" value="store" checked="checked" /> {L_STORE_LOCAL}</label>
<label><input type="radio" class="radio" name="where" value="download" /> {L_DOWNLOAD}</label>
</dd>
<dd><label><input type="radio" class="radio" name="where" value="store_and_download" id="where" checked="checked" /> {L_STORE_AND_DOWNLOAD}</label>
<label><input type="radio" class="radio" name="where" value="store" /> {L_STORE_LOCAL}</label>
<label><input type="radio" class="radio" name="where" value="download" /> {L_DOWNLOAD}</label></dd>
</dl>
<dl>
<dt><label for="table">{L_TABLE_SELECT}:</label></dt>
@@ -82,15 +77,15 @@
<option value="{tables.TABLE}">{tables.TABLE}</option>
<!-- END tables -->
</select></dd>
<dd><a href="#" onclick="selector(true); return false;">{L_SELECT_ALL}</a> :: <a href="#" onclick="selector(false); return false;">{L_DESELECT_ALL}</a></dd>
<dd><a href="#" onclick="selector(true)">{L_SELECT_ALL}</a> :: <a href="#" onclick="selector(false)">{L_DESELECT_ALL}</a></dd>
</dl>
<p 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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -4,7 +4,7 @@
<h1>{L_ACP_DISALLOW_USERNAMES}</h1>
<p>{L_ACP_DISALLOW_EXPLAIN}</p>
<p>{L_ADD_DISALLOW_EXPLAIN}</p>
<form id="acp_disallow" method="post" action="{U_ACTION}">
@@ -38,8 +38,8 @@
<!-- ELSE -->
<p>{L_NO_DISALLOWED}</p>
<!-- ENDIF -->
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -24,7 +24,7 @@
<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="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
<dl>
<dt><label for="subject">{L_SUBJECT}:</label></dt>
@@ -44,11 +44,11 @@
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_EMAIL}" />&nbsp;
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -5,7 +5,8 @@
<!-- IF S_EDIT_FORUM -->
<script type="text/javascript">
// <![CDATA[
<!--
/**
* Handle displaying/hiding several options based on the forum type
*/
@@ -91,12 +92,12 @@
<!-- ENDIF -->
}
// ]]>
//-->
</script>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE} <!-- IF FORUM_NAME -->:: {FORUM_NAME}<!-- ENDIF --></h1>
<h1>{L_TITLE} :: {FORUM_NAME}</h1>
<p>{L_FORUM_EDIT_EXPLAIN}</p>
@@ -119,8 +120,8 @@
<div id="type_actions">
<dl>
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}:</label></dt>
<dd><label><input type="radio" class="radio" name="type_action" value="delete"<!-- IF not S_MOVE_FORUM_OPTIONS --> checked="checked" id="type_action"<!-- ENDIF --> /> {L_DELETE_ALL_POSTS}</label></dd>
<!-- IF S_MOVE_FORUM_OPTIONS --><dd><label><input type="radio" class="radio" name="type_action" id="type_action" value="move" checked="checked" /> {L_MOVE_POSTS_TO}</label> <select name="to_forum_id">{S_MOVE_FORUM_OPTIONS}</select></dd><!-- ENDIF -->
<dd><label><input type="radio" class="radio" id="type_action" name="type_action" value="delete" checked="checked" /> {L_DELETE_ALL_POSTS}</label></dd>
<!-- IF S_MOVE_FORUM_OPTIONS --><dd><label><input type="radio" class="radio" name="type_action" value="move" /> {L_MOVE_POSTS_TO}</label> <select name="to_forum_id">{S_MOVE_FORUM_OPTIONS}</select></dd><!-- ENDIF -->
</dl>
</div>
<!-- ENDIF -->
@@ -160,28 +161,20 @@
</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="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" /></dd>
<dd><input type="password" id="forum_password" name="forum_password" value="{FORUM_PASSWORD}" maxlength="40" /></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="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" /></dd>
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="{FORUM_PASSWORD_CONFIRM}" /></dd>
</dl>
<!-- IF S_FORUM_PASSWORD_SET -->
<dl>
<dt><label for="forum_password_unset">{L_FORUM_PASSWORD_UNSET}:</label><br /><span>{L_FORUM_PASSWORD_UNSET_EXPLAIN}</span></dt>
<dd><input id="forum_password_unset" name="forum_password_unset" type="checkbox" /></dd>
</dl>
<!-- ENDIF -->
<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>
<!-- IF S_CAN_COPY_PERMISSIONS -->
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<div id="forum_cat_options">
@@ -202,11 +195,6 @@
<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="display_subforum_list">{L_LIST_SUBFORUMS}:</label><br /><span>{L_LIST_SUBFORUMS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_subforum_list" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="display_subforum_list" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
@@ -217,11 +205,6 @@
<dd><label><input type="radio" class="radio" name="enable_post_review" value="1"<!-- IF S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_post_review" value="0"<!-- IF not S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}:</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_quick_reply" value="1"<!-- IF S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_quick_reply" value="0"<!-- IF not S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}:</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_indexing" value="1"<!-- IF S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
@@ -327,13 +310,13 @@
<legend>{L_SUBMIT}</legend>
<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}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_DELETE_FORUM -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_FORUM_DELETE}</h1>
@@ -376,18 +359,19 @@
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_CONTINUE_SYNC -->
<script type="text/javascript">
// <![CDATA[
<!--
var close_waitscreen = 0;
// no scrollbars...
popup('{UA_PROGRESS_BAR}', 400, 240, '_sync');
// ]]>
window.open('{UA_PROGRESS_BAR}', '_sync', 'height=240, resizable=yes, scrollbars=no, width=400');
//-->
</script>
<h1>{L_FORUM_ADMIN}</h1>
@@ -399,17 +383,18 @@
<!-- ELSE -->
<script type="text/javascript">
// <![CDATA[
<!--
/**
* Popup search progress bar
*/
function popup_progress_bar()
{
var close_waitscreen = 0;
// no scrollbars...
popup('{UA_PROGRESS_BAR}', 400, 240, '_sync');
window.open('{UA_PROGRESS_BAR}', '_sync', 'height=240, resizable=yes, scrollbars=no, width=400');
}
// ]]>
//-->
</script>
<h1>{L_FORUM_ADMIN}</h1>
@@ -425,9 +410,9 @@
<!-- IF S_RESYNCED -->
<script type="text/javascript">
// <![CDATA[
<!--
var close_waitscreen = 1;
// ]]>
//-->
</script>
<div class="successbox">
@@ -446,16 +431,16 @@
<tr>
<td style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td>
<td>
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
<!-- IF forums.FORUM_IMAGE --><div style="float: left; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>
<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <b>{forums.FORUM_POSTS}</b></span><!-- ENDIF -->
</td>
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
<!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW-->
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF forums.S_LAST_ROW && not forums.S_FIRST_ROW -->
@@ -485,8 +470,8 @@
{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}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<form id="forums" method="post" action="{U_ACTION}">
@@ -496,8 +481,8 @@
<input type="text" name="forum_name" value="" maxlength="255" />
<input class="button2" name="addforum" type="submit" value="{L_CREATE_FORUM}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -1,22 +0,0 @@
<!-- INCLUDE overall_header.html -->
<h1>{L_COPY_PERMISSIONS}</h1>
<p>{L_COPY_PERMISSIONS_EXPLAIN}</p>
<p>{L_ACL_LINK}</p>
<form id="confirm" method="post" action="{S_COPY_ACTION}">
<fieldset>
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
<div style="text-align: center;">{S_FORM_TOKEN}{S_HIDDEN_FIELDS}
<input type="submit" name="update" value="{L_CONTINUE}" class="button2" />&nbsp;
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -4,7 +4,7 @@
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_GROUPS_MANAGE}</h1>
@@ -55,40 +55,28 @@
</fieldset>
<fieldset>
<legend>{L_GROUP_OPTIONS_SAVE}</legend>
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
<!-- IF S_USER_FOUNDER -->
<dl>
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}:</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
<dd><input name="group_founder_manage" type="checkbox" value="1" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
<dd><input name="group_founder_manage" type="checkbox" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}:</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
<dd><input name="group_skip_auth" type="checkbox" value="1" class="radio" id="group_skip_auth"{GROUP_SKIP_AUTH} /></dd>
</dl>
<dl>
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
<dd><input name="group_legend" type="checkbox" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
</dl>
<dl>
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
<dd><input name="group_receive_pm" type="checkbox" value="1" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
<dd><input name="group_receive_pm" type="checkbox" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
<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_max_recipients">{L_GROUP_MAX_RECIPIENTS}:</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
<dd><input name="group_max_recipients" type="text" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></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" /><!-- IF GROUP_COLOUR -->&nbsp;<span style="background-color: #{GROUP_COLOUR}">&nbsp; &nbsp;</span><!-- ENDIF -->&nbsp;&nbsp;<span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
<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>
@@ -105,7 +93,7 @@
</dl>
<!-- IF not S_IN_AVATAR_GALLERY -->
<!-- IF S_CAN_UPLOAD -->
<dl>
<dl>
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
<dd><input type="file" id="uploadfile" name="uploadfile" /></dd>
</dl>
@@ -120,10 +108,10 @@
</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="{AVATAR_WIDTH}" /> <span>{L_PIXEL} &times; </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
<dd><input name="width" type="text" id="width" size="3" value="{AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>px</span></dd>
</dl>
<!-- IF S_DISPLAY_GALLERY -->
<dl>
<dl>
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
</dl>
@@ -140,7 +128,7 @@
<dl>
<table cellspacing="1">
<!-- BEGIN avatar_row -->
<tr>
<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 -->
@@ -154,11 +142,11 @@
</table>
</dl>
</fieldset>
<fieldset class="quick" style="margin-top: -15px;">
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
<!-- ENDIF -->
</fieldset>
@@ -166,13 +154,13 @@
<legend>{L_SUBMIT}</legend>
<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}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_LIST -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_GROUP_MEMBERS} :: {GROUP_NAME}</h1>
@@ -200,7 +188,7 @@
</tr>
<!-- BEGIN leader -->
<!-- IF leader.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><!-- IF leader.USERNAME_COLOUR --><a href="{leader.U_USER_EDIT}" style="color: #{leader.USERNAME_COLOUR};" class="username-coloured">{leader.USERNAME}</a><!-- ELSE --><a href="{leader.U_USER_EDIT}">{leader.USERNAME}</a><!-- ENDIF --></td>
<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>
@@ -221,7 +209,7 @@
</tr>
<!-- ELSE -->
<!-- IF member.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><!-- IF member.USERNAME_COLOUR --><a href="{member.U_USER_EDIT}" style="color: #{member.USERNAME_COLOUR};" class="username-coloured">{member.USERNAME}</a><!-- ELSE --><a href="{member.U_USER_EDIT}">{member.USERNAME}</a><!-- ENDIF --></td>
<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>
@@ -239,12 +227,12 @@
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
<fieldset class="quick">
<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}" />
<p class="small"><a href="#" onclick="marklist('list', 'mark', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
<p class="small"><a href="#" onclick="marklist('list', 'mark', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
</fieldset>
<h1>{L_ADD_USERS}</h1>
@@ -266,14 +254,14 @@
<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}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
<p class="quick">
<input class="button2" type="submit" name="addusers" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
@@ -321,8 +309,8 @@
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
<input type="hidden" name="add" value="1" />
<!-- ENDIF -->
{S_FORM_TOKEN}
</fieldset>
</form>
<h1>{L_SPECIAL_GROUPS}</h1>

View File

@@ -4,10 +4,10 @@
<!-- IF S_EDIT -->
<script type="text/javascript" defer="defer">
// <![CDATA[
<!-- IF S_ADD_CODE -->
<script type="text/javascript" defer="defer">
<!--
var smiley = Array();
<!-- BEGIN smile -->
smiley['{smile.SMILEY_URL}'] = Array();
@@ -22,7 +22,7 @@
{
var use_element = smiley[newimage];
document.getElementById('add_image_src').src = '{PHPBB_ROOT_PATH}{IMG_PATH}/' + encodeURI(newimage);
document.getElementById('add_image_src').src = '{PHPBB_ROOT_PATH}{IMG_PATH}/' + newimage;
document.getElementById('add_code').value = use_element['code'];
document.getElementById('add_emotion').value = use_element['emotion'];
document.getElementById('add_width').value = use_element['width'];
@@ -37,33 +37,11 @@
}
}
}
//-->
</script>
<!-- ENDIF -->
function toggle_select(icon, display, select)
{
var disp = document.getElementById('order_disp_' + select);
var nodisp = document.getElementById('order_no_disp_' + select);
disp.disabled = !display;
nodisp.disabled = display;
if (display)
{
document.getElementById('order_' + select).selectedIndex = 0;
nodisp.className = 'disabled-options';
disp.className = '';
}
else
{
document.getElementById('order_' + select).selectedIndex = {S_ORDER_LIST_DISPLAY_COUNT};
disp.className = 'disabled-options';
nodisp.className = '';
}
}
// ]]>
</script>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -111,16 +89,13 @@
<td><input class="text post" type="text" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="text post" type="text" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td>
<input type="checkbox" class="radio" name="display_on_posting[{items.IMG}]"{items.POSTING_CHECKED} onclick="toggle_select('{items.A_IMG}', this.checked, '{items.S_ROW_COUNT}');"/>
<input type="checkbox" class="radio" 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 id="order_{items.S_ROW_COUNT}" name="order[{items.IMG}]">
<optgroup id="order_disp_{items.S_ROW_COUNT}" label="{L_DISPLAY_POSTING}" <!-- IF not items.POSTING_CHECKED -->disabled="disabled" class="disabled-options" <!-- ENDIF -->>{S_ORDER_LIST_DISPLAY}</optgroup>
<optgroup id="order_no_disp_{items.S_ROW_COUNT}" label="{L_DISPLAY_POSTING_NO}" <!-- IF items.POSTING_CHECKED -->disabled="disabled" class="disabled-options" <!-- ENDIF -->>{S_ORDER_LIST_UNDISPLAY}</optgroup>
</select></td>
<td><select name="order[{items.IMG}]">{S_ORDER_LIST}</select></td>
<!-- ENDIF -->
<!-- IF S_ADD -->
<td><input type="checkbox" class="radio" name="add_img[{items.IMG}]" value="1" /></td>
@@ -138,11 +113,8 @@
<td><input class="text post" type="text" name="add_emotion" id="add_emotion" value="{EMOTION}" size="10" maxlength="50" /></td>
<td><input class="text post" type="text" size="3" name="add_width" id="add_width" value="{WIDTH}" /></td>
<td><input class="text post" type="text" size="3" name="add_height" id="add_height" value="{HEIGHT}" /></td>
<td><input type="checkbox" class="radio" name="add_display_on_posting" checked="checked" onclick="toggle_select('add', this.checked, 'add_order');"/></td>
<td><select id="order_add_order" name="add_order">
<optgroup id="order_disp_add_order" label="{L_DISPLAY_POSTING}">{S_ADD_ORDER_LIST_DISPLAY}</optgroup>
<optgroup id="order_no_disp_add_order" label="{L_DISPLAY_POSTING_NO}" disabled="disabled" class="disabled-options" >{S_ADD_ORDER_LIST_UNDISPLAY}</optgroup>
</select></td>
<td><input type="checkbox" class="radio" name="add_display_on_posting" checked="checked" /></td>
<td><select name="add_order" id="add_order">{S_ADD_ORDER_LIST}</select></td>
<td><input type="checkbox" class="radio" name="add_additional_code" value="1" /></td>
</tr>
<!-- ENDIF -->
@@ -158,13 +130,14 @@
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_CHOOSE_PAK -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -193,8 +166,8 @@
<input class="button1" type="submit" id="import" name="import" value="{L_IMPORT_SUBMIT}" />
</p>
<!-- ENDIF -->
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
@@ -243,24 +216,20 @@
<td style="text-align: center;">{items.EMOTION}</td>
<!-- ENDIF -->
<td style="text-align: right; white-space: nowrap;">
<!-- IF items.S_FIRST_ROW and not PREVIOUS_PAGE -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF items.S_LAST_ROW and not NEXT_PAGE -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
<!-- IF items.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF items.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
&nbsp;<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">
<td colspan="{COLSPAN}">{L_ACP_NO_ITEMS}</td>
</tr>
<!-- END items -->
</tbody>
</table>
<div>{PAGINATION}</div>
<p 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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

52
phpBB/adm/style/acp_inactive.html Normal file → Executable file
View File

@@ -12,7 +12,7 @@
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
@@ -22,8 +22,8 @@
<th>{L_USERNAME}</th>
<th>{L_JOINED}</th>
<th>{L_INACTIVE_DATE}</th>
<th>{L_LAST_VISIT}</th>
<th>{L_INACTIVE_REASON}</th>
<th>{L_LAST_VISIT}</th>
<th>{L_MARK}</th>
</tr>
</thead>
@@ -31,17 +31,11 @@
<!-- BEGIN inactive -->
<!-- IF inactive.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="vertical-align: top;">
{inactive.USERNAME_FULL}
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
</td>
<td style="vertical-align: top;">{inactive.JOINED}</td>
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
<td style="vertical-align: top;">{inactive.LAST_VISIT}</td>
<td style="vertical-align: top;">
{inactive.REASON}
<!-- IF inactive.REMINDED --><br />{inactive.REMINDED_EXPLAIN}<!-- ENDIF -->
</td>
<td><a href="{inactive.U_USER_ADMIN}">{inactive.USERNAME}</a></td>
<td>{inactive.JOINED}</td>
<td>{inactive.INACTIVE_DATE}</td>
<td>{inactive.REASON}</td>
<td>{inactive.LAST_VISIT}</td>
<td>&nbsp;<input type="checkbox" class="radio" name="mark[]" value="{inactive.USER_ID}" />&nbsp;</td>
</tr>
<!-- BEGINELSE -->
@@ -52,25 +46,25 @@
</tbody>
</table>
<fieldset class="display-options">
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}<!-- IF PAGINATION -->&nbsp;Users per page: <input class="inputbox autowidth" type="text" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<!-- IF PAGINATION -->
<fieldset class="display-options">
{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>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
<fieldset class="quick">
<select name="action">{S_INACTIVE_OPTIONS}</select>
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
<p class="small"><a href="#" onclick="marklist('inactive', 'mark', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('inactive', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
</fieldset>
<fieldset class="quick">
<select name="action">{S_INACTIVE_OPTIONS}</select>
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
<p class="small"><a href="#" onclick="marklist('inactive', 'mark', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('inactive', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -17,9 +17,6 @@
<fieldset>
<legend>{L_ACP_JABBER_SETTINGS}</legend>
<!-- IF S_GTALK_NOTE -->
<p>{L_JAB_GTALK_NOTE}</p>
<!-- ENDIF -->
<dl>
<dt><label for="jab_enable">{L_JAB_ENABLE}:</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="jab_enable" name="jab_enable" value="1"<!-- IF JAB_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
@@ -38,16 +35,13 @@
<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><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label></dt>
<dd><input type="password" id="jab_password" name="jab_password" value="{JAB_PASSWORD}" /></dd>
</dl>
<!-- IF S_CAN_USE_SSL -->
<dl>
<dt><label for="jab_use_ssl">{L_JAB_USE_SSL}:</label><br /><span>{L_JAB_USE_SSL_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="jab_use_ssl" name="jab_use_ssl" value="1"<!-- IF JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="jab_use_ssl" value="0"<!-- IF not JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<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>
<!-- ENDIF -->
<dl>
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}:</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" /></dd>
@@ -58,8 +52,8 @@
<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}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -4,7 +4,7 @@
<!-- IF S_SELECT_METHOD -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_SELECT_DOWNLOAD_FORMAT}</h1>
@@ -26,7 +26,7 @@
<!-- ELSEIF S_DETAILS -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_LANGUAGE_PACK_DETAILS}</h1>
@@ -54,8 +54,8 @@
<p class="quick" style="margin-top: -15px;">
<input type="submit" name="update_details" class="button2" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<br /><br />
@@ -92,7 +92,7 @@
<!-- END missing -->
</tbody>
</table>
<div>{S_FORM_TOKEN}</div>
</form>
<br /><br />
@@ -107,12 +107,12 @@
<form id="lang_entries" method="post" action="{U_ENTRY_ACTION}">
<!-- IF S_FROM_STORE -->
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<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: {S_CONTENT_FLOW_END};">
<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>
@@ -121,11 +121,9 @@
<!--[if lt IE 8]>
<style type="text/css">
/* <![CDATA[ */
input.langvalue, textarea.langvalue {
width: 450px;
}
/* ]]> */
</style>
<![endif]-->
@@ -159,15 +157,16 @@
{TPL}
<!-- ENDIF -->
<tr>
<td class="row3" colspan="3" style="text-align: right;">{S_FORM_TOKEN}<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>
<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>
<!-- ELSEIF S_UPLOAD -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_UPLOAD_SETTINGS}</h1>
@@ -199,10 +198,10 @@
<fieldset class="quick">
{HIDDEN}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
<input class="button1" type="submit" name="test_connection" value="{L_TEST_CONNECTION}" />
</fieldset>
</form>
<!-- ELSE -->

View File

@@ -8,19 +8,12 @@
<form id="list" method="post" action="{U_ACTION}">
<fieldset class="display-options" style="float: left">
{L_SEARCH_KEYWORDS}: <input type="text" name="keywords" value="{S_KEYWORDS}" />&nbsp;<input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
</fieldset>
<!-- IF PAGINATION -->
<div class="pagination" style="float: right; margin: 15px 0 2px 0">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<div class="clearfix">&nbsp;</div>
<div><br style="clear: both;" /></div>
<!-- IF .log -->
<table cellspacing="1">
<thead>
@@ -29,14 +22,13 @@
<th>{L_IP}</th>
<th>{L_TIME}</th>
<th>{L_ACTION}</th>
<!-- IF S_CLEARLOGS -->
<th>{L_MARK}</th>
<!-- ENDIF -->
<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}
<!-- IF log.REPORTEE_USERNAME -->
@@ -46,33 +38,31 @@
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
<td>{log.ACTION}<!-- IF log.DATA --><br /><span>{log.DATA}</span><!-- ENDIF --></td>
<!-- IF S_CLEARLOGS -->
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{log.ID}" /></td>
<!-- ENDIF -->
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{log.ID}" /></td>
</tr>
<!-- END log -->
</tbody>
</table>
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- ELSE -->
<div class="errorbox">
<p>{L_NO_ENTRIES}</p>
</div>
<!-- ENDIF -->
<fieldset class="display-options">
{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" />
{S_FORM_TOKEN}
</fieldset>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- IF S_SHOW_FORUMS -->
<fieldset class="quick">
{L_SELECT_FORUM}: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
@@ -80,14 +70,16 @@
</fieldset>
<!-- ENDIF -->
<!-- IF .log and S_CLEARLOGS -->
<!-- IF S_CLEARLOGS -->
<fieldset class="quick">
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />&nbsp;
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" /><br />
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />&nbsp;
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" /><br />
<p class="small"><a href="#" onclick="marklist('list', 'mark', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
</fieldset>
<!-- ENDIF -->
</form>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -14,19 +14,6 @@
<p>{L_ADMIN_INTRO}</p>
<!-- IF S_VERSIONCHECK_FAIL -->
<div class="errorbox notice">
<p>{L_VERSIONCHECK_FAIL}</p>
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> &middot; <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
</div>
<!-- ELSEIF not S_VERSION_UP_TO_DATE -->
<div class="errorbox">
<p>{L_VERSION_NOT_UP_TO_DATE_TITLE}</p>
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> &middot; <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
</div>
<!-- ENDIF -->
<!-- IF S_REMOVE_INSTALL -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
@@ -34,18 +21,6 @@
</div>
<!-- ENDIF -->
<!-- IF S_WRITABLE_CONFIG -->
<div class="errorbox notice">
<p>{L_WRITABLE_CONFIG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_PHP_VERSION_OLD -->
<div class="errorbox notice">
<p>{L_PHP_VERSION_OLD}</p>
</div>
<!-- ENDIF -->
<table cellspacing="1">
<caption>{L_FORUM_STATS}</caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
@@ -102,19 +77,14 @@
<td>{L_GZIP_COMPRESSION}: </td>
<td><strong>{GZIP_COMPRESSION}</strong></td>
</tr>
<tr>
<td>{L_BOARD_VERSION}: </td>
<td>
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF --> title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
</td>
<!-- IF S_TOTAL_ORPHAN -->
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>{L_NUMBER_ORPHAN}: </td>
<td><strong>{TOTAL_ORPHAN}</strong></td>
<!-- ELSE -->
<td>&nbsp;</td>
<td>&nbsp;</td>
<!-- ENDIF -->
</tr>
<!-- ENDIF -->
</tbody>
</table>
@@ -158,12 +128,6 @@
</form>
<!-- IF S_FOUNDER -->
<form id="action_purge_sessions_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_purge_sessions">{L_PURGE_SESSIONS}</label><br /><span>{L_PURGE_SESSIONS_EXPLAIN}</span></dt>
<dd><input type="hidden" name="action" value="purge_sessions" /><input class="button2" type="submit" id="action_purge_sessions" name="action_purge_sessions" value="{L_RUN}" /></dd>
</dl>
</form>
<form id="action_purge_cache_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_purge_cache">{L_PURGE_CACHE}</label><br /><span>{L_PURGE_CACHE_EXPLAIN}</span></dt>
@@ -220,25 +184,19 @@
<th>{L_USERNAME}</th>
<th>{L_JOINED}</th>
<th>{L_INACTIVE_DATE}</th>
<th>{L_LAST_VISIT}</th>
<th>{L_INACTIVE_REASON}</th>
<th>{L_LAST_VISIT}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN inactive -->
<!-- IF inactive.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="vertical-align: top;">
{inactive.USERNAME_FULL}
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
</td>
<td style="vertical-align: top;">{inactive.JOINED}</td>
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
<td style="vertical-align: top;">{inactive.LAST_VISIT}</td>
<td style="vertical-align: top;">
{inactive.REASON}
<!-- IF inactive.REMINDED --><br />{inactive.REMINDED_EXPLAIN}<!-- ENDIF -->
</td>
<td><a href="{inactive.U_USER_ADMIN}">{inactive.USERNAME}</a></td>
<td>{inactive.JOINED}</td>
<td>{inactive.INACTIVE_DATE}</td>
<td>{inactive.REASON}</td>
<td>{inactive.LAST_VISIT}</td>
</tr>
<!-- BEGINELSE -->
<tr>

View File

@@ -5,7 +5,8 @@
<!-- IF S_EDIT_MODULE -->
<script type="text/javascript">
// <![CDATA[
<!--
function display_options(value)
{
if (value == 'category')
@@ -37,7 +38,7 @@
var j = 0;
<!-- BEGIN m_names -->
if (value == '{m_names.A_NAME}')
if (value == '{m_names.NAME}')
{
<!-- BEGIN modes -->
item.options[j] = new Option('{m_names.modes.A_VALUE}');
@@ -51,10 +52,10 @@
item.options[0].selected = true;
}
// ]]>
//-->
</script>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE} :: {MODULENAME}</h1>
@@ -115,8 +116,8 @@
<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}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
@@ -176,7 +177,7 @@
<form id="quick" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right;">
<input type="hidden" name="action" value="quickadd" />
<select name="quick_install">{S_INSTALL_OPTIONS}</select>
@@ -187,7 +188,7 @@
<form id="module" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<fieldset class="quick" style="float: left;">
<input type="hidden" name="action" value="add" />
<input type="hidden" name="module_parent_id" value="{PARENT_ID}" />
@@ -197,7 +198,7 @@
</form>
<div class="clearfix">&nbsp;</div><br style="clear: both;" />
<div class="clearfix">&nbsp;</div>
<form id="mselect" method="post" action="{U_SEL_ACTION}">
<fieldset class="quick">

View File

@@ -5,7 +5,7 @@
<!-- IF S_EDIT -->
<script type="text/javascript">
// <![CDATA[
<!--
var active_pmask = '0';
var active_fmask = '0';
var active_cat = '0';
@@ -17,22 +17,22 @@
<!-- IF S_ROLE_JS_ARRAY -->
{S_ROLE_JS_ARRAY}
<!-- ENDIF -->
// ]]>
//-->
</script>
<script type="text/javascript" src="style/permissions.js"></script>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_roles" method="post" action="{U_ACTION}">
<br />
<a href="#acl">&raquo; {L_SET_ROLE_PERMISSIONS}</a>
<form id="acp_roles" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ROLE_DETAILS}</legend>
<dl>
@@ -46,7 +46,6 @@
<p class="quick">
<input type="submit" class="button1" name="submit" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</p>
</fieldset>
@@ -58,15 +57,11 @@
<!-- ENDIF -->
<p>
<a name="acl"></a>
<a href="#maincontent">&raquo; {L_BACK_TO_TOP}</a><br />
<br /><br />
</p>
<h1>{L_ACL_TYPE}</h1>
<fieldset class="perm nolegend">
@@ -112,9 +107,9 @@
<!-- IF auth.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF -->
<th class="permissions-name<!-- IF auth.mask.S_ROW_COUNT is even --> row4<!-- ELSE --> row3<!-- ENDIF -->">{auth.mask.PERMISSION}</th>
<td class="permissions-yes"><label for="setting_{auth.mask.FIELD_NAME}_y"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting_{auth.mask.FIELD_NAME}_y" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></label></td>
<td class="permissions-no"><label for="setting_{auth.mask.FIELD_NAME}_u"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting_{auth.mask.FIELD_NAME}_u" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></label></td>
<td class="permissions-never"><label for="setting_{auth.mask.FIELD_NAME}_n"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting_{auth.mask.FIELD_NAME}_n" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></label></td>
<td class="permissions-yes"><label for="{auth.mask.FIELD_NAME}_y"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting[{auth.mask.FIELD_NAME}]_y" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></label></td>
<td class="permissions-no"><label for="{auth.mask.FIELD_NAME}_u"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting[{auth.mask.FIELD_NAME}]_u" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></label></td>
<td class="permissions-never"><label for="{auth.mask.FIELD_NAME}_n"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="setting[{auth.mask.FIELD_NAME}]_n" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></label></td>
</tr>
<!-- END mask -->
</tbody>
@@ -129,8 +124,8 @@
<fieldset class="quick">
<input type="submit" class="button1" name="submit" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<a href="#maincontent">&raquo; {L_BACK_TO_TOP}</a><br />
@@ -183,8 +178,8 @@
<fieldset class="quick">
{L_CREATE_ROLE}: <input type="text" name="role_name" value="" maxlength="255" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- IF S_DISPLAY_ROLE_MASK -->

View File

@@ -3,7 +3,7 @@
<a name="maincontent"></a>
<!-- IF S_INTRO -->
<h1>{L_ACP_PERMISSIONS}</h1>
{L_ACP_PERMISSIONS_EXPLAIN}
@@ -12,12 +12,10 @@
<!-- IF S_SELECT_VICTIM -->
<!-- IF U_BACK --><a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a><!-- ENDIF -->
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF S_FORUM_NAMES -->
<p><strong>{L_FORUMS}:</strong> {FORUM_NAMES}</p>
<!-- ENDIF -->
@@ -37,11 +35,11 @@
<p class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</p>
</fieldset>
</form>
<!-- IF S_FORUM_MULTIPLE -->
@@ -58,13 +56,13 @@
<p class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</p>
</fieldset>
</form>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_SELECT_USER and S_CAN_SELECT_USER -->
@@ -76,16 +74,16 @@
<dl>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input class="text medium" type="text" id="username" name="username[]" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
</dl>
<p class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_SELECT_GROUP and S_CAN_SELECT_GROUP -->
@@ -101,16 +99,16 @@
<p class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_SELECT_USERGROUP -->
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
<div style="float: left; width: 48%;">
<!-- IF S_CAN_SELECT_USER -->
@@ -125,12 +123,12 @@
<!-- IF S_ALLOW_ALL_SELECT --><dd class="full" style="text-align: right;"><label><input type="checkbox" class="radio" name="all_users" value="1" /> {L_ALL_USERS}</label></dd><!-- ENDIF -->
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" class="button2" name="action[delete]" value="{L_REMOVE_PERMISSIONS}" style="width: 46% !important;" /> &nbsp; <input class="button1" type="submit" name="submit_edit_options" value="{L_EDIT_PERMISSIONS}" style="width: 46% !important;" />
</fieldset>
</form>
<form id="add_user" method="post" action="{U_ACTION}">
@@ -140,23 +138,23 @@
<p>{L_USERNAMES_EXPLAIN}</p>
<dl>
<dd class="full"><textarea id="username" name="usernames" rows="5" cols="5" style="width: 100%; height: 60px;"></textarea></dd>
<dd class="full" style="text-align: left;"><div style="float: {S_CONTENT_FLOW_END};">[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</div><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
<dd class="full" style="text-align: left;"><div style="float: right;">[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</div><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="submit_add_options" value="{L_ADD_PERMISSIONS}" />
</fieldset>
</form>
<!-- ENDIF -->
</div>
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
<div style="float: right; width: 48%">
<!-- IF S_CAN_SELECT_GROUP -->
<h1>{L_USERGROUPS}</h1>
@@ -170,16 +168,16 @@
<!-- IF S_ALLOW_ALL_SELECT --><dd class="full" style="text-align: right;"><label><input type="checkbox" class="radio" name="all_groups" value="1" /> {L_ALL_GROUPS}</label></dd><!-- ENDIF -->
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button2" type="submit" name="action[delete]" value="{L_REMOVE_PERMISSIONS}" style="width: 46% !important;" /> &nbsp; <input class="button1" type="submit" name="submit_edit_options" value="{L_EDIT_PERMISSIONS}" style="width: 46% !important;" />
</fieldset>
</form>
<form id="add_groups" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_ADD_GROUPS}</legend>
<dl>
@@ -189,9 +187,9 @@
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" class="button1" name="submit_add_options" value="{L_ADD_PERMISSIONS}" />
</fieldset>
</form>
<!-- ENDIF -->
@@ -200,8 +198,8 @@
<!-- ELSEIF S_SELECT_USERGROUP_VIEW -->
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
<div style="float: left; width: 48%;">
<h1>{L_USERS}</h1>
<form id="users" method="post" action="{U_ACTION}">
@@ -212,12 +210,12 @@
<dd class="full"><select style="width: 100%;" name="user_id[]" multiple="multiple" size="5">{S_DEFINED_USER_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="submit" value="{L_VIEW_PERMISSIONS}" />
</fieldset>
</form>
<form id="add_user" method="post" action="{U_ACTION}">
@@ -227,22 +225,22 @@
<dl>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input type="text" id="username" name="username[]" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_VIEW_PERMISSIONS}" class="button1" />
</fieldset>
</form>
</div>
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
<div style="float: right; width: 48%">
<h1>{L_USERGROUPS}</h1>
<form id="groups" method="post" action="{U_ACTION}">
@@ -253,12 +251,12 @@
<dd class="full"><select style="width: 100%;" name="group_id[]" multiple="multiple" size="5">{S_DEFINED_GROUP_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="submit" value="{L_VIEW_PERMISSIONS}" />
</fieldset>
</form>
<form id="group" method="post" action="{U_ACTION}">
@@ -274,9 +272,9 @@
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input type="submit" name="submit" value="{L_VIEW_PERMISSIONS}" class="button1" />
</fieldset>
</form>
</div>
@@ -307,20 +305,20 @@
<br />
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right;">
<strong>&raquo; {L_PERMISSION_TYPE}</strong>
</fieldset>
<!-- IF S_PERMISSION_DROPDOWN -->
<form id="pselect" method="post" action="{U_ACTION}">
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<fieldset class="quick" style="float: left;">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
<input class="button2" type="submit" name="submit" value="{L_GO}" />
</fieldset>
</form>
<!-- ENDIF -->
@@ -329,9 +327,9 @@
<!-- include tooltip file -->
<script type="text/javascript" src="style/tooltip.js"></script>
<script type="text/javascript">
// <![CDATA[
<!--
window.onload = function(){enable_tooltips_select('set-permissions', '{LA_ROLE_DESCRIPTION}', 'role')};
// ]]>
//-->
</script>
<form id="set-permissions" method="post" action="{U_ACTION}">
@@ -342,10 +340,9 @@
<br /><br />
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right;">
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
<input class="button2" type="button" name="cancel" value="{L_RESET}" onclick="document.forms['set-permissions'].reset(); init_colours(active_pmask + active_fmask);" />
{S_FORM_TOKEN}
</fieldset>
<br /><br />

View File

@@ -6,7 +6,7 @@
<p>{L_ACP_PHP_INFO_EXPLAIN}</p>
<div class="phpinfo">
<div style="overflow: auto; width: 99%;">
{PHPINFO}
</div>

View File

@@ -4,7 +4,7 @@
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -48,24 +48,20 @@
<fieldset>
<legend>{L_VISIBILITY_OPTION}</legend>
<dl>
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_profile" name="field_show_profile" value="1"<!-- IF S_SHOW_PROFILE --> checked="checked"<!-- ENDIF --> /></dd>
<dt><label for="field_option_none">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
<dd><input type="radio" class="radio" id="field_option_none" name="field_option" value="none"<!-- IF not S_SHOW_ON_REG and not S_FIELD_REQUIRED and not S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}:</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" 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_show_on_vt">{L_DISPLAY_ON_VT}:</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_on_vt" name="field_show_on_vt" value="1"<!-- IF S_SHOW_ON_VT --> checked="checked"<!-- ENDIF --> /></dd>
<dd><input type="radio" class="radio" id="field_show_on_reg" name="field_option" value="field_show_on_reg"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_required">{L_REQUIRED_FIELD}:</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_required" name="field_required" value="1"<!-- IF S_FIELD_REQUIRED --> checked="checked"<!-- ENDIF --> /></dd>
<dd><input type="radio" class="radio" id="field_required" name="field_option" value="field_required"<!-- IF S_FIELD_REQUIRED --> 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" class="radio" id="field_hide" name="field_hide" value="1"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
<dd><input type="radio" class="radio" id="field_hide" name="field_option" value="field_hide"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
</fieldset>
@@ -112,7 +108,6 @@
<fieldset class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="next" value="{L_PROFILE_TYPE_OPTIONS}" />
</fieldset>
@@ -128,14 +123,13 @@
<!-- END option -->
</fieldset>
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<fieldset class="quick" style="float: left;">
<input class="button1" type="submit" name="prev" value="{L_PROFILE_BASIC_OPTIONS}" />
</fieldset>
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" name="next" value="{L_NEXT_STEP}" />
<input class="button1" type="submit" name="next" value="{L_NEXT}" />
</fieldset>
<!-- ELSEIF S_STEP_THREE -->
@@ -152,16 +146,15 @@
</fieldset>
<!-- END options -->
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
<fieldset class="quick" style="float: left;">
<input class="button1" type="submit" name="prev" value="{L_PROFILE_TYPE_OPTIONS}" />
</fieldset>
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<fieldset class="quick" style="float: right;">
{S_HIDDEN_FIELDS}
<input class="button1" type="submit" name="save" value="{L_SAVE}" />
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
</form>
@@ -198,14 +191,14 @@
{ICON_MOVE_UP_DISABLED}
<a href="{fields.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not fields.S_FIRST_ROW && not fields.S_LAST_ROW-->
<a href="{fields.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{fields.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<a href="{fields.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{fields.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF fields.S_LAST_ROW && not fields.S_FIRST_ROW -->
<a href="{fields.U_MOVE_UP}">{ICON_MOVE_UP}</a>
{ICON_MOVE_DOWN_DISABLED}
{ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF -->
<!-- IF not fields.S_NEED_EDIT -->
<a href="{fields.U_EDIT}">{ICON_EDIT}</a>
<a href="{fields.U_EDIT}">{ICON_EDIT}</a>
<!-- ELSE -->
{ICON_EDIT_DISABLED}
<!-- ENDIF -->
@@ -213,22 +206,18 @@
</td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">
<td colspan="4">{L_ACP_NO_ITEMS}</td>
</tr>
<!-- END fields -->
</tbody>
</table>
<form id="profile_fields" method="post" action="{U_ACTION}">
<fieldset class="quick">
<input class="text small" type="text" name="field_ident" /> <select name="field_type">{S_TYPE_OPTIONS}</select>
<input class="button1" type="submit" name="submit" value="{L_CREATE_NEW_FIELD}" />
<input type="hidden" name="create" value="1" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -44,7 +44,7 @@
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="forum" name="f[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
<dd><select name="f[]" multiple="multiple" size="5">{S_FORUM_OPTIONS}</select></dd>
<dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd>
</dl>
@@ -57,7 +57,7 @@
<!-- ELSE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_PRUNE_FORUMS}</h1>
@@ -97,10 +97,11 @@
<p class="quick">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
</p>
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -33,7 +33,7 @@
<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="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</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>
@@ -51,9 +51,9 @@
<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}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -4,16 +4,16 @@
<!-- IF S_EDIT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<script type="text/javascript">
// <![CDATA[
<!--
function update_image(newimage)
{
document.getElementById('image').src = (newimage) ? "{RANKS_PATH}/" + encodeURI(newimage) : "./images/spacer.gif";
document.getElementById('image').src = (newimage) ? "{RANKS_PATH}/" + newimage : "./images/spacer.gif";
}
// ]]>
//-->
</script>
<h1>{L_ACP_MANAGE_RANKS}</h1>
@@ -50,9 +50,9 @@
<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}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ELSE -->
@@ -88,9 +88,9 @@
<p class="quick">
<input class="button2" name="add" type="submit" value="{L_ADD_RANK}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -4,7 +4,7 @@
<!-- IF S_EDIT_REASON -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -40,7 +40,7 @@
<!-- ENDIF -->
<dl>
<dt><label for="reason_description">{L_REASON_DESCRIPTION}:</label></dt>
<dd><textarea name="reason_description" id="reason_description" rows="8" cols="80">{REASON_DESCRIPTION}</textarea></dd>
<dd><textarea name="reason_description" id="reason_description" rows="8">{REASON_DESCRIPTION}</textarea></dd>
</dl>
<!-- IF S_TRANSLATED -->
<dl>
@@ -52,9 +52,9 @@
<p 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}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ELSE -->
@@ -81,7 +81,7 @@
<!-- BEGIN reasons -->
<tr>
<td>
<i style="float: {S_CONTENT_FLOW_END}; font-size: .9em;"><!-- IF reasons.S_TRANSLATED -->{L_IS_TRANSLATED}<!-- ELSE -->{L_IS_NOT_TRANSLATED}<!-- ENDIF --></i>
<i style="float: right; font-size: .9em;"><!-- IF reasons.S_TRANSLATED -->{L_IS_TRANSLATED}<!-- ELSE -->{L_IS_NOT_TRANSLATED}<!-- ENDIF --></i>
<strong>{reasons.REASON_TITLE}<!-- IF reasons.S_OTHER_REASON --> *<!-- ENDIF --></strong>
<br /><span>{reasons.REASON_DESCRIPTION}</span>
</td>
@@ -116,10 +116,9 @@
<input type="text" name="reason_title" />
<input class="button2" name="addreason" type="submit" value="{L_ADD_NEW_REASON}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -32,10 +32,6 @@
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}:</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
<dd><input id="min_search_author_chars" type="text" size="4" maxlength="4" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
</dl>
<dl>
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}:</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
<dd><input id="max_num_search_keywords" type="text" size="4" maxlength="4" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
</dl>
<dl>
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}:</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
<dd><input id="search_store_results" type="text" size="4" maxlength="6" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
@@ -63,24 +59,24 @@
<legend>{L_SUBMIT}</legend>
<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}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_INDEX -->
<script type="text/javascript">
// <![CDATA[
<!--
/**
* Popup search progress bar
*/
function popup_progress_bar(progress_type)
{
close_waitscreen = 0;
// no scrollbars
popup('{UA_PROGRESS_BAR}&amp;type=' + progress_type, 400, 240, '_index');
window.open('{UA_PROGRESS_BAR}&type=' + progress_type, '_index', 'HEIGHT=240,resizable=yes,scrollbars=no,WIDTH=400');
}
// ]]>
//-->
</script>
<h1>{L_ACP_SEARCH_INDEX}</h1>
@@ -93,7 +89,6 @@
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" id="continue" name="continue" value="{L_CONTINUE}" onclick="popup_progress_bar('{S_CONTINUE_INDEXING}');" />&nbsp;
<input class="button2" type="submit" id="cancel" name="cancel" value="{L_CANCEL}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
@@ -134,9 +129,9 @@
<!-- END data -->
</tbody>
</table>
<!-- ENDIF -->
<p class="quick">
<!-- IF backend.S_INDEXED -->
<input class="button2" type="submit" name="action[delete]" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
@@ -144,7 +139,6 @@
<input class="button2" type="submit" name="action[create]" value="{L_CREATE_INDEX}" onclick="popup_progress_bar('create');" />
<!-- ENDIF -->
</p>
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -1,71 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_SEND_STATISTICS}</h1>
<p>{L_EXPLAIN_SEND_STATISTICS}</p>
<script type="text/javascript">
//<![CDATA[
var iframect = 0;
function iframe_updated()
{
if (iframect++ == 0)
{
return;
}
dE('questionnaire-form', -1);
dE('questionnaire-thanks', 1);
}
//]]>
</script>
<iframe onload="iframe_updated();" name="questionaire_result" style="display: none;"></iframe>
<form action="{U_COLLECT_STATS}" method="post" target="questionaire_result" id="questionnaire-form">
<p><a href="{U_ACP_MAIN}">{L_DONT_SEND_STATISTICS}</a></p>
<p>{L_EXPLAIN_SHOW_STATISTICS}</p>
<p id="show-button"><input type="button" class="button2" onclick="dE('configlist', 1); dE('show-button', -1);" value="{L_SHOW_STATISTICS}" /></p>
<div id="configlist">
<input type="button" class="button2" onclick="dE('show-button', 1); dE('configlist', -1);" value="{L_HIDE_STATISTICS}" />
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_STATISTICS}" />
</p>
<!-- BEGIN providers -->
<fieldset>
<legend>{providers.NAME}</legend>
<!-- BEGIN values -->
<dl>
<dt>{providers.values.KEY}</dt>
<dd>{providers.values.VALUE}</dd>
</dl>
<!-- END values -->
</fieldset>
<!-- END providers -->
</div>
<p class="submit-buttons">
<input type="hidden" name="systemdata" value="{RAW_DATA}" />
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_STATISTICS}" />
</p>
</form>
<div id="questionnaire-thanks" class="successbox">
<p><strong>{L_THANKS_SEND_STATISTICS}</strong><br /><br /><a href="{U_ACP_MAIN}">&laquo; {L_GO_ACP_MAIN}</a></p>
</div>
<script type="text/javascript">
//<![CDATA[
dE('configlist', -1);
dE('questionnaire-thanks', -1);
//]]>
</script>
<!-- INCLUDE overall_footer.html -->

View File

@@ -4,7 +4,7 @@
<!-- IF S_DELETE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -20,19 +20,19 @@
</dl>
<dl>
<dt><label for="new_id">{L_REPLACE}:</label><br /><span>{L_REPLACE_EXPLAIN}</span></dt>
<dd><select id="new_id" name="new_id">{S_REPLACE_OPTIONS}</select></dd>
<dd><select name="new_id">{S_REPLACE_OPTIONS}</select></dd>
</dl>
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_DELETE}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ELSEIF S_EDIT_IMAGESET -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -51,41 +51,12 @@
<!-- ENDIF -->
<script type="text/javascript" defer="defer">
// <![CDATA[
<!--
function update_image(newimage)
{
document.getElementById('newimg').src = (newimage) ? '../styles/{A_PATH}/imageset/' + encodeURI(newimage) : 'images/no_image.png';
document.getElementById('newimg').src = (newimage) ? "../styles/{NAME}/imageset/" + newimage : "images/no_image.png";
}
// ]]>
</script>
<script type="text/javascript">
// <![CDATA[
/**
* Handle displaying/hiding the dimension fields
*/
function display_options(value)
{
if (value == 0)
{
dE('img_dimensions', -1);
}
else
{
dE('img_dimensions', 1);
}
}
/**
* Init the wanted display functionality if javascript is enabled.
* If javascript is not available, the user is still able to properly administrate.
*/
onload = function()
{
<!-- IF not IMAGE_SIZE -->
dE('img_dimensions', -1);
<!-- ENDIF -->
}
// ]]>
//-->
</script>
<form method="post" action="{U_ACTION}">
@@ -94,8 +65,8 @@
<legend>{L_SELECT_IMAGE}</legend>
{L_SELECT_IMAGE}: <select name="imgname" onchange="this.form.submit();">
<!-- BEGIN category -->
<option class="sep" value="" disabled="disabled">{category.NAME}</option>
<!-- BEGIN images --><option value="{category.images.VALUE}"<!-- IF category.images.SELECTED--> selected="selected"<!-- ENDIF -->>&nbsp;&nbsp;&nbsp;&nbsp;{category.images.TEXT}</option>
<option class="sep" value="">{category.NAME}</option>
<!-- BEGIN images --><option value="{category.images.VALUE}"<!-- IF category.images.SELECTED--> selected="selected"<!-- ENDIF -->>{category.images.TEXT}</option>
<!-- END images -->
<!-- END category -->
</select>&nbsp; <input class="button1" type="submit" value="{L_SELECT}" tabindex="100" />
@@ -109,7 +80,7 @@
</dl>
<dl>
<dt><label>{L_SELECTED_IMAGE}:</label></dt>
<dd><img src="{IMG_SRC}" id="newimg" alt="" /></dd>
<dd><img src="images/no_image.png" id="newimg" alt="" /></dd>
</dl>
</fieldset>
@@ -129,31 +100,48 @@
</dl>
<dl>
<dt><label for="imgsize">{L_INCLUDE_DIMENSIONS}:</label><br /><span>{L_DIMENSIONS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="imgsize" id="imgsize" onclick="display_options(1);" value="1"<!-- IF IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="imgsize" onclick="display_options(0);" value="0"<!-- IF not IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
<dd><label><input type="radio" class="radio" name="imgsize" id="imgsize" value="1"<!-- IF IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="imgsize" value="0"<!-- IF not IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<div id="img_dimensions">
<dl>
<dt><label for="imgwidth">{L_IMAGE_WIDTH}:</label><br /><span>{L_AUTOMATIC_EXPLAIN}</span></dt>
<dd><input id="imgwidth" type="text" name="imgwidth" value="{IMAGE_SIZE}" /></dd>
</dl>
<dl>
<dt><label for="imgheight">{L_IMAGE_HEIGHT}:</label><br /><span>{L_AUTOMATIC_EXPLAIN}</span></dt>
<dd><input id="imgheight" type="text" name="imgheight" value="{IMAGE_HEIGHT}" /></dd>
</dl>
</div>
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="button2" type="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_EDIT_TEMPLATE or S_EDIT_THEME -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<script type="text/javascript" defer="defer">
<!--
function append_text_rows(form_name, value)
{
url = document.getElementById(form_name).action;
var_start = url.indexOf('&text_rows=');
if (var_start == -1)
{
document.getElementById(form_name).action = url + "&text_rows=" + value;
}
else
{
url_start = url.substring(0, var_start + 1);
var_end = url.substring(var_start + 1).indexOf('&');
if (var_end == -1)
{
document.getElementById(form_name).action = url_start + "text_rows=" + value;
}
else
{
document.getElementById(form_name).action = url_start + url.substring(var_end + var_start + 2) + "&text_rows=" + value;
}
}
}
//-->
</script>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_EDIT}</h1>
@@ -170,24 +158,17 @@
<dt><label for="template_file">{L_FILE}:</label></dt>
<dd><select id="template_file" name="template_file" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_TEMPLATES}</select> <input class="button2" type="submit" value="{L_SELECT}" /></dd>
</dl>
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
</form>
<!-- IF TEMPLATE_FILE or (S_EDIT_THEME and S_THEME_IN_DB) -->
<script type="text/javascript" defer="defer">
// <![CDATA[
<!--
function change_editor_height(height)
{
height = Number(height);
if (isNaN(height))
{
return;
}
editor = document.getElementById('template_data');
editor.rows = Math.max(5, Math.min(height, 999));
@@ -197,18 +178,7 @@
function append_text_rows(form_name, value)
{
value = Number(value);
if (isNaN(value))
{
return;
}
url = document.getElementById(form_name).action;
// Make sure &amp; is actually... &
url = url.replace(/&amp;/g, '&');
var_start = url.indexOf('&text_rows=');
if (var_start == -1)
{
@@ -228,8 +198,7 @@
}
}
}
// ]]>
//-->
</script>
<form id="acp_template" method="post" action="{U_ACTION}">
@@ -252,21 +221,33 @@
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" id="save" type="submit" name="save" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_CACHE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<script type="text/javascript">
<!--
function viewsource(url)
{
window.open(url, '_source', 'HEIGHT=550,resizable=yes,scrollbars=yes,WIDTH=750');
return false;
}
//-->
</script>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TEMPLATE_CACHE}</h1>
<p>{L_TEMPLATE_CACHE_EXPLAIN}</p>
<form id="acp_styles" method="post" action="{U_ACTION}">
<form name="acp_styles" method="post" action="{U_ACTION}">
<fieldset class="tabulated">
<legend>{L_TEMPLATE_CACHE}</legend>
@@ -283,7 +264,7 @@
<tbody>
<!-- BEGIN file -->
<!-- IF file.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{file.U_VIEWSOURCE}" onclick="popup(this.href, 750, 550, '_source'); return false;">{file.FILENAME_PATH}</a></td>
<td><a href="{file.U_VIEWSOURCE}" onclick="viewsource('{file.UA_VIEWSOURCE}');return false">{file.FILENAME}</a></td>
<td>{file.FILESIZE}</td>
<td>{file.CACHED}</td>
<td>{file.MODIFIED}</td>
@@ -299,15 +280,16 @@
<p class="quick">
<span class="small"><a href="#" onclick="marklist('acp_styles', 'delete', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('acp_styles', 'delete', false); return false;">{L_UNMARK_ALL}</a></span><br />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{L_DELETE_MARKED}" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_EXPORT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -356,12 +338,10 @@
</dl>
<p class="quick">
{S_FORM_TOKEN}
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_FRONTEND -->
@@ -436,7 +416,7 @@
<!-- ELSEIF S_DETAILS -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
@@ -455,37 +435,31 @@
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="name">{L_NAME}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="name">{NAME}</strong><!-- ELSE --><input type="text" id="name" name="name" value="{NAME}" /><!-- ENDIF --></dd>
<dd><!-- IF S_INSTALL --><b id="name">{NAME}</b><!-- ELSE --><input type="text" id="name" name="name" value="{NAME}" /><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="copyright">{L_COPYRIGHT}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="copyright">{COPYRIGHT}</strong><!-- ELSE --><input type="text" id="copyright" name="copyright" value="{COPYRIGHT}" /><!-- ENDIF --></dd>
<dd><!-- IF S_INSTALL --><b id="name">{COPYRIGHT}</b><!-- ELSE --><input type="text" id="copyright" name="copyright" value="{COPYRIGHT}" /><!-- ENDIF --></dd>
</dl>
<!-- IF S_SUPERTEMPLATE -->
<dl>
<dt><label for="inheriting">{L_INHERITING_FROM}:</label></dt>
<dd><strong id="inheriting">{S_SUPERTEMPLATE}</strong></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_STYLE and not S_BASIS -->
<dl>
<dt><label for="template_id">{L_STYLE_TEMPLATE}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="template_id">{TEMPLATE_NAME}</strong><!-- ELSE --><select id="template_id" name="template_id">{S_TEMPLATE_OPTIONS}</select><!-- ENDIF --></dd>
<dd><!-- IF S_INSTALL --><b id="template_id">{TEMPLATE_NAME}</b><!-- ELSE --><select id="template_id" name="template_id">{S_TEMPLATE_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="theme_id">{L_STYLE_THEME}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="theme_id">{THEME_NAME}</strong><!-- ELSE --><select id="theme_id" name="theme_id">{S_THEME_OPTIONS}</select><!-- ENDIF --></dd>
<dd><!-- IF S_INSTALL --><b id="theme_id">{THEME_NAME}</b><!-- ELSE --><select id="theme_id" name="theme_id">{S_THEME_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="imageset_id">{L_STYLE_IMAGESET}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="imageset_id">{IMAGESET_NAME}</strong><!-- ELSE --><select id="imageset_id" name="imageset_id">{S_IMAGESET_OPTIONS}</select><!-- ENDIF --></dd>
<dd><!-- IF S_INSTALL --><b id="imageset_id">{IMAGESET_NAME}</b><!-- ELSE --><select id="imageset_id" name="imageset_id">{S_IMAGESET_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<!-- ENDIF -->
<!-- IF (S_TEMPLATE or S_THEME) and (S_LOCATION or not S_INSTALL) -->
<!-- IF S_TEMPLATE or S_THEME -->
<dl>
<dt><label for="store_db">{L_LOCATION}:</label><br /><span><!-- IF S_STORE_DB_DISABLED -->{L_LOCATION_DISABLED_EXPLAIN}<!-- ELSE -->{L_LOCATION_EXPLAIN}<!-- ENDIF --></span></dt>
<dd><label><input type="radio" class="radio" name="store_db" value="0"<!-- IF not S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> <!-- IF S_STORE_DB_DISABLED -->disabled="disabled" <!-- ENDIF --> />{L_STORE_FILESYSTEM}</label>
<label><input type="radio" class="radio" name="store_db" value="1"<!-- IF S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> <!-- IF S_STORE_DB_DISABLED -->disabled="disabled" <!-- ENDIF -->/> {L_STORE_DATABASE}</label></dd>
<dt><label for="store_db">{L_LOCATION}:</label><br /><span>{L_LOCATION_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="store_db" value="0"<!-- IF not S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> /> {L_STORE_FILESYSTEM}</label>
<label><input type="radio" class="radio" name="store_db" value="1"<!-- IF S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> /> {L_STORE_DATABASE}</label></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_STYLE -->
@@ -511,7 +485,6 @@
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -8,13 +8,13 @@
<p>{L_VERSION_CHECK_EXPLAIN}</p>
<!-- IF S_UP_TO_DATE and S_UP_TO_DATE_AUTO -->
<!-- IF S_UP_TO_DATE -->
<div class="successbox">
<p>{L_VERSION_UP_TO_DATE_ACP} - <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a></p>
<p>{L_VERSION_UP_TO_DATE_ACP}</p>
</div>
<!-- ELSE -->
<div class="errorbox">
<p>{L_VERSION_NOT_UP_TO_DATE_ACP} - <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a></p>
<p>{L_VERSION_NOT_UP_TO_DATE_ACP}</p>
</div>
<!-- ENDIF -->
@@ -22,7 +22,7 @@
<legend></legend>
<dl>
<dt><label>{L_CURRENT_VERSION}</label></dt>
<dd><strong><!-- IF S_UP_TO_DATE and not S_UP_TO_DATE_AUTO -->{AUTO_VERSION}<!-- ELSE -->{CURRENT_VERSION}<!-- ENDIF --></strong></dd>
<dd><strong>{CURRENT_VERSION}</strong></dd>
</dl>
<dl>
<dt><label>{L_LATEST_VERSION}</label></dt>
@@ -30,12 +30,6 @@
</dl>
</fieldset>
<!-- IF S_UP_TO_DATE and not S_UP_TO_DATE_AUTO -->
{L_UPDATE_INSTRUCTIONS_INCOMPLETE}
<br /><br />
{UPDATE_INSTRUCTIONS}
<br /><br />
<!-- ENDIF -->
<!-- IF not S_UP_TO_DATE -->
{UPDATE_INSTRUCTIONS}
<br /><br />

View File

@@ -15,7 +15,7 @@
<dl>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input class="text medium" type="text" id="username" name="username" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="u" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
</dl>
@@ -28,7 +28,7 @@
<!-- ELSEIF S_SELECT_FORUM -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_USER_ADMIN}</h1>
@@ -46,13 +46,13 @@
<fieldset class="quick">
<input type="submit" name="update" value="{L_SUBMIT}" class="button1" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_USER_ADMIN} :: {MANAGED_USERNAME}</h1>
@@ -69,8 +69,8 @@
<fieldset class="quick">
{L_SELECT_FORM}: <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->
@@ -83,10 +83,6 @@
<!-- INCLUDE acp_users_feedback.html -->
<!-- ELSEIF S_WARNINGS -->
<!-- INCLUDE acp_users_warnings.html -->
<!-- ELSEIF S_PROFILE -->
<!-- INCLUDE acp_users_profile.html -->
@@ -113,8 +109,8 @@
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_SIGNATURE -->
@@ -135,8 +131,8 @@
<!-- ELSE -->
<!-- IF group.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{group.U_EDIT_GROUP}">{group.GROUP_NAME}</a></td>
<td><!-- IF group.S_IS_MEMBER --><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --><!-- ELSEIF not group.S_IS_MEMBER and group.U_APPROVE --><a href="{group.U_APPROVE}">{L_GROUP_APPROVE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --></td>
<td><!-- IF not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><a href="{group.U_DELETE}">{L_GROUP_DELETE}</a></td>
</tr>
<!-- ENDIF -->
@@ -147,9 +143,9 @@
<!-- IF S_GROUP_OPTIONS -->
<fieldset class="quick">
{L_USER_GROUP_ADD}: <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
</form>
<!-- ELSEIF S_ATTACHMENTS -->
@@ -177,7 +173,7 @@
<tbody>
<!-- BEGIN attach -->
<!-- IF attach.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}: </strong><!-- ELSE --><strong>{L_POST}: </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}: </strong><!-- ELSE --><strong>{L_TOPIC}: </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
<td style="text-align: center">{attach.POST_TIME}</td>
<td style="text-align: center">{attach.SIZE}</td>
<td style="text-align: center">{attach.DOWNLOAD_COUNT}</td>
@@ -188,7 +184,7 @@
</table>
<!-- ELSE -->
<div class="errorbox">
<p>{L_USER_NO_ATTACHMENTS}</p>
<p>{L_NO_ENTRIES}</p>
</div>
<!-- ENDIF -->
<fieldset class="display-options">
@@ -201,17 +197,17 @@
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<fieldset class="quick">
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />
<p class="small"><a href="#" onclick="marklist('user_attachments', 'mark', true);">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('user_attachments', 'mark', false);">{L_UNMARK_ALL}</a></p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_PERMISSIONS -->
<div style="float: {S_CONTENT_FLOW_END};">
<div style="float: right;">
<a href="{U_USER_PERMISSIONS}">&raquo; {L_SET_USERS_PERMISSIONS}</a><br />
<a href="{U_USER_FORUM_PERMISSIONS}">&raquo; {L_SET_USERS_FORUM_PERMISSIONS}</a>
</div>
@@ -219,10 +215,10 @@
<form id="select_forum" method="post" action="{U_ACTION}">
<fieldset class="quick" style="text-align: left;">
{L_SELECT_FORUM}: <select name="f">{S_FORUM_OPTIONS}</select>
{L_SELECT_FORUM}: <select name="f">{S_FORUM_OPTIONS}</select>
<input class="button2" type="submit" value="{L_GO}" name="select" />
{S_FORM_TOKEN}
</fieldset>
</form>
<div class="clearfix">&nbsp;</div>

View File

@@ -8,13 +8,11 @@
<dd><label><input type="checkbox" class="radio" name="delete" /> {L_DELETE_AVATAR}</label></dd>
</dl>
<!-- IF not S_IN_AVATAR_GALLERY -->
<!-- IF S_UPLOAD_FILE -->
<!-- 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>
<!-- ENDIF -->
<!-- IF S_REMOTE_UPLOAD -->
<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>
@@ -27,7 +25,7 @@
</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="{USER_AVATAR_WIDTH}" /> <span>{L_PIXEL} &times; </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
<dd><input name="width" type="text" id="width" size="3" value="{USER_AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>px</span></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_DISPLAY_GALLERY -->
@@ -72,7 +70,6 @@
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -52,8 +52,8 @@
<!-- IF S_CLEARLOGS -->
<fieldset class="quick">
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />&nbsp;
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />&nbsp;
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />
<p class="small"><a href="#" onclick="marklist('list', 'mark', true);">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('list', 'mark', false);">{L_UNMARK_ALL}</a></p>
</fieldset>
<!-- ENDIF -->
@@ -72,5 +72,5 @@
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
{S_FORM_TOKEN}
</form>

View File

@@ -21,7 +21,7 @@
<dl>
<dt><label>{L_REGISTERED_IP}:</label></dt>
<dd><a href="{U_SHOW_IP}">{REGISTERED_IP}</a></dd>
<dd>[ <a href="{U_WHOIS}" onclick="popup(this.href, 700, 500, '_whois'); return false;">{L_WHOIS}</a> ]</dd>
<dd>[ <a href="#" onclick="window.open('{U_WHOIS}', '_whois', 'height=500, resizable=yes, scrollbars=yes, width=700'); return false;">{L_WHOIS}</a> ]</dd>
</dl>
<!-- ENDIF -->
<dl>
@@ -30,7 +30,7 @@
</dl>
<dl>
<dt><label>{L_POSTS}:</label></dt>
<dd><strong>{USER_POSTS}</strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
<dd><strong>{USER_POSTS}</strong></dd>
</dl>
<dl>
<dt><label>{L_WARNINGS}:</label></dt>
@@ -61,16 +61,16 @@
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
<input type="hidden" name="action" value="" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- IF not S_USER_FOUNDER or S_FOUNDER -->
<script type="text/javascript">
// <![CDATA[
<!--
function display_reason(option)
{
@@ -103,7 +103,7 @@
}
}
// ]]>
//-->
</script>
<form id="user_quick_tools" method="post" action="{U_ACTION}">
@@ -124,30 +124,20 @@
<dd><input name="ban_give_reason" type="text" class="text medium" maxlength="3000" id="ban_give_reason" /></dd>
</dl>
</div>
<!-- IF not S_OWN_ACCOUNT -->
<dl>
<dt><label for="delete_user">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" 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 -->
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- IF not S_OWN_ACCOUNT -->
<form id="user_delete" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_DELETE_USER}</legend>
<dl>
<dt><label for="delete_type">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
<dd><select id="delete_type" name="delete_type"><option value="retain">{L_RETAIN_POSTS}</option><option value="remove">{L_DELETE_POSTS}</option></select></dd>
</dl>
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
<input type="hidden" name="delete" value="1" />
{S_FORM_TOKEN}
</p>
</fieldset>
<!-- ENDIF -->
</form>
<!-- ENDIF -->

View File

@@ -1,9 +1,3 @@
<script type="text/javascript">
// <![CDATA[
var default_dateformat = '{A_DEFAULT_DATEFORMAT}';
// ]]>
</script>
<form id="user_prefs" method="post" action="{U_ACTION}">
<fieldset>
@@ -63,7 +57,7 @@
</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><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 = '{A_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}" maxlength="30" /></div></dd>
</dl>
</fieldset>
@@ -152,7 +146,6 @@
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -49,7 +49,7 @@
<legend>{L_USER_CUSTOM_PROFILE_FIELDS}</legend>
<!-- BEGIN profile_fields -->
<dl>
<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}:</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
<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>
@@ -61,6 +61,6 @@
<fieldset class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -1,5 +1,5 @@
<script type="text/javascript">
// <![CDATA[
<script type="text/javascript">
<!--
var form_name = 'user_signature';
var text_name = 'signature';
@@ -27,15 +27,15 @@
t: '{LA_BBCODE_T_HELP}',
tip: '{L_STYLES_TIP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
// ]]>
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
//-->
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
<form id="user_signature" method="post" action="{U_ACTION}">
<form id="user_signature" method="post" action="{U_ACTION}">
<!-- IF SIGNATURE_PREVIEW -->
<fieldset>
@@ -67,17 +67,17 @@
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
<!-- ENDIF -->
{L_FONT_SIZE}: <select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_FONT_SIZE}" onmouseover="helpline('f')" onmouseout="helpline('tip')">
<option value="50">{L_FONT_TINY}</option>
<option value="85">{L_FONT_SMALL}</option>
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
<option value="150">{L_FONT_LARGE}</option>
<option value="200">{L_FONT_HUGE}</option>
{L_FONT_SIZE}: <select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" onmouseover="helpline('f')" onmouseout="helpline('tip')">
<option value="7">{L_FONT_TINY}</option>
<option value="9">{L_FONT_SMALL}</option>
<option value="12" selected="selected">{L_FONT_NORMAL}</option>
<option value="18">{L_FONT_LARGE}</option>
<option value="24">{L_FONT_HUGE}</option>
</select>
<!-- IF .custom_tags -->
<br /><br />
<!-- BEGIN custom_tags -->
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})"<!-- IF custom_tags.BBCODE_HELPLINE !== '' --> onmouseover="helpline('cb_{custom_tags.BBCODE_ID}')" onmouseout="helpline('tip')"<!-- ENDIF --> />
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})"<!-- IF custom_tags.BBCODE_HELPLINE !== '' --> onmouseover="helpline('cb_{custom_tags.BBCODE_ID}')"<!-- ENDIF --> />
<!-- END custom_tags -->
<!-- ENDIF -->
@@ -86,14 +86,11 @@
<p><input type="text" class="text full" style="border: 0; background: none;" name="helpbox" value="{L_STYLES_TIP}" /></p>
<dl>
<dt style="width: 90px;">
<script type="text/javascript">
// <![CDATA[
colorPalette('v', 12, 10);
// ]]>
</script>
<dt style="width: 90px;"><script type="text/javascript"><!--
colorPalette('v', 12, 10);
//--></script>
</dt>
<dd style="margin-left: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{SIGNATURE}</textarea></dd>
<dd style="margin-left: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{SIGNATURE}</textarea></dd>
<dd style="margin-left: 90px; margin-top: 5px;">
<!-- IF S_BBCODE_ALLOWED -->
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
@@ -112,6 +109,6 @@
<fieldset class="submit-buttons">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="submit" name="preview" value="{L_PREVIEW}" />
{S_FORM_TOKEN}
</fieldset>
</form>
</form>

View File

@@ -1,36 +0,0 @@
<form id="list" method="post" action="{U_ACTION}">
<!-- IF .warn -->
<table cellspacing="1">
<thead>
<tr>
<th>{L_REPORT_BY}</th>
<th>{L_TIME}</th>
<th>{L_FEEDBACK}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN warn -->
<!-- IF warn.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{warn.USERNAME}</td>
<td style="text-align: center; nowrap: nowrap;">{warn.DATE}</td>
<td>{warn.ACTION}</td>
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{warn.ID}" /></td>
</tr>
<!-- END warn -->
</tbody>
</table>
<!-- ELSE -->
<div class="errorbox">
<p>{L_NO_WARNINGS}</p>
</div>
<!-- ENDIF -->
<fieldset class="quick">
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />&nbsp;
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />
<p class="small"><a href="#" onclick="marklist('list', 'mark', true);">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('list', 'mark', false);">{L_UNMARK_ALL}</a></p>
</fieldset>
{S_FORM_TOKEN}
</form>

View File

@@ -4,7 +4,7 @@
<!-- IF S_EDIT_WORD -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_ACP_WORDS}</h1>
@@ -27,9 +27,9 @@
<p 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}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<!-- ELSE -->
@@ -62,15 +62,12 @@
<td style="text-align: center;">{words.REPLACEMENT}</td>
<td>&nbsp;<a href="{words.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{words.U_DELETE}">{ICON_DELETE}</a>&nbsp;</td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">
<td colspan="3">{L_ACP_NO_ITEMS}</td>
</tr>
<!-- END words -->
</tbody>
</table>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->

View File

@@ -69,8 +69,8 @@ h2, caption {
h3, h4 {
font-family: "Trebuchet MS", Helvetica, sans-serif;
font-size: 1.20em;
text-decoration: none;
line-height: 1.20em;
text-decoration: none;
line-height: 1.20em;
margin-top: 25px;
}
@@ -97,8 +97,8 @@ hr {
height: 1px;
}
.small {
font-size: 0.85em;
.small {
font-size: 0.85em;
}
/* General links */
@@ -117,21 +117,6 @@ a:active {
text-decoration: none;
}
.install-body p a {
font-weight: bold;
}
/* List items */
ul, ol {
list-style-position: inside;
margin-left: 1em;
}
li {
display: list-item;
list-style-type: inherit;
}
/* Main blocks
---------------------------------------- */
#wrap {
@@ -202,11 +187,11 @@ li {
margin: 0 3% 0 0;
}
* html #main {
height: 350px;
* html #main {
height: 350px;
}
#page-body.simple-page-body {
.simple-page-body {
padding: 0;
padding-right: 10px;
min-width: 0;
@@ -315,7 +300,7 @@ li {
padding: 0;
}
span.corners-top, span.corners-bottom,
span.corners-top, span.corners-bottom,
span.corners-top span, span.corners-bottom span {
font-size: 1px;
line-height: 1px;
@@ -366,12 +351,6 @@ span.corners-bottom span {
margin-left: 2px;
}
.rtl #toggle {
left: 75%;
margin-right: 0;
margin-left: 6px;
}
#toggle-handle {
display: block;
width: 18px;
@@ -380,11 +359,6 @@ span.corners-bottom span {
background-image: url(../images/toggle.gif);
}
.rtl #toggle-handle {
background-image: url(../images/toggle.gif);
background-position: 100% 50%;
}
/* Menu */
#menu {
float: left;
@@ -436,6 +410,7 @@ span.corners-bottom span {
#menu li a:hover, #menu li a:hover span {
text-decoration: none;
background-color: #FFFFFF;
color: #BC2A4D;
}
@@ -717,7 +692,7 @@ input:hover, textarea:hover {
border-top: 1px solid #AFAEAA;
border-right: 1px solid #AFAEAA;
border-bottom: 1px solid #AFAEAA;
background-color: #E9E9E2;
background-color: #E9E9E2;
}
input.langvalue, textarea.langvalue {
@@ -740,18 +715,13 @@ optgroup {
font-weight: bold;
}
optgroup.disabled-options {
display: none;
background-color: gray;
}
option {
padding: 0 1em 0 0;
color: #000;
}
option.disabled-option {
color: graytext;
color: #aaa;
}
.rtl option {
@@ -794,7 +764,7 @@ label img {
fieldset.quick, p.quick {
margin: 0 0 5px;
padding: 5px 0 0;
padding: 5px 0 0;
border: none;
background-color: transparent;
text-align: right;
@@ -847,7 +817,7 @@ select option.disabled {
}
/* Special case inputs */
select#board_timezone,
select#board_timezone,
select#full_folder_action {
width: 95%;
}
@@ -1186,10 +1156,6 @@ input.disabled {
font-weight: bold;
}
.notice {
background-color: #62A5CC;
}
/* Special cases for the error page */
#errorpage #page-header a {
font-weight: bold;
@@ -1244,19 +1210,20 @@ input.disabled {
}
/* Nice method for clearing floated blocks without having to insert any extra markup
From http://www.positioniseverything.net/easyclearing.html
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;
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 \*/
.clearfix, #tabs, .row, #content, fieldset dl, #page-body {
height: 1%;
overflow: hidden;
}
/* End hide */
/* Syntax Highlighting
---------------------------------------- */
@@ -1316,7 +1283,7 @@ fieldset.permissions legend input{
height: 1.1em;
}
/* Permission sections */
/* Permission sections */
fieldset.permissions .permissions-simple {
text-align: left;
padding-top: 3px;
@@ -1345,24 +1312,9 @@ fieldset.permissions .permissions-switch {
float: left;
}
fieldset.permissions .padding {
}
.permissions-switch {
margin-top: -6px;
font-size: .9em;
}
.permissions-switch a {
text-decoration: underline;
}
.permissions-reset {
padding-bottom: 10px;
}
.permissions-reset a {
font-size: .85em;
font-size: 0.90em;
}
/* Tabbed menu */
@@ -1527,7 +1479,7 @@ fieldset.permissions .padding {
background-image: url("../images/corners_right2.gif");
}
.permissions-panel span.corners-top, .permissions-panel span.corners-bottom,
.permissions-panel span.corners-top, .permissions-panel span.corners-bottom,
.permissions-panel span.corners-top span, .permissions-panel span.corners-bottom span {
font-size: 1px;
line-height: 1px;
@@ -1605,7 +1557,7 @@ fieldset.permissions .padding {
}
.permissions-panel th.row4 {
background-image: none;
background-image: none;
background-color: #E4E8EB;
color: #536482;
border: none;
@@ -1613,8 +1565,8 @@ fieldset.permissions .padding {
.permissions-panel th a:link, .permissions-panel th a:hover, .permissions-panel th a:visited {
display: block;
color: #FFFFFF;
text-decoration: underline;
color: #FFFFFF;
text-decoration: underline;
}
.permissions-panel td.permissions-yes label:hover {
@@ -1640,16 +1592,3 @@ fieldset.permissions .padding {
margin: 0;
padding: 0;
}
/* Classes for additional tasks
---------------------------------------- */
.phpinfo {
overflow: auto;
width: 99%;
direction: ltr;
}
.phpinfo td, .phpinfo th, .phpinfo h2, .phpinfo h1 {
text-align: left;
}

View File

@@ -1,4 +0,0 @@
<dl>
<dt><label for="captcha_preview">{L_PREVIEW}:</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
<dd><img src="{CONFIRM_IMAGE}" alt="{L_PREVIEW}" width="360" height="96" id="captcha_preview" /></dd>
</dl>

View File

@@ -1,74 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<a href="{U_ACTION}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_ACP_VC_SETTINGS}</h1>
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
<form id="acp_captcha" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}:</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_foreground_noise" name="captcha_gd_foreground_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_foreground_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}:</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="text" /></dd>
</dl>
<dl>
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}:</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="text" /></dd>
</dl>
<dl>
<dt><label for="captcha_gd_wave">{L_CAPTCHA_GD_WAVE}:</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_wave" name="captcha_gd_wave" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_wave" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}:</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_3d_noise" name="captcha_gd_3d_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_3d_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}:</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_fonts" name="captcha_gd_fonts" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 1 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_DEFAULT}</label>
<label><input name="captcha_gd_fonts" value="2" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 2 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_NEW}</label>
<label><input name="captcha_gd_fonts" value="3" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 3 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_LOWER}</label>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_PREVIEW}</legend>
<!-- IF CAPTCHA_PREVIEW -->
<!-- INCLUDE {CAPTCHA_PREVIEW} -->
<!-- ENDIF -->
</fieldset>
<fieldset>
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
<p 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}" />&nbsp;
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />&nbsp;
</p>
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
<input type="hidden" name="configure" value="1" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,92 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_QUESTIONS}</h1>
<p>{L_QUESTIONS_EXPLAIN}</p>
<!-- IF S_LIST -->
<form id="captcha_qa" method="post" action="{U_ACTION}">
<fieldset class="tabulated">
<legend>{L_QUESTIONS}</legend>
<table cellspacing="1">
<thead>
<tr>
<th colspan="3">{L_QUESTIONS}</th>
</tr>
<tr class="row3">
<td style="text-align: center;">{L_QUESTION_TEXT}</td>
<td style="width: 5%; text-align: center;">{L_QUESTION_LANG}</td>
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
</tr>
</thead>
<tbody>
<!-- BEGIN questions -->
<!-- IF questions.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: left;">{questions.QUESTION_TEXT}</td>
<td style="text-align: center;">{questions.QUESTION_LANG}</td>
<td style="text-align: center;"><a href="{questions.U_EDIT}">{ICON_EDIT}</a>&nbsp;<a href="{questions.U_DELETE}">{ICON_DELETE}</a></td>
</tr>
<!-- END questions -->
</tbody>
</table>
<fieldset class="quick">
<input class="button1" type="submit" name="add" value="{L_ADD}" />
<input type="hidden" name="action" value="add" />
<input type="hidden" name="configure" value="1" />
<input type="hidden" name="select_captcha" value="{CLASS}" />
{S_FORM_TOKEN}
</fieldset>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSE -->
<!-- IF S_ERROR -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{L_QA_ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="captcha_qa" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_EDIT_QUESTION}</legend>
<dl>
<dt><label for="strict">{L_QUESTION_STRICT}:</label><br /><span>{L_QUESTION_STRICT_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="strict" value="1"<!-- IF STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="strict" value="0"<!-- IF not STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="lang_iso">{L_QUESTION_LANG}</label><br /><span>{L_QUESTION_LANG_EXPLAIN}</span></dt>
<dd><select id="lang_iso" name="lang_iso"><!-- BEGIN langs --><option value="{langs.ISO}" <!-- IF langs.ISO == LANG_ISO --> selected="selected" <!-- ENDIF -->>{langs.NAME}</option><!-- END langs --></select></dd>
</dl>
<dl>
<dt><label for="question_text">{L_QUESTION_TEXT}</label><br /><span>{L_QUESTION_TEXT_EXPLAIN}</span></dt>
<dd><input id="question_text" maxlength="255" size="60" name="question_text" type="text" value="{QUESTION_TEXT}" /></dd>
</dl>
<dl>
<dt><label for="answers">{L_QUESTION_ANSWERS}</label><br /><span>{L_ANSWERS_EXPLAIN}</span></dt>
<dd><textarea id="answers" style="word-wrap: normal; overflow-x: scroll;" name="answers" rows="15" cols="800" >{ANSWERS}</textarea></dd>
</dl>
</fieldset>
<fieldset class="quick">
<input class="button1" type="submit" name="submit" value="{L_SUBMIT}" />
<input type="hidden" name="question_id" value="{QUESTION_ID}" />
<input type="hidden" name="action" value="add" />
<input type="hidden" name="configure" value="1" />
<input type="hidden" name="select_captcha" value="{CLASS}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,7 +0,0 @@
<dl>
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->:</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
<dd>
<input type="text" tabindex="10" name="answer" id="answer" size="45" class="inputbox autowidth" title="{L_ANSWER}" />
</dd>
</dl>

View File

@@ -1,33 +0,0 @@
<!-- IF S_RECAPTCHA_AVAILABLE -->
<dl>
<dd>
<script type="text/javascript">
// <![CDATA[
var RecaptchaOptions = {
lang : '{LA_RECAPTCHA_LANG}'
};
// ]]>
</script>
<script type="text/javascript" src="{RECAPTCHA_SERVER}/challenge?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}"></script>
<script type="text/javascript">
// <![CDATA[
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
document.getElementById('recaptcha_table').style.direction = 'ltr';
<!-- ENDIF -->
// ]]>
</script>
<noscript>
<div>
<object data="{RECAPTCHA_SERVER}/noscript?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}" type="text/html" height="300" width="500"></object><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
</div>
</noscript>
</dd>
</dl>
<!-- ELSE -->
{L_RECAPTCHA_NOT_AVAILABLE}
<!-- ENDIF -->

View File

@@ -1,50 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_VC_SETTINGS}</h1>
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
<form id="acp_captcha" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="recaptcha_pubkey">{L_RECAPTCHA_PUBLIC}:</label><br /><span>{L_RECAPTCHA_PUBLIC_EXPLAIN}</span></dt>
<dd><input id="recaptcha_pubkey" name="recaptcha_pubkey" value="{RECAPTCHA_PUBKEY}" size="50" type="text" /></dd>
</dl>
<dl>
<dt><label for="recaptcha_privkey">{L_RECAPTCHA_PRIVATE}:</label><br /><span>{L_RECAPTCHA_PRIVATE_EXPLAIN}</span></dt>
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_PREVIEW}</legend>
<!-- IF PREVIEW -->
<div class="successbox">
<h3>{L_WARNING}</h3>
<p>{L_CAPTCHA_PREVIEW_MSG}</p>
</div>
<!-- ENDIF -->
<!-- INCLUDE {CAPTCHA_PREVIEW} -->
</fieldset>
<fieldset>
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
<p 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}" />&nbsp;
</p>
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
<input type="hidden" name="configure" value="1" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -8,7 +8,7 @@
<title>{L_COLOUR_SWATCH}</title>
<style type="text/css">
/* <![CDATA[ */
<!--
body {
background-color: #404040;
color: #fff;
@@ -29,14 +29,14 @@
img {
border: 0;
}
/* ]]> */
//-->
</style>
</head>
<body>
<script type="text/javascript">
// <![CDATA[
<!--
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
@@ -71,7 +71,7 @@
{
opener.document.forms["{OPENER}"].{NAME}.value = color;
}
// ]]>
//-->
</script>
</body>

View File

@@ -1,22 +0,0 @@
<!-- INCLUDE overall_header.html -->
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{MESSAGE_TEXT}</p>
</div>
<fieldset>
{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_CANCEL}" class="button2" />
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,32 +1,32 @@
<!-- BEGIN dropdown -->
<select name="{dropdown.FIELD_IDENT}" id="{dropdown.FIELD_IDENT}">
<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}" id="{text.FIELD_IDENT}" rows="{text.FIELD_ROWS}" cols="{text.FIELD_COLS}">{text.FIELD_VALUE}</textarea>
<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}" id="{string.FIELD_IDENT}" size="{string.FIELD_LENGTH}" maxlength="{string.FIELD_MAXLEN}" value="{string.FIELD_VALUE}" />
<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 --><label for="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}"><input type="radio" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label> <!-- END options -->
<!-- BEGIN options --><label><input type="radio" class="radio" name="{bool.FIELD_IDENT}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label><!-- END options -->
<!-- ELSE -->
<input type="checkbox" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}" value="1"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
<input type="checkbox" class="radio" name="{bool.FIELD_IDENT}" value="1"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
<!-- ENDIF -->
<!-- END bool -->
<!-- BEGIN int -->
<input type="text" name="{int.FIELD_IDENT}" id="{int.FIELD_IDENT}" size="{int.FIELD_LENGTH}" value="{int.FIELD_VALUE}" />
<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" id="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
<span>{L_MONTH}:</span> <select name="{date.FIELD_IDENT}_month" id="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
<span>{L_YEAR}:</span> <select name="{date.FIELD_IDENT}_year" id="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
<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

@@ -16,6 +16,7 @@ var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
window.onload = initInsertions;
/**
* Shows the help messages in the helpline window
@@ -46,7 +47,7 @@ function initInsertions()
{
textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
// document.body.focus();
document.body.focus();
}
}
@@ -258,7 +259,7 @@ function addquote(post_id, username)
*/
function mozWrap(txtarea, open, close)
{
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;

5
phpBB/adm/style/install_convert.html Normal file → Executable file
View File

@@ -102,7 +102,7 @@
<!-- IF options.S_LEGEND -->
<!-- IF not options.S_FIRST_ROW -->
</fieldset>
<fieldset>
<!-- ENDIF -->
<legend>{options.LEGEND}</legend>
@@ -120,9 +120,8 @@
<!-- ENDIF -->
<!-- IF L_SUBMIT -->
<!-- IF L_MESSAGE --><p>{L_MESSAGE}</p><!-- ENDIF -->
<fieldset class="submit-buttons">
<!-- IF L_MESSAGE --><p>{L_MESSAGE}</p><!-- ENDIF -->
{S_HIDDEN}
<!-- IF L_SUBMIT --><input class="button1<!-- IF S_REFRESH --> disabled<!-- ENDIF -->" type="submit" id="submit" <!-- IF S_REFRESH -->disabled="disabled" <!-- ELSE --> onclick="this.className = 'button1 disabled';" onsubmit="this.disabled = 'disabled';" <!-- ENDIF -->name="submit" value="{L_SUBMIT}" /><!-- ENDIF -->
</fieldset>

0
phpBB/adm/style/install_error.html Normal file → Executable file
View File

3
phpBB/adm/style/install_footer.html Normal file → Executable file
View File

@@ -2,7 +2,6 @@
</div>
</div>
<span class="corners-bottom"><span></span></span>
<div class="clear"></div>
</div>
</div>
</div>
@@ -19,7 +18,7 @@
// -->
<div id="page-footer">
Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
Powered by phpBB {VERSION} &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
</div>
</div>

27
phpBB/adm/style/install_header.html Normal file → Executable file
View File

@@ -11,31 +11,6 @@
<link href="../adm/style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
// <![CDATA[
/**
* Set display of page element
* s[-1,0,1] = hide,toggle display,show
*/
function dE(n, s, type)
{
if (!type)
{
type = 'block';
}
var e = document.getElementById(n);
if (!s)
{
s = (e.style.display == '' || e.style.display == 'block') ? -1 : 1;
}
e.style.display = (s == 1) ? type : 'none';
}
// ]]>
</script>
</head>
<body class="{S_CONTENT_DIRECTION}">
@@ -78,4 +53,4 @@ function dE(n, s, type)
</ul>
</div>
<div id="main" class="install-body">
<div id="main">

0
phpBB/adm/style/install_install.html Normal file → Executable file
View File

0
phpBB/adm/style/install_main.html Normal file → Executable file
View File

View File

@@ -1,56 +1,28 @@
<!-- INCLUDE install_header.html -->
<script type="text/javascript">
// <![CDATA[
function popup(url, width, height, name)
<!--
function popup(url, width, height)
{
if (!name)
{
name = '_popup';
}
window.open(url.replace(/&amp;/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width);
window.open(url.replace(/&amp;/g, '&'), 'diff', 'height=' + height + ',resizable=yes,scrollbars=yes,width=' + width);
return false;
}
function diff_popup(url)
{
popup(url, 950, 600, '_diff');
return false;
}
// ]]>
//-->
</script>
<!-- IF S_ERROR -->
<div class="errorbox" style="margin-top: 0;">
<h3>{L_NOTICE}</h3>
<p>{ERROR_MSG}</p>
</div>
<h1>{L_NOTICE}</h1>
<p style="color: red;">{ERROR_MSG}</p>
<!-- ENDIF -->
<!-- IF S_IN_PROGRESS -->
<div class="successbox" style="margin-top: 0;">
<h3>{L_IN_PROGRESS}</h3>
<p>{L_IN_PROGRESS_EXPLAIN}</p>
</div>
<!-- ELSEIF S_INTRO -->
<!-- IF S_WARNING -->
<div class="successbox" style="margin-top: 0;">
<h3>{L_NOTICE}</h3>
<p>{WARNING_MSG}</p>
</div>
<!-- ENDIF -->
<!-- IF S_INTRO -->
<form id="install_update" method="post" action="{U_ACTION}">
<h1>{L_UPDATE_INSTALLATION}</h1>
<p>{L_UPDATE_INSTALLATION_EXPLAIN}</p>
<fieldset class="submit-buttons">
<input class="button1" type="submit" name="submit" value="{L_NEXT_STEP}" />
<input class="button1" type="submit" name="submit" value="{L_NEXT}" />
</fieldset>
</form>
@@ -63,7 +35,7 @@
<p>{L_UPDATE_SUCCESS_EXPLAIN}</p>
<fieldset class="submit-buttons">
<input class="button1" type="submit" name="check_again" value="{L_CONTINUE_UPDATE}" />
<input class="button1" type="submit" name="submit" value="{L_CHECK_FILES_AGAIN}" />
</fieldset>
</form>
@@ -96,12 +68,6 @@
<dt><label>{L_LATEST_VERSION}</label></dt>
<dd><strong>{LATEST_VERSION}</strong></dd>
</dl>
<!-- IF PACKAGE_VERSION and not S_UP_TO_DATE -->
<dl>
<dt><label>{L_PACKAGE_UPDATES_TO}</label></dt>
<dd><strong>{PACKAGE_VERSION}</strong></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<!-- IF not S_UP_TO_DATE -->
@@ -134,6 +100,8 @@
<p>
{L_PERFORM_DATABASE_UPDATE_EXPLAIN}<br />
<br />
<a href="{U_DB_UPDATE}"><strong>&raquo; {L_RUN_DATABASE_SCRIPT} &laquo;</strong></a>
</p>
<br /><br />
@@ -141,9 +109,7 @@
<form id="install_dbupdate" method="post" action="{U_DB_UPDATE_ACTION}">
<fieldset class="submit-buttons">
<a href="{U_DB_UPDATE}" class="button1">{L_RUN_DATABASE_SCRIPT}</a>
<!-- input class="button1" type="submit" name="db_update" value="{L_CHECK_UPDATE_DATABASE}" / -->
<input class="button1" type="submit" name="db_update" value="{L_CHECK_UPDATE_DATABASE}" />
</fieldset>
</form>
@@ -186,174 +152,77 @@
<p>{L_NO_UPDATE_FILES_EXPLAIN}</p><br />
<strong>{NO_UPDATE_FILES}</strong>
</div>
<!-- ENDIF -->
<form id="install_update" method="post" action="{U_UPDATE_ACTION}">
<!-- IF .up_to_date -->
<h2>{L_FILES_UP_TO_DATE}</h2>
<p>{L_FILES_UP_TO_DATE_EXPLAIN}</p>
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_up_to_date.gif" alt="{L_STATUS_UP_TO_DATE}" /></legend>
<!-- BEGIN up_to_date -->
<dl>
<dd class="full" style="text-align: left;"><strong>{up_to_date.FILENAME}</strong></dd>
</dl>
<!-- END up_to_date -->
</fieldset>
<!-- ENDIF -->
<!-- IF .new -->
<h2>{L_FILES_NEW}</h2>
<p>{L_FILES_NEW_EXPLAIN}</p>
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_new.gif" alt="{L_STATUS_NEW}" /></legend>
<!-- BEGIN new -->
<dl>
<dt style="width: 60%;"><strong><!-- IF new.DIR_PART -->{new.DIR_PART}<br /><!-- ENDIF -->{new.FILE_PART}</strong>
<!-- IF new.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;">
<!-- IF not new.S_BINARY -->[<a href="{new.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
</dd>
<!-- IF new.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{new.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- ENDIF -->
</dl>
<!-- END new -->
</fieldset>
<!-- ENDIF -->
<!-- IF .not_modified -->
<h2>{L_FILES_NOT_MODIFIED}</h2>
<div style="float: {S_CONTENT_FLOW_END};">&raquo; <a href="#" onclick="dE('not_modified', 0); return false;">{L_TOGGLE_DISPLAY}</a></div>
<p>{L_FILES_NOT_MODIFIED_EXPLAIN}</p>
<fieldset id="not_modified" style="display: none;">
<legend><img src="{T_IMAGE_PATH}file_not_modified.gif" alt="{L_STATUS_NOT_MODIFIED}" /></legend>
<!-- BEGIN not_modified -->
<dl>
<dt style="width: 60%;"><strong><!-- IF not_modified.DIR_PART -->{not_modified.DIR_PART}<br /><!-- ENDIF -->{not_modified.FILE_PART}</strong>
<!-- IF not_modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{not_modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;"><!-- IF not not_modified.S_BINARY -->[<a href="{not_modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{not_modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
<!-- IF not_modified.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{not_modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- IF .files -->
<!-- BEGIN files -->
<!-- IF files.S_STATUS -->
<!-- IF not files.S_FIRST_ROW -->
</fieldset>
<!-- ENDIF -->
</dl>
<!-- END not_modified -->
</fieldset>
<!-- ENDIF -->
<h2>{files.TITLE}</h2>
<!-- IF .modified -->
<h2>{L_FILES_MODIFIED}</h2>
<p>{L_FILES_MODIFIED_EXPLAIN}</p>
<p>{files.EXPLAIN}</p>
<!-- BEGIN modified -->
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_modified.gif" alt="{L_STATUS_MODIFIED}" /></legend>
<dl>
<dt style="width: 60%;"><strong><!-- IF modified.DIR_PART -->{modified.DIR_PART}<br /><!-- ENDIF -->{modified.FILE_PART}</strong>
<!-- IF modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;">&nbsp;</dd>
<!-- IF modified.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- ENDIF -->
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="0" checked="checked" /> {L_MERGE_MODIFICATIONS_OPTION}</label></dt>
<dd style="margin-left: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
<dd style="margin-left: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE -->&nbsp;<!-- ENDIF --></dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
<dd style="margin-left: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE -->&nbsp;<!-- ENDIF --></dd>
</dl>
</fieldset>
<!-- END modified -->
<!-- ENDIF -->
<!-- IF .new_conflict -->
<h2>{L_FILES_NEW_CONFLICT}</h2>
<p>{L_FILES_NEW_CONFLICT_EXPLAIN}</p>
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_new_conflict.gif" alt="{L_STATUS_NEW_CONFLICT}" /></legend>
<!-- BEGIN new_conflict -->
<dl>
<dt style="width: 60%;"><strong><!-- IF new_conflict.DIR_PART -->{new_conflict.DIR_PART}<br /><!-- ENDIF -->{new_conflict.FILE_PART}</strong>
<!-- IF new_conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new_conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;">
<!-- IF not new_conflict.S_BINARY -->[<a href="{new_conflict.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new_conflict.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
</dd>
<!-- IF new_conflict.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{new_conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- ENDIF -->
</dl>
<!-- END new_conflict -->
</fieldset>
<!-- ENDIF -->
<!-- IF .conflict -->
<h2>{L_FILES_CONFLICT}</h2>
<p>{L_FILES_CONFLICT_EXPLAIN}</p>
<!-- BEGIN conflict -->
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_conflict.gif" alt="{L_STATUS_CONFLICT}" /></legend>
<dl>
<dt style="width: 60%;"><strong><!-- IF conflict.DIR_PART -->{conflict.DIR_PART}<br /><!-- ENDIF -->{conflict.FILE_PART}</strong>
<!-- IF conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
<!-- IF conflict.NUM_CONFLICTS --><br /><span>{L_NUM_CONFLICTS}: {conflict.NUM_CONFLICTS}</span><!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;">
<!-- IF not conflict.S_BINARY -->[<a href="{conflict.U_SHOW_DIFF}">{L_DOWNLOAD_CONFLICTS}</a>]<br />{L_DOWNLOAD_CONFLICTS_EXPLAIN}
<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
</dd>
<!-- IF conflict.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- ENDIF -->
</dl>
<!-- IF conflict.S_BINARY -->
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" checked="checked" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
<dd style="margin-left: 60%;">&nbsp;</dd>
</dl>
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_{files.STATUS}.gif" alt="{files.L_STATUS}" /></legend>
<!-- ELSE -->
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="3" checked="checked" /> {L_MERGE_NEW_FILE_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{conflict.U_VIEW_NEW_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="4" /> {L_MERGE_MOD_FILE_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{conflict.U_VIEW_MOD_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
</dl>
<!-- ENDIF -->
</fieldset>
<!-- END conflict -->
<!-- IF files.STATUS eq 'up_to_date' -->
<dd class="full" style="text-align: left;"><strong>{files.FILENAME}</strong></dd>
<!-- ELSE -->
<dt style="width: 60%;">
<strong><!-- IF files.DIR_PART -->{files.DIR_PART}<br /><!-- ENDIF -->{files.FILE_PART}</strong>
<!-- IF files.S_CUSTOM -->
<br /><span><em>{L_FILE_USED}: </em>{files.CUSTOM_ORIGINAL}</span>
<!-- ENDIF -->
<!-- IF files.NUM_CONFLICTS -->
<br /><span>{L_NUM_CONFLICTS}: {files.NUM_CONFLICTS}</span>
<!-- ENDIF -->
</dt>
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[ <a href="{files.U_SHOW_DIFF}" onclick="popup('{files.U_SHOW_DIFF}', 700, 500); return false;">{files.L_SHOW_DIFF}</a> ]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
<!-- IF files.S_CUSTOM -->
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{files.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
<!-- ENDIF -->
<!-- IF files.STATUS eq 'conflict' -->
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="1" checked="checked" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[<a href="{files.U_VIEW_NO_MERGE_NEW}" onclick="popup('{files.U_VIEW_NO_MERGE_NEW}', 700, 500); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE -->&nbsp;<!-- ENDIF --></dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[<a href="{files.U_VIEW_NO_MERGE_MOD}" onclick="popup('{files.U_VIEW_NO_MERGE_MOD}', 700, 500); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE -->&nbsp;<!-- ENDIF --></dd>
</dl>
<!-- IF not files.S_BINARY -->
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="3" /> {L_MERGE_NEW_FILE_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{files.U_VIEW_NEW_FILE}" onclick="popup('{files.U_VIEW_NEW_FILE}', 700, 500); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
</dl>
<dl>
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="4" /> {L_MERGE_MOD_FILE_OPTION}</label></dt>
<dd style="margin-left: 60%;">[<a href="{files.U_VIEW_MOD_FILE}" onclick="popup('{files.U_VIEW_MOD_FILE}', 700, 500); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
</dl>
<!-- ENDIF -->
<!-- IF not files.S_LAST_ROW -->
</fieldset>
<fieldset>
<legend><img src="{T_IMAGE_PATH}file_{files.STATUS}.gif" alt="{files.L_STATUS}" /></legend>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF files.STATUS neq 'conflict' --></dl><!-- ENDIF -->
<!-- ENDIF -->
<!-- END files -->
</fieldset>
<!-- ENDIF -->
<br />
@@ -369,7 +238,7 @@
<p>{L_UPDATE_METHOD_EXPLAIN}</p>
<fieldset class="submit-buttons">
<input class="button1" type="submit" name="ftp_upload" value="{L_FTP_UPDATE_METHOD}" />&nbsp; &nbsp;<input class="button1" type="submit" name="download" value="{L_DOWNLOAD_UPDATE_METHOD_BUTTON}" />
<input class="button1" type="submit" name="ftp_upload" value="{L_FTP_UPDATE_METHOD}" />&nbsp; &nbsp;<input class="button1" type="submit" name="download" value="{L_DOWNLOAD_UPDATE_METHOD}" />
</fieldset>
</form>
@@ -378,14 +247,14 @@
<!-- ELSEIF S_DOWNLOAD_FILES -->
<h1>{L_DOWNLOAD_UPDATE_METHOD}</h1>
<h1>{L_SELECT_DOWNLOAD_FORMAT}</h1>
<p>{L_DOWNLOAD_UPDATE_METHOD_EXPLAIN}</p>
<form id="install_update" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_SELECT_DOWNLOAD_FORMAT}</legend>
<legend>{L_DOWNLOAD_AS}</legend>
<dl>
<dt><label for="use_method">{L_DOWNLOAD_AS}:</label></dt>
<dd>{RADIO_BUTTONS}</dd>
@@ -394,7 +263,7 @@
<fieldset class="submit-buttons">
{S_HIDDEN_FIELDS}
<input type="submit" class="button2" value="{L_CONTINUE_UPDATE}" name="check_again" />&nbsp; &nbsp;<input type="submit" class="button1" value="{L_DOWNLOAD}" name="download" />
<input type="submit" class="button2" value="{L_CHECK_FILES_AGAIN}" name="check_again" />&nbsp; &nbsp;<input type="submit" class="button1" value="{L_DOWNLOAD}" name="download" />
</fieldset>
</form>
@@ -434,14 +303,6 @@
<p>{L_CONNECTION_SUCCESS}</p>
</div>
<!-- ELSEIF S_CONNECTION_FAILED -->
<div class="successbox">
<p>{L_TRY_DOWNLOAD_METHOD}</p>
<fieldset class="quick">
<input class="button1" type="submit" name="download" value="{L_TRY_DOWNLOAD_METHOD_BUTTON}" />
</fieldset>
</div>
<div class="errorbox">
<p>{L_CONNECTION_FAILED}<br />{ERROR_MSG}</p>
</div>
@@ -460,7 +321,7 @@
</dl>
<!-- END data -->
</fieldset>
<fieldset class="submit-buttons">
{S_HIDDEN_FIELDS}
<input class="button2" type="submit" name="check_again" value="{L_BACK}" />

View File

@@ -12,12 +12,12 @@
<link href="../adm/style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
// <![CDATA[
<!--
function resize_panel()
{
var block = document.getElementById('codepanel');
var block = document.getElementById('codepanel');
var height;
if (window.innerHeight)
{
height = window.innerHeight - 150;
@@ -26,55 +26,40 @@ function resize_panel()
else
{
//whatever IE needs to do this
}
}
}
window.onresize = resize_panel;
// ]]>
-->
</script>
<style type="text/css">
/* <![CDATA[ */
<!--
#main {
font-size: 1em;
font-size: 1.25em;
line-height: 0.7em;
margin: 0;
padding: 0;
width: 99%;
}
#diff_content {
padding: 30px 10px 10px;
}
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
div#codepanel {
overflow: auto;
width: 100%;
height: 350px;
}
<!-- ELSE -->
div#codepanel {
div#codepanel {
background-color: #eee;
}
<!-- ENDIF -->
<!-- IF DIFF_MODE neq 'unified' and DIFF_MODE neq 'side_by_side' -->
div#diff_content pre {
overflow: auto;
height: 414px;
width: 100% !important;
}
<!-- ENDIF -->
<!-- IF not S_DIFF_NEW_FILE -->
<!-- IF not IS_DIFF_NEW_FILE -->
/**
* Unified Diff
*/
.file {
line-height: .7em;
overflow: auto;
height: 414px;
}
.diff {
@@ -149,10 +134,10 @@ table.hrdiff tbody th {
table.hrdiff tbody td.old {
border-left: 1px solid #999;
border-right: 1px solid #999;
border-right: 1px solid #999;
}
table.hrdiff tbody td.new {
border-right: 1px solid #999;
border-right: 1px solid #999;
}
table.hrdiff td pre {
@@ -208,13 +193,14 @@ table.hrdiff caption span {
<!-- ENDIF -->
/* ]]> */
//-->
</style>
</head>
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
<body onload="resize_panel();">
<body onresize="resize_panel();" onload="resize_panel();">
<!-- ELSE -->
<body>
<!-- ENDIF -->
@@ -228,28 +214,27 @@ table.hrdiff caption span {
<h1>{L_VIEWING_FILE_DIFF}</h1>
<!-- ENDIF -->
<!-- IF not S_DIFF_NEW_FILE -->
<br />
<p id="skip"><a href="#acp">{L_SKIP}</a></p>
<form method="post" action="">
<fieldset class="quick">
<form method="post">
<label for="diff_mode">{L_SELECT_DIFF_MODE}:</label>
<select name="diff_mode" id="diff_mode">{S_DIFF_MODE_OPTIONS}</select>
<input class="button1" type="submit" id="submit" name="submit" value="{L_CHANGE}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- IF S_DIFF_CONFLICT_FILE -->
<div style="float: {S_CONTENT_FLOW_BEGIN};"><strong>{L_NUM_CONFLICTS}: {NUM_CONFLICTS}</strong></div>
<br style="clear: both;" />
<!-- ENDIF -->
</div>
<div id="page-body">
<div id="acp">
<div class="panel" id="codepanel">
<span class="corners-top"><span></span></span>
<div id="diff_content">
<div id="content">
<div id="main">
<!-- IF S_DIFF_CONFLICT_FILE -->
<div style="float: right;"><strong>{L_NUM_CONFLICTS}: {NUM_CONFLICTS}</strong></div>
<!-- ENDIF -->
{DIFF_CONTENT}
</div>
</div>
@@ -257,6 +242,6 @@ table.hrdiff caption span {
</div>
</div>
</div>
<!-- INCLUDE simple_footer.html -->

View File

@@ -2,7 +2,6 @@
</div>
</div>
<span class="corners-bottom"><span></span></span>
<div class="clear"></div>
</div>
</div>
</div>
@@ -20,7 +19,7 @@
<div id="page-footer">
<!-- IF S_COPYRIGHT_HTML -->
Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
Powered by phpBB {VERSION} &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
<!-- ENDIF -->

View File

@@ -12,11 +12,11 @@
<link href="style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
// <![CDATA[
<!--
var jump_page = '{LA_JUMP_PAGE}:';
var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}';
var base_url = '{A_BASE_URL}';
var base_url = '{BASE_URL}';
var menu_state = 'shown';
@@ -28,16 +28,9 @@ function jumpto()
{
var page = prompt(jump_page, on_page);
if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
if (page !== null && !isNaN(page) && page > 0)
{
if (base_url.indexOf('?') == -1)
{
document.location.href = base_url + '?start=' + ((page - 1) * per_page);
}
else
{
document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
}
@@ -89,25 +82,33 @@ function marklist(id, name, state)
}
/**
* Find a member
* Open trace popup
*/
function find_username(url)
function trace(link)
{
popup(url, 760, 570, '_usersearch');
window.open(link.replace(/&amp;/g, '&'), '_trace', 'height=515, resizable=yes, scrollbars=yes, width=750');
return false;
}
/**
* Window popup
* Find a member
*/
function popup(url, width, height, name)
function find_username()
{
if (!name)
{
name = '_popup';
}
<!-- IF UA_FIND_USERNAME -->
window.open('{UA_FIND_USERNAME}', '_usersearch', 'height=570, resizable=yes, scrollbars=yes, width=760');
<!-- ENDIF -->
return false;
}
window.open(url.replace(/&amp;/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width);
/**
* Color swatch
*/
function swatch(field)
{
<!-- IF UA_SWATCH -->
window.open('{UA_SWATCH}' + field, '_swatch', 'height=150, resizable=yes, scrollbars=no, width=636');
<!-- ENDIF -->
return false;
}
@@ -128,17 +129,11 @@ function switch_menu()
main.style.width = '93%';
menu_state = 'hidden';
menu.style.display = 'none';
toggle.style.left = '0';
toggle.style.width = '20px';
handle.style.backgroundImage = 'url(images/toggle.gif)';
handle.style.backgroundPosition = '100% 50%';
handle.style.backgroundRepeat = 'no-repeat';
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
handle.style.backgroundPosition = '0% 50%';
toggle.style.left = '96%';
<!-- ELSE -->
handle.style.backgroundPosition = '100% 50%';
toggle.style.left = '0';
<!-- ENDIF -->
break;
// show
@@ -146,22 +141,16 @@ function switch_menu()
main.style.width = '76%';
menu_state = 'shown';
menu.style.display = 'block';
toggle.style.left = '15%';
toggle.style.width = '5%';
handle.style.backgroundImage = 'url(images/toggle.gif)';
handle.style.backgroundPosition = '0% 50%';
handle.style.backgroundRepeat = 'no-repeat';
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
handle.style.backgroundPosition = '100% 50%';
toggle.style.left = '75%';
<!-- ELSE -->
handle.style.backgroundPosition = '0% 50%';
toggle.style.left = '15%';
<!-- ENDIF -->
break;
}
}
// ]]>
//-->
</script>
</head>
@@ -188,33 +177,27 @@ function switch_menu()
<span class="corners-top"><span></span></span>
<div id="content">
<!-- IF not S_USER_NOTICE -->
<div id="toggle">
<div id="toggle">
<a id="toggle-handle" accesskey="m" title="{L_MENU_TOGGLE}" onclick="switch_menu(); return false;" href="#"></a></div>
<!-- ENDIF -->
<div id="menu">
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;][&nbsp;<a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a>&nbsp;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;]</p>
<ul>
<!-- DEFINE $LI_USED = 0 -->
<!-- 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>
<!-- DEFINE $LI_USED = 1 -->
<!-- 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>
<!-- DEFINE $LI_USED = 1 -->
<!-- END l_block3 -->
<!-- END l_block2 -->
<!-- ENDIF -->
<!-- END l_block1 -->
<!-- IF not $LI_USED -->
<li></li>
<!-- ENDIF -->
</ul>
</div>

View File

@@ -1,40 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_ACP_FORUM_PERMISSIONS_COPY}</h1>
{L_ACP_FORUM_PERMISSIONS_COPY_EXPLAIN}
<form id="forum_perm_copy" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_LOOK_UP_FORUM}</legend>
<dl>
<dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt>
<dd><select id="src_forum" name="src_forum_id"><option value="0">{L_SELECT_FORUM}</option><option value="-1">------------------</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_LOOK_UP_FORUM}</legend>
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
<dl>
<dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt>
<dd><select id="dest_forums" name="dest_forum_ids[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<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}" />
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<script type="text/javascript">
// <![CDATA[
<!--
var active_pmask = '0';
var active_fmask = '0';
var active_cat = '0';
@@ -12,13 +12,13 @@
<!-- IF S_ROLE_JS_ARRAY -->
{S_ROLE_JS_ARRAY}
<!-- ENDIF -->
// ]]>
//-->
</script>
<script type="text/javascript" src="style/permissions.js"></script>
<!-- BEGIN p_mask -->
<div class="clearfix"></div>
<h3>{p_mask.NAME}<!-- IF p_mask.S_LOCAL --> <span class="small"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></h3>
<h3>{p_mask.PADDING}{p_mask.NAME}<!-- IF p_mask.S_LOCAL --> <span class="small"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></h3>
<!-- BEGIN f_mask -->
<div class="clearfix"></div>
@@ -28,14 +28,11 @@
<input type="checkbox" style="display: none;" class="permissions-checkbox" name="inherit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" id="checkbox{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" value="1" onclick="toggle_opacity('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" />
<!-- ELSE -->
<!-- ENDIF -->
<!-- IF p_mask.f_mask.PADDING --><span class="padding">{p_mask.f_mask.PADDING}{p_mask.f_mask.PADDING}</span><!-- ENDIF -->{p_mask.f_mask.NAME}
<!-- {p_mask.f_mask.PADDING} -->{p_mask.f_mask.NAME}
</legend>
<!-- IF not p_mask.S_VIEW -->
<div class="permissions-switch">
<div class="permissions-reset">
<a href="#" onclick="mark_options('perm{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_YES}</a> &middot; <a href="#" onclick="mark_options('perm{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_NO}</a> &middot; <a href="#" onclick="mark_options('perm{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_NEVER}</a>
</div>
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0', true); return false;">{L_ADVANCED_PERMISSIONS}</a><!-- IF not p_mask.S_VIEW and p_mask.f_mask.S_CUSTOM --> *<!-- ENDIF -->
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0', true); return false;">{L_ADVANCED_PERMISSIONS}</a>
</div>
<dl class="permissions-simple">
<dt style="width: 20%"><label for="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">{L_ROLE}:</label></dt>
@@ -49,11 +46,7 @@
<!-- BEGIN category -->
<!-- IF p_mask.f_mask.category.S_FIRST_ROW -->
<!-- IF not p_mask.S_VIEW -->
<div class="permissions-advanced" id="advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" style="display: none;">
<!-- ELSE -->
<div class="permissions-advanced" id="advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">
<!-- ENDIF -->
<div class="permissions-advanced" id="advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}"<!-- IF not p_mask.S_VIEW --> style="display: none;"<!-- ENDIF -->>
<div class="permissions-category">
<ul>
@@ -68,7 +61,7 @@
<!-- ELSE -->
<li class="permissions-preset-custom<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}">
<!-- ENDIF -->
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '{p_mask.f_mask.category.S_ROW_COUNT}', false<!-- IF p_mask.S_VIEW -->, true<!-- ENDIF -->); return false;"><span class="tabbg"><span class="colour"></span>{p_mask.f_mask.category.CAT_NAME}</span></a></li>
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '{p_mask.f_mask.category.S_ROW_COUNT}', false<!-- IF p_mask.S_VIEW -->, true<!-- ENDIF -->); return false;"><span class="tabbg"><span class="colour"></span>{category.CAT_NAME}</span></a></li>
<!-- END category -->
</ul>
</div>
@@ -102,7 +95,7 @@
<tbody>
<!-- BEGIN mask -->
<!-- IF p_mask.f_mask.category.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF -->
<th class="permissions-name<!-- IF p_mask.f_mask.category.mask.S_ROW_COUNT is even --> row4<!-- ELSE --> row3<!-- ENDIF -->"><!-- IF p_mask.f_mask.category.mask.U_TRACE --><a href="{p_mask.f_mask.category.mask.U_TRACE}" class="trace" onclick="popup(this.href, 750, 515, '_trace'); return false;" title="{L_TRACE_SETTING}"><img src="images/icon_trace.gif" alt="{L_TRACE_SETTING}" /></a> <!-- ENDIF -->{p_mask.f_mask.category.mask.PERMISSION}</th>
<th class="permissions-name<!-- IF p_mask.f_mask.category.mask.S_ROW_COUNT is even --> row4<!-- ELSE --> row3<!-- ENDIF -->"><!-- IF p_mask.f_mask.category.mask.U_TRACE --><a href="#" class="trace" onclick="trace('{p_mask.f_mask.category.mask.U_TRACE}'); return false;" title="{L_TRACE_SETTING}"><img src="images/icon_trace.gif" alt="{L_TRACE_SETTING}" /></a> <!-- ENDIF -->{p_mask.f_mask.category.mask.PERMISSION}</th>
<!-- IF p_mask.S_VIEW -->
<td<!-- IF p_mask.f_mask.category.mask.S_YES --> class="yes"<!-- ENDIF -->>&nbsp;</td>
<td<!-- IF p_mask.f_mask.category.mask.S_NEVER --> class="never"<!-- ENDIF -->></td>

View File

@@ -2,7 +2,7 @@
<div style="background-color: #fff; padding: 10px; margin-top: 10px;" class="permissions">
<!-- IF U_BACK --><a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a><!-- ENDIF -->
<!-- IF U_BACK --><a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a><!-- ENDIF -->
<h3>{L_TRACE_FOR}: {PERMISSION_USERNAME} / <!-- IF FORUM_NAME -->{FORUM_NAME} / <!-- ENDIF -->{PERMISSION} </h3>
@@ -41,18 +41,11 @@
<td>{trace.INFORMATION}</td>
</tr>
<!-- END trace -->
<tr class="row2">
<td style="white-space: nowrap;"><strong>{L_TRACE_RESULT}</strong></td>
<td colspan="2" style="text-align: center;" class="<!-- IF S_RESULT_NEVER -->never<!-- ELSEIF S_RESULT_YES -->yes<!-- ELSE -->no<!-- ENDIF -->">
<!-- IF S_RESULT_NEVER -->{L_ACL_NEVER}<!-- ELSEIF S_RESULT_YES -->{L_ACL_YES}<!-- ELSE -->{L_ACL_NO}<!-- ENDIF -->
</td>
<td>{L_RESULTING_PERMISSION}</td>
</tr>
</tbody>
</table>
<br />
</div>
<!-- INCLUDE simple_footer.html -->
</div>

View File

@@ -1,7 +1,7 @@
<!-- INCLUDE simple_header.html -->
<script type="text/javascript">
// <![CDATA[
<!--
/**
* Close previously opened popup
*/
@@ -22,7 +22,7 @@
setTimeout("close_popup()", 1000);
return 0;
}
// ]]>
//-->
</script>
<div class="successbox">
@@ -32,9 +32,9 @@
</div>
<script type="text/javascript">
// <![CDATA[
<!--
close_popup();
// ]]>
//-->
</script>
<!-- INCLUDE simple_footer.html -->

View File

@@ -1,4 +1,4 @@
<div style="text-align: {S_CONTENT_FLOW_END};"><a href="#" onclick="self.close(); return false;">{L_CLOSE_WINDOW}</a></div>
<div style="text-align: right;"><a href="#" onclick="self.close(); return false;">{L_CLOSE_WINDOW}</a></div>
<br /><br />
</div>
@@ -16,7 +16,7 @@
<div id="page-footer">
<!-- IF S_COPYRIGHT_HTML -->
<br />Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
<br />Powered by phpBB {VERSION} &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
<!-- ENDIF -->

View File

@@ -12,25 +12,11 @@
<link href="style/admin.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript">
// <![CDATA[
<!--
var jump_page = '{LA_JUMP_PAGE}:';
var on_page = '{ON_PAGE}';
var per_page = '{PER_PAGE}';
var base_url = '{A_BASE_URL}';
/**
* Window popup
*/
function popup(url, width, height, name)
{
if (!name)
{
name = '_popup';
}
window.open(url.replace(/&amp;/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width);
return false;
}
var base_url = '{BASE_URL}';
/**
* Jump to page
@@ -39,16 +25,9 @@ function jumpto()
{
var page = prompt(jump_page, on_page);
if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
if (page !== null && !isNaN(page) && page > 0)
{
if (base_url.indexOf('?') == -1)
{
document.location.href = base_url + '?start=' + ((page - 1) * per_page);
}
else
{
document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
}
@@ -97,13 +76,26 @@ function marklist(id, name, state)
/**
* Find a member
*/
function find_username(url)
function find_username()
{
popup(url, 760, 570, '_usersearch');
<!-- IF UA_FIND_USERNAME -->
window.open('{UA_FIND_USERNAME}', '_usersearch', 'height=570, resizable=yes, scrollbars=yes, width=760');
<!-- ENDIF -->
return false;
}
// ]]>
/**
* Color swatch
*/
function swatch(field)
{
<!-- IF UA_SWATCH -->
window.open('{UA_SWATCH}' + field, '_swatch', 'height=150, resizable=yes, scrollbars=no, width=636');
<!-- ENDIF -->
return false;
}
//-->
</script>
</head>

View File

@@ -1,10 +1,10 @@
<!-- INCLUDE simple_header.html -->
<div id="acp" style="padding: 0;">
<div id="acp">
<div class="panel" style="padding: 10px;">
<div style="overflow: auto;">
<h1>{FILENAME}</h1>
<table class="type2">
<table>
<tbody>
<!-- BEGIN source -->
<tr valign="top">

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -12,8 +12,7 @@
* @ignore
*/
define('IN_PHPBB', true);
define('ADMIN_START', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
@@ -29,16 +28,9 @@ $template->set_filenames(array(
'body' => 'colour_swatch.html')
);
$form = request_var('form', '');
$name = request_var('name', '');
// We validate form and name here, only id/class allowed
$form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form;
$name = (!preg_match('/^[a-z0-9_-]+$/i', $name)) ? '' : $name;
$template->assign_vars(array(
'OPENER' => $form,
'NAME' => $name,
'OPENER' => addslashes(request_var('form', '')),
'NAME' => request_var('name', ''),
'T_IMAGES_PATH' => "{$phpbb_root_path}images/",
'S_USER_LANG' => $user->lang['USER_LANG'],

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
* Minimum Requirement: PHP 4.3.3
*/
@@ -19,12 +19,8 @@ if (!defined('IN_PHPBB'))
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
// Report all errors, except notices and deprecation messages
if (!defined('E_DEPRECATED'))
{
define('E_DEPRECATED', 8192);
}
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
// Report all errors, except notices
error_reporting(E_ALL ^ E_NOTICE);
/*
* Remove variables created by register_globals from the global scope
@@ -69,26 +65,8 @@ function deregister_globals()
{
if (isset($not_unset[$varname]))
{
// Hacking attempt. No point in continuing unless it's a COOKIE
if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) || isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) || isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) || isset($_FILES['GLOBALS']))
{
exit;
}
else
{
$cookie = &$_COOKIE;
while (isset($cookie['GLOBALS']))
{
foreach ($cookie['GLOBALS'] as $registered_var => $value)
{
if (!isset($not_unset[$registered_var]))
{
unset($GLOBALS[$registered_var]);
}
}
$cookie = &$cookie['GLOBALS'];
}
}
// Hacking attempt. No point in continuing.
exit;
}
unset($GLOBALS[$varname]);
@@ -107,10 +85,10 @@ if (version_compare(PHP_VERSION, '6.0.0-dev', '>='))
}
else
{
@set_magic_quotes_runtime(0);
set_magic_quotes_runtime(0);
// Be paranoid with passed vars
if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on' || !function_exists('ini_get'))
if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
{
deregister_globals();
}
@@ -120,7 +98,16 @@ else
if (defined('IN_CRON'))
{
$phpbb_root_path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
chdir($phpbb_root_path);
if (@function_exists('getcwd'))
{
$phpbb_root_path = getcwd() . '/';
}
else
{
// This is a best guess
$phpbb_root_path = pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_DIRNAME) . '/';
}
}
if (!file_exists($phpbb_root_path . 'config.' . $phpEx))
@@ -135,7 +122,7 @@ if (!defined('PHPBB_INSTALLED'))
// Redirect the user to the installer
// We have to generate a full HTTP/1.1 header here since we can't guarantee to have any of the information
// available as used by the redirect function
$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));
$server_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME');
$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
$secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 1 : 0;
@@ -154,11 +141,7 @@ if (!defined('PHPBB_INSTALLED'))
if ($server_port && (($secure && $server_port <> 443) || (!$secure && $server_port <> 80)))
{
// HTTP HOST can carry a port number...
if (strpos($server_name, ':') === false)
{
$url .= ':' . $server_port;
}
$url .= ':' . $server_port;
}
$url .= $script_path;
@@ -176,8 +159,7 @@ if (defined('DEBUG_EXTRA'))
}
// Load Extensions
// dl() is deprecated and disabled by default as of PHP 5.3.
if (!empty($load_extensions) && function_exists('dl'))
if (!empty($load_extensions))
{
$load_extensions = explode(',', $load_extensions);
@@ -193,16 +175,13 @@ require($phpbb_root_path . 'includes/cache.' . $phpEx);
require($phpbb_root_path . 'includes/template.' . $phpEx);
require($phpbb_root_path . 'includes/session.' . $phpEx);
require($phpbb_root_path . 'includes/auth.' . $phpEx);
require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
set_error_handler('msg_handler');
// Instantiate some basic classes
$user = new user();
@@ -212,7 +191,7 @@ $cache = new cache();
$db = new $sql_db();
// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false);
// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
@@ -220,13 +199,4 @@ unset($dbpasswd);
// Grab global variables, re-cache if necessary
$config = $cache->obtain_config();
// Add own hook handler
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
foreach ($cache->obtain_hooks() as $hook)
{
@include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
}
?>

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -12,7 +12,7 @@
*/
define('IN_PHPBB', true);
define('IN_CRON', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
@@ -30,41 +30,7 @@ header('Content-length: 43');
echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
// test without flush ;)
// flush();
//
if (!isset($config['cron_lock']))
{
set_config('cron_lock', '0', true);
}
// make sure cron doesn't run multiple times in parallel
if ($config['cron_lock'])
{
// if the other process is running more than an hour already we have to assume it
// aborted without cleaning the lock
$time = explode(' ', $config['cron_lock']);
$time = $time[0];
if ($time + 3600 >= time())
{
exit;
}
}
define('CRON_ID', time() . ' ' . unique_id());
$sql = 'UPDATE ' . CONFIG_TABLE . "
SET config_value = '" . $db->sql_escape(CRON_ID) . "'
WHERE config_name = 'cron_lock' AND config_value = '" . $db->sql_escape($config['cron_lock']) . "'";
$db->sql_query($sql);
// another cron process altered the table between script start and UPDATE query so exit
if ($db->sql_affectedrows() != 1)
{
exit;
}
flush();
/**
* Run cron-like action
@@ -79,12 +45,6 @@ switch ($cron_type)
break;
}
// A user reported using the mail() function while using shutdown does not work. We do not want to risk that.
if ($use_shutdown_function && !$config['smtp_delivery'])
{
$use_shutdown_function = false;
}
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
$queue = new queue();
@@ -259,29 +219,13 @@ switch ($cron_type)
// Unloading cache and closing db after having done the dirty work.
if ($use_shutdown_function)
{
register_shutdown_function('unlock_cron');
register_shutdown_function('garbage_collection');
}
else
{
unlock_cron();
garbage_collection();
}
exit;
/**
* Unlock cron script
*/
function unlock_cron()
{
global $db;
$sql = 'UPDATE ' . CONFIG_TABLE . "
SET config_value = '0'
WHERE config_name = 'cron_lock' AND config_value = '" . $db->sql_escape(CRON_ID) . "'";
$db->sql_query($sql);
}
?>

0
phpBB/develop/adjust_avatars.php Normal file → Executable file
View File

View File

@@ -1,129 +0,0 @@
<?php
/**
* Repair bbcodes converted with RC6
*
* You should make a backup from your users, posts and privmsgs table in case something goes wrong
* Forum descriptions and rules need to be re-submitted manually
*
*/
die("Please read the first lines of this script for instructions on how to enable it");
set_time_limit(0);
@ini_set('memory_limit', '512M');
define('IN_PHPBB', true);
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$echos = 0;
// Adjust user signatures
$sql = 'SELECT user_id, user_sig, user_sig_bbcode_uid
FROM ' . USERS_TABLE . '
ORDER BY user_id ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$bbcode_uid = $row['user_sig_bbcode_uid'];
// Only if a bbcode uid is present, the signature present and a size tag used...
if (!empty($bbcode_uid) && strpos($row['user_sig'], $bbcode_uid) === false)
{
$row['user_sig'] = preg_replace('/\:[0-9a-z]{8}\]/', ":$bbcode_uid]", $row['user_sig']);
$sql = 'UPDATE ' . USERS_TABLE . " SET user_sig = '" . $db->sql_escape($row['user_sig']) . "'
WHERE user_id = " . $row['user_id'];
$db->sql_query($sql);
if ($echos > 200)
{
echo '<br />User: ' . "{$row['user_id']}\n";
$echos = 0;
}
echo '.';
$echos++;
flush();
}
}
$db->sql_freeresult($result);
// Now adjust posts
$sql = 'SELECT post_id, post_text, bbcode_uid, enable_bbcode
FROM ' . POSTS_TABLE . '
ORDER BY post_id ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$bbcode_uid = $row['bbcode_uid'];
// Only if a bbcode uid is present, bbcode enabled and a size tag used...
if ($row['enable_bbcode'] && !empty($bbcode_uid) && strpos($row['post_text'], $bbcode_uid) === false)
{
$row['post_text'] = preg_replace('/\:[0-9a-z]{8}\]/', ":$bbcode_uid]", $row['post_text']);
$sql = 'UPDATE ' . POSTS_TABLE . " SET post_text = '" . $db->sql_escape($row['post_text']) . "'
WHERE post_id = " . $row['post_id'];
$db->sql_query($sql);
if ($echos > 200)
{
echo '<br />Post: ' . "{$row['post_id']} \n";
$echos = 0;
}
echo '.';
$echos++;
flush();
}
}
$db->sql_freeresult($result);
// Now to the private messages
$sql = 'SELECT msg_id, message_text, bbcode_uid, enable_bbcode
FROM ' . PRIVMSGS_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$bbcode_uid = $row['bbcode_uid'];
// Only if a bbcode uid is present, bbcode enabled and a size tag used...
if ($row['enable_bbcode'] && !empty($bbcode_uid) && strpos($row['message_text'], $bbcode_uid) === false)
{
$row['message_text'] = preg_replace('/\:[0-9a-z]{8}\]/', ":$bbcode_uid]", $row['message_text']);
$sql = 'UPDATE ' . PRIVMSGS_TABLE . " SET message_text = '" . $db->sql_escape($row['message_text']) . "'
WHERE msg_id = " . $row['msg_id'];
$db->sql_query($sql);
if ($echos > 200)
{
echo '<br />' . "\n";
$echos = 0;
}
echo '.';
$echos++;
flush();
}
}
$db->sql_freeresult($result);
// Done
$db->sql_close();
echo 'done';
?>

View File

@@ -1,3 +0,0 @@
#!/bin/sh
DIR=$(dirname "$0")/../cache;
cat "$DIR/sql_*.php" | grep '/* SELECT' | sed 's,/\* ,,;s, \*/,,' | sort

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2006 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2006 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
* This file creates new schema files for every database.
* The filenames will be prefixed with an underscore to not overwrite the current schema files.
@@ -14,7 +14,7 @@
die("Please read the first lines of this script for instructions on how to enable it");
@set_time_limit(0);
set_time_limit(0);
$schema_path = './../install/schemas/';
@@ -46,9 +46,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'mediumtext',
'TIMESTAMP' => 'int(11) UNSIGNED',
'DECIMAL' => 'decimal(5,2)',
'DECIMAL:' => 'decimal(%d,2)',
'PDECIMAL' => 'decimal(6,3)',
'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar(255)',
@@ -76,9 +73,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'mediumblob',
'TIMESTAMP' => 'int(11) UNSIGNED',
'DECIMAL' => 'decimal(5,2)',
'DECIMAL:' => 'decimal(%d,2)',
'PDECIMAL' => 'decimal(6,3)',
'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'blob',
'VCHAR_UNI:'=> array('varbinary(%d)', 'limit' => array('mult', 3, 255, 'blob')),
'VCHAR_CI' => 'blob',
@@ -106,9 +100,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'BLOB SUB_TYPE TEXT CHARACTER SET UTF8',
'TIMESTAMP' => 'INTEGER',
'DECIMAL' => 'DOUBLE PRECISION',
'DECIMAL:' => 'DOUBLE PRECISION',
'PDECIMAL' => 'DOUBLE PRECISION',
'PDECIMAL:' => 'DOUBLE PRECISION',
'VCHAR_UNI' => 'VARCHAR(255) CHARACTER SET UTF8',
'VCHAR_UNI:'=> 'VARCHAR(%d) CHARACTER SET UTF8',
'VCHAR_CI' => 'VARCHAR(255) CHARACTER SET UTF8',
@@ -136,9 +127,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => '[text]',
'TIMESTAMP' => '[int]',
'DECIMAL' => '[float]',
'DECIMAL:' => '[float]',
'PDECIMAL' => '[float]',
'PDECIMAL:' => '[float]',
'VCHAR_UNI' => '[varchar] (255)',
'VCHAR_UNI:'=> '[varchar] (%d)',
'VCHAR_CI' => '[varchar] (255)',
@@ -166,9 +154,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'clob',
'TIMESTAMP' => 'number(11)',
'DECIMAL' => 'number(5, 2)',
'DECIMAL:' => 'number(%d, 2)',
'PDECIMAL' => 'number(6, 3)',
'PDECIMAL:' => 'number(%d, 3)',
'VCHAR_UNI' => 'varchar2(765)',
'VCHAR_UNI:'=> array('varchar2(%d)', 'limit' => array('mult', 3, 765, 'clob')),
'VCHAR_CI' => 'varchar2(255)',
@@ -196,9 +181,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'mediumtext(16777215)',
'TIMESTAMP' => 'INTEGER UNSIGNED', //'int(11) UNSIGNED',
'DECIMAL' => 'decimal(5,2)',
'DECIMAL:' => 'decimal(%d,2)',
'PDECIMAL' => 'decimal(6,3)',
'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar(255)',
@@ -226,9 +208,6 @@ $dbms_type_map = array(
'MTEXT_UNI' => 'TEXT',
'TIMESTAMP' => 'INT4', // unsigned
'DECIMAL' => 'decimal(5,2)',
'DECIMAL:' => 'decimal(%d,2)',
'PDECIMAL' => 'decimal(6,3)',
'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar_ci',
@@ -323,7 +302,7 @@ foreach ($supported_dbms as $dbms)
}
// Table specific so we don't get overlap
$modded_array = array();
$modded_array = array();
// Write columns one by one...
foreach ($table_data['COLUMNS'] as $column_name => $column_data)
@@ -674,7 +653,7 @@ foreach ($supported_dbms as $dbms)
}
$line .= ($key_data[0] == 'INDEX') ? 'CREATE INDEX' : '';
$line .= " {$table_name}_{$key_name} ON {$table_name} (" . implode(', ', $key_data[1]) . ")\n";
$line .= "/\n";
break;
@@ -785,16 +764,13 @@ foreach ($supported_dbms as $dbms)
* BOOL => tinyint(1) UNSIGNED
* VCHAR => varchar(255)
* CHAR:x => char(x)
* XSTEXT_UNI => text for storing 100 characters (topic_title for example)
* STEXT_UNI => text for storing 255 characters (normal input field with a max of 255 single-byte chars) - same as VCHAR_UNI
* TEXT_UNI => text for storing 3000 characters (short text, descriptions, comments, etc.)
* MTEXT_UNI => mediumtext (post text, large text)
* XSTEXT => text for storing 1000 characters (topic_title for example)
* STEXT => text for storing 3000 characters (normal input field with a max of 255 single-byte chars)
* TEXT => text for storing 8000 characters (short text, descriptions, comments, etc.)
* MTEXT => mediumtext (post text, large text)
* VCHAR:x => varchar(x)
* TIMESTAMP => int(11) UNSIGNED
* DECIMAL => decimal number (5,2)
* DECIMAL: => decimal number (x,2)
* PDECIMAL => precision decimal number (6,3)
* PDECIMAL: => precision decimal number (x,3)
* VCHAR_UNI => varchar(255) BINARY
* VCHAR_CI => varchar_ci for postgresql, others VCHAR
*/
@@ -855,7 +831,7 @@ function get_schema_struct()
),
'PRIMARY_KEY' => 'auth_option_id',
'KEYS' => array(
'auth_option' => array('UNIQUE', 'auth_option'),
'auth_option' => array('INDEX', 'auth_option'),
),
);
@@ -882,7 +858,7 @@ function get_schema_struct()
),
'PRIMARY_KEY' => array('role_id', 'auth_option_id'),
'KEYS' => array(
'ath_op_id' => array('INDEX', 'auth_option_id'),
'ath_opt_id' => array('INDEX', 'auth_option_id'),
),
);
@@ -910,8 +886,8 @@ function get_schema_struct()
'ban_start' => array('TIMESTAMP', 0),
'ban_end' => array('TIMESTAMP', 0),
'ban_exclude' => array('BOOL', 0),
'ban_reason' => array('VCHAR_UNI', ''),
'ban_give_reason' => array('VCHAR_UNI', ''),
'ban_reason' => array('STEXT', ''),
'ban_give_reason' => array('STEXT', ''),
),
'PRIMARY_KEY' => 'ban_id',
'KEYS' => array(
@@ -983,7 +959,6 @@ function get_schema_struct()
'confirm_type' => array('TINT:3', 0),
'code' => array('VCHAR:8', ''),
'seed' => array('UINT:10', 0),
'attempts' => array('UINT', 0),
),
'PRIMARY_KEY' => array('session_id', 'confirm_id'),
'KEYS' => array(
@@ -1006,7 +981,7 @@ function get_schema_struct()
'topic_id' => array('UINT', 0),
'forum_id' => array('UINT', 0),
'save_time' => array('TIMESTAMP', 0),
'draft_subject' => array('STEXT_UNI', ''),
'draft_subject' => array('XSTEXT_UNI', ''),
'draft_message' => array('MTEXT_UNI', ''),
),
'PRIMARY_KEY' => 'draft_id',
@@ -1050,16 +1025,16 @@ function get_schema_struct()
'forum_desc' => array('TEXT_UNI', ''),
'forum_desc_bitfield' => array('VCHAR:255', ''),
'forum_desc_options' => array('UINT:11', 7),
'forum_desc_uid' => array('VCHAR:8', ''),
'forum_desc_uid' => array('VCHAR:5', ''),
'forum_link' => array('VCHAR_UNI', ''),
'forum_password' => array('VCHAR_UNI:40', ''),
'forum_style' => array('UINT', 0),
'forum_style' => array('TINT:4', 0),
'forum_image' => array('VCHAR', ''),
'forum_rules' => array('TEXT_UNI', ''),
'forum_rules_link' => array('VCHAR_UNI', ''),
'forum_rules_bitfield' => array('VCHAR:255', ''),
'forum_rules_options' => array('UINT:11', 7),
'forum_rules_uid' => array('VCHAR:8', ''),
'forum_rules_uid' => array('VCHAR:5', ''),
'forum_topics_per_page' => array('TINT:4', 0),
'forum_type' => array('TINT:4', 0),
'forum_status' => array('TINT:4', 0),
@@ -1068,13 +1043,11 @@ function get_schema_struct()
'forum_topics_real' => array('UINT', 0),
'forum_last_post_id' => array('UINT', 0),
'forum_last_poster_id' => array('UINT', 0),
'forum_last_post_subject' => array('STEXT_UNI', ''),
'forum_last_post_subject' => array('XSTEXT_UNI', ''),
'forum_last_post_time' => array('TIMESTAMP', 0),
'forum_last_poster_name'=> array('VCHAR_UNI', ''),
'forum_last_poster_colour'=> array('VCHAR:6', ''),
'forum_flags' => array('TINT:4', 32),
'forum_options' => array('UINT:20', 0),
'display_subforum_list' => array('BOOL', 1),
'display_on_index' => array('BOOL', 1),
'enable_indexing' => array('BOOL', 1),
'enable_icons' => array('BOOL', 1),
@@ -1127,28 +1100,26 @@ function get_schema_struct()
'group_id' => array('UINT', NULL, 'auto_increment'),
'group_type' => array('TINT:4', 1),
'group_founder_manage' => array('BOOL', 0),
'group_skip_auth' => array('BOOL', 0),
'group_name' => array('VCHAR_CI', ''),
'group_desc' => array('TEXT_UNI', ''),
'group_desc_bitfield' => array('VCHAR:255', ''),
'group_desc_options' => array('UINT:11', 7),
'group_desc_uid' => array('VCHAR:8', ''),
'group_desc_uid' => array('VCHAR:5', ''),
'group_display' => array('BOOL', 0),
'group_avatar' => array('VCHAR', ''),
'group_avatar_type' => array('TINT:2', 0),
'group_avatar_width' => array('USINT', 0),
'group_avatar_height' => array('USINT', 0),
'group_avatar_type' => array('TINT:4', 0),
'group_avatar_width' => array('TINT:4', 0),
'group_avatar_height' => array('TINT:4', 0),
'group_rank' => array('UINT', 0),
'group_colour' => array('VCHAR:6', ''),
'group_sig_chars' => array('UINT', 0),
'group_receive_pm' => array('BOOL', 0),
'group_message_limit' => array('UINT', 0),
'group_max_recipients' => array('UINT', 0),
'group_legend' => array('BOOL', 1),
),
'PRIMARY_KEY' => 'group_id',
'KEYS' => array(
'group_legend_name' => array('INDEX', array('group_legend', 'group_name')),
'group_legend' => array('INDEX', 'group_legend'),
),
);
@@ -1285,12 +1256,12 @@ function get_schema_struct()
'enable_magic_url' => array('BOOL', 1),
'enable_sig' => array('BOOL', 1),
'post_username' => array('VCHAR_UNI:255', ''),
'post_subject' => array('STEXT_UNI', '', 'true_sort'),
'post_subject' => array('XSTEXT_UNI', ''),
'post_text' => array('MTEXT_UNI', ''),
'post_checksum' => array('VCHAR:32', ''),
'post_attachment' => array('BOOL', 0),
'bbcode_bitfield' => array('VCHAR:255', ''),
'bbcode_uid' => array('VCHAR:8', ''),
'bbcode_uid' => array('VCHAR:5', ''),
'post_postcount' => array('BOOL', 1),
'post_edit_time' => array('TIMESTAMP', 0),
'post_edit_reason' => array('STEXT_UNI', ''),
@@ -1305,7 +1276,6 @@ function get_schema_struct()
'poster_ip' => array('INDEX', 'poster_ip'),
'poster_id' => array('INDEX', 'poster_id'),
'post_approved' => array('INDEX', 'post_approved'),
'post_username' => array('INDEX', 'post_username'),
'tid_post_time' => array('INDEX', array('topic_id', 'post_time')),
),
);
@@ -1322,18 +1292,17 @@ function get_schema_struct()
'enable_smilies' => array('BOOL', 1),
'enable_magic_url' => array('BOOL', 1),
'enable_sig' => array('BOOL', 1),
'message_subject' => array('STEXT_UNI', ''),
'message_subject' => array('XSTEXT_UNI', ''),
'message_text' => array('MTEXT_UNI', ''),
'message_edit_reason' => array('STEXT_UNI', ''),
'message_edit_user' => array('UINT', 0),
'message_attachment' => array('BOOL', 0),
'bbcode_bitfield' => array('VCHAR:255', ''),
'bbcode_uid' => array('VCHAR:8', ''),
'bbcode_uid' => array('VCHAR:5', ''),
'message_edit_time' => array('TIMESTAMP', 0),
'message_edit_count' => array('USINT', 0),
'to_address' => array('TEXT_UNI', ''),
'bcc_address' => array('TEXT_UNI', ''),
'message_reported' => array('BOOL', 0),
),
'PRIMARY_KEY' => 'msg_id',
'KEYS' => array(
@@ -1409,8 +1378,6 @@ function get_schema_struct()
'field_validation' => array('VCHAR_UNI:20', ''),
'field_required' => array('BOOL', 0),
'field_show_on_reg' => array('BOOL', 0),
'field_show_on_vt' => array('BOOL', 0),
'field_show_profile' => array('BOOL', 0),
'field_hide' => array('BOOL', 0),
'field_no_view' => array('BOOL', 0),
'field_active' => array('BOOL', 0),
@@ -1468,7 +1435,6 @@ function get_schema_struct()
'report_id' => array('UINT', NULL, 'auto_increment'),
'reason_id' => array('USINT', 0),
'post_id' => array('UINT', 0),
'pm_id' => array('UINT', 0),
'user_id' => array('UINT', 0),
'user_notify' => array('BOOL', 0),
'report_closed' => array('BOOL', 0),
@@ -1476,10 +1442,6 @@ function get_schema_struct()
'report_text' => array('MTEXT_UNI', ''),
),
'PRIMARY_KEY' => 'report_id',
'KEYS' => array(
'post_id' => array('INDEX', 'post_id'),
'pm_id' => array('INDEX', 'pm_id'),
),
);
$schema_data['phpbb_reports_reasons'] = array(
@@ -1533,7 +1495,6 @@ function get_schema_struct()
'COLUMNS' => array(
'session_id' => array('CHAR:32', ''),
'session_user_id' => array('UINT', 0),
'session_forum_id' => array('UINT', 0),
'session_last_visit' => array('TIMESTAMP', 0),
'session_start' => array('TIMESTAMP', 0),
'session_time' => array('TIMESTAMP', 0),
@@ -1549,7 +1510,6 @@ function get_schema_struct()
'KEYS' => array(
'session_time' => array('INDEX', 'session_time'),
'session_user_id' => array('INDEX', 'session_user_id'),
'session_fid' => array('INDEX', 'session_forum_id'),
),
);
@@ -1596,13 +1556,13 @@ function get_schema_struct()
$schema_data['phpbb_styles'] = array(
'COLUMNS' => array(
'style_id' => array('UINT', NULL, 'auto_increment'),
'style_id' => array('TINT:4', NULL, 'auto_increment'),
'style_name' => array('VCHAR_UNI:255', ''),
'style_copyright' => array('VCHAR_UNI', ''),
'style_active' => array('BOOL', 1),
'template_id' => array('UINT', 0),
'theme_id' => array('UINT', 0),
'imageset_id' => array('UINT', 0),
'template_id' => array('TINT:4', 0),
'theme_id' => array('TINT:4', 0),
'imageset_id' => array('TINT:4', 0),
),
'PRIMARY_KEY' => 'style_id',
'KEYS' => array(
@@ -1615,14 +1575,12 @@ function get_schema_struct()
$schema_data['phpbb_styles_template'] = array(
'COLUMNS' => array(
'template_id' => array('UINT', NULL, 'auto_increment'),
'template_id' => array('TINT:4', NULL, 'auto_increment'),
'template_name' => array('VCHAR_UNI:255', ''),
'template_copyright' => array('VCHAR_UNI', ''),
'template_path' => array('VCHAR:100', ''),
'bbcode_bitfield' => array('VCHAR:255', 'kNg='),
'template_storedb' => array('BOOL', 0),
'template_inherits_id' => array('UINT:4', 0),
'template_inherit_path' => array('VCHAR', ''),
),
'PRIMARY_KEY' => 'template_id',
'KEYS' => array(
@@ -1632,7 +1590,7 @@ function get_schema_struct()
$schema_data['phpbb_styles_template_data'] = array(
'COLUMNS' => array(
'template_id' => array('UINT', 0),
'template_id' => array('TINT:4', NULL, 'auto_increment'),
'template_filename' => array('VCHAR:100', ''),
'template_included' => array('TEXT', ''),
'template_mtime' => array('TIMESTAMP', 0),
@@ -1646,7 +1604,7 @@ function get_schema_struct()
$schema_data['phpbb_styles_theme'] = array(
'COLUMNS' => array(
'theme_id' => array('UINT', NULL, 'auto_increment'),
'theme_id' => array('TINT:4', NULL, 'auto_increment'),
'theme_name' => array('VCHAR_UNI:255', ''),
'theme_copyright' => array('VCHAR_UNI', ''),
'theme_path' => array('VCHAR:100', ''),
@@ -1662,7 +1620,7 @@ function get_schema_struct()
$schema_data['phpbb_styles_imageset'] = array(
'COLUMNS' => array(
'imageset_id' => array('UINT', NULL, 'auto_increment'),
'imageset_id' => array('TINT:4', NULL, 'auto_increment'),
'imageset_name' => array('VCHAR_UNI:255', ''),
'imageset_copyright' => array('VCHAR_UNI', ''),
'imageset_path' => array('VCHAR:100', ''),
@@ -1675,17 +1633,17 @@ function get_schema_struct()
$schema_data['phpbb_styles_imageset_data'] = array(
'COLUMNS' => array(
'image_id' => array('UINT', NULL, 'auto_increment'),
'image_id' => array('USINT', NULL, 'auto_increment'),
'image_name' => array('VCHAR:200', ''),
'image_filename' => array('VCHAR:200', ''),
'image_lang' => array('VCHAR:30', ''),
'image_height' => array('USINT', 0),
'image_width' => array('USINT', 0),
'imageset_id' => array('UINT', 0),
'imageset_id' => array('TINT:4', 0),
),
'PRIMARY_KEY' => 'image_id',
'KEYS' => array(
'i_d' => array('INDEX', 'imageset_id'),
'i_id' => array('INDEX', 'imageset_id'),
),
);
@@ -1697,7 +1655,7 @@ function get_schema_struct()
'topic_attachment' => array('BOOL', 0),
'topic_approved' => array('BOOL', 1),
'topic_reported' => array('BOOL', 0),
'topic_title' => array('STEXT_UNI', '', 'true_sort'),
'topic_title' => array('XSTEXT_UNI', '', 'true_sort'),
'topic_poster' => array('UINT', 0),
'topic_time' => array('TIMESTAMP', 0),
'topic_time_limit' => array('TIMESTAMP', 0),
@@ -1713,7 +1671,7 @@ function get_schema_struct()
'topic_last_poster_id' => array('UINT', 0),
'topic_last_poster_name' => array('VCHAR_UNI', ''),
'topic_last_poster_colour' => array('VCHAR:6', ''),
'topic_last_post_subject' => array('STEXT_UNI', ''),
'topic_last_post_subject' => array('XSTEXT_UNI', ''),
'topic_last_post_time' => array('TIMESTAMP', 0),
'topic_last_view_time' => array('TIMESTAMP', 0),
'topic_moved_id' => array('UINT', 0),
@@ -1746,7 +1704,6 @@ function get_schema_struct()
),
'PRIMARY_KEY' => array('user_id', 'topic_id'),
'KEYS' => array(
'topic_id' => array('INDEX', 'topic_id'),
'forum_id' => array('INDEX', 'forum_id'),
),
);
@@ -1820,11 +1777,11 @@ function get_schema_struct()
'user_timezone' => array('DECIMAL', 0),
'user_dst' => array('BOOL', 0),
'user_dateformat' => array('VCHAR_UNI:30', 'd M Y H:i'),
'user_style' => array('UINT', 0),
'user_style' => array('TINT:4', 0),
'user_rank' => array('UINT', 0),
'user_colour' => array('VCHAR:6', ''),
'user_new_privmsg' => array('INT:4', 0),
'user_unread_privmsg' => array('INT:4', 0),
'user_new_privmsg' => array('TINT:4', 0),
'user_unread_privmsg' => array('TINT:4', 0),
'user_last_privmsg' => array('TIMESTAMP', 0),
'user_message_rules' => array('BOOL', 0),
'user_full_folder' => array('INT:11', -3),
@@ -1842,13 +1799,13 @@ function get_schema_struct()
'user_allow_viewonline' => array('BOOL', 1),
'user_allow_viewemail' => array('BOOL', 1),
'user_allow_massemail' => array('BOOL', 1),
'user_options' => array('UINT:11', 230271),
'user_options' => array('UINT:11', 895),
'user_avatar' => array('VCHAR', ''),
'user_avatar_type' => array('TINT:2', 0),
'user_avatar_width' => array('USINT', 0),
'user_avatar_height' => array('USINT', 0),
'user_sig' => array('MTEXT_UNI', ''),
'user_sig_bbcode_uid' => array('VCHAR:8', ''),
'user_sig_bbcode_uid' => array('VCHAR:5', ''),
'user_sig_bbcode_bitfield' => array('VCHAR:255', ''),
'user_from' => array('VCHAR_UNI:100', ''),
'user_icq' => array('VCHAR:15', ''),
@@ -1860,11 +1817,7 @@ function get_schema_struct()
'user_occ' => array('TEXT_UNI', ''),
'user_interests' => array('TEXT_UNI', ''),
'user_actkey' => array('VCHAR:32', ''),
'user_newpasswd' => array('VCHAR_UNI:40', ''),
'user_form_salt' => array('VCHAR_UNI:32', ''),
'user_new' => array('BOOL', 1),
'user_reminded' => array('TINT:4', 0),
'user_reminded_time' => array('TIMESTAMP', 0),
'user_newpasswd' => array('VCHAR_UNI:32', ''),
),
'PRIMARY_KEY' => 'user_id',
'KEYS' => array(
@@ -1929,17 +1882,17 @@ function custom_data($dbms)
/*
CREATE TABLESPACE "PHPBB"
LOGGING
DATAFILE 'E:\ORACLE\ORADATA\LOCAL\PHPBB.ora'
LOGGING
DATAFILE 'E:\ORACLE\ORADATA\LOCAL\PHPBB.ora'
SIZE 10M
AUTOEXTEND ON NEXT 10M
MAXSIZE 100M;
CREATE USER "PHPBB"
PROFILE "DEFAULT"
IDENTIFIED BY "phpbb_password"
DEFAULT TABLESPACE "PHPBB"
QUOTA UNLIMITED ON "PHPBB"
CREATE USER "PHPBB"
PROFILE "DEFAULT"
IDENTIFIED BY "phpbb_password"
DEFAULT TABLESPACE "PHPBB"
QUOTA UNLIMITED ON "PHPBB"
ACCOUNT UNLOCK;
GRANT ANALYZE ANY TO "PHPBB";
@@ -2043,6 +1996,4 @@ EOF;
return '';
}
echo 'done';
?>

View File

@@ -21,9 +21,9 @@ rm FILELIST.$$
for i in $(cat FILELIST); do
if [ -f $i ]; then
cat $i | tr -d '\r' > $i.tmp
mv $i.tmp $i
sed -e s/
//g $i > $i.tmp
mv $i.tmp $i
fi
done
rm FILELIST

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

View File

@@ -1,244 +0,0 @@
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
if (php_sapi_name() != 'cli')
{
die("This program must be run from the command line.\n");
}
//
// Security message:
//
// This script is potentially dangerous.
// Remove or comment the next line (die(".... ) to enable this script.
// Do NOT FORGET to either remove this script or disable it after you have used it.
//
die("Please read the first lines of this script for instructions on how to enable it");
set_time_limit(0);
define('IN_PHPBB', true);
$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
echo "Checking for required files\n";
download('http://unicode.org/reports/tr39/data/confusables.txt');
download('http://unicode.org/Public/UNIDATA/CaseFolding.txt');
echo "\n";
/**
* Load the confusables table
*/
echo "Loading confusables\n";
$unidata = file_get_contents('confusables.txt');
/**
* Load the CaseFolding table
*/
echo "Loading CaseFolding\n";
$casefolds = file_get_contents('CaseFolding.txt');
function utf8_chr($cp)
{
if ($cp > 0xFFFF)
{
return chr(0xF0 | ($cp >> 18)) . chr(0x80 | (($cp >> 12) & 0x3F)) . chr(0x80 | (($cp >> 6) & 0x3F)) . chr(0x80 | ($cp & 0x3F));
}
else if ($cp > 0x7FF)
{
return chr(0xE0 | ($cp >> 12)) . chr(0x80 | (($cp >> 6) & 0x3F)) . chr(0x80 | ($cp & 0x3F));
}
else if ($cp > 0x7F)
{
return chr(0xC0 | ($cp >> 6)) . chr(0x80 | ($cp & 0x3F));
}
else
{
return chr($cp);
}
}
preg_match_all('/^([0-9A-F]+) ;\s((?:[0-9A-F]+ )*);.*?$/im', $unidata, $array, PREG_SET_ORDER);
preg_match_all('/^([0-9A-F]+); ([CFS]); ([0-9A-F]+(?: [0-9A-F]+)*);/im', $casefolds, $casefold_array);
// some that we defined ourselves
$uniarray = array(
"\xC2\xA1" => "\x69", // EXCLAMATION MARK, INVERTED => LATIN SMALL LETTER I
"\xC7\x83" => "\x21", // LATIN LETTER RETROFLEX CLICK => EXCLAMATION MARK
"\xCE\xB1" => "\x61", // GREEK SMALL LETTER ALPHA => LATIN SMALL LETTER A
"\xE1\x9A\x80" => "\x20", // OGHAM SPACE MARK
"\xC2\xAD" => '', // HYPHEN, SOFT => empty string
"\xDB\x9D" => '', // ARABIC END OF AYAH
"\xDC\x8F" => '', // SYRIAC ABBREVIATION MARK
"\xE1\xA0\x86" => '', // MONGOLIAN TODO SOFT HYPHEN
"\xE1\xA0\x8E" => '', // MONGOLIAN VOWEL SEPARATOR
"\xE2\x80\x8B" => '', // ZERO WIDTH SPACE
"\xE2\x80\x8C" => '', // ZERO WIDTH NON-JOINER
"\xE2\x80\x8D" => '', // ZERO WIDTH JOINER
"\xE2\x80\xA8" => '', // LINE SEPARATOR
"\xE2\x80\xA9" => '', // PARAGRAPH SEPARATOR
"\xE2\x81\xA0" => '', // WORD JOINER
"\xE2\x81\xA1" => '', // FUNCTION APPLICATION
"\xE2\x81\xA2" => '', // INVISIBLE TIMES
"\xE2\x81\xA3" => '', // INVISIBLE SEPARATOR
"\xE2\x81\xAA" => '', // [CONTROL CHARACTERS]
"\xE2\x81\xAB" => '', // [CONTROL CHARACTERS]
"\xE2\x81\xAC" => '', // [CONTROL CHARACTERS]
"\xE2\x81\xAD" => '', // [CONTROL CHARACTERS]
"\xE2\x81\xAE" => '', // [CONTROL CHARACTERS]
"\xE2\x81\xAF" => '', // [CONTROL CHARACTERS]
"\xEF\xBB\xBF" => '', // ZERO WIDTH NO-BREAK SPACE
"\xEF\xBF\xB9" => '', // [CONTROL CHARACTERS]
"\xEF\xBF\xBA" => '', // [CONTROL CHARACTERS]
"\xEF\xBF\xBB" => '', // [CONTROL CHARACTERS]
"\xEF\xBF\xBC" => '', // [CONTROL CHARACTERS]
"\xF0\x9D\x85\xB3" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB4" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB5" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB6" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB7" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB8" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xB9" => '', // [MUSICAL CONTROL CHARACTERS]
"\xF0\x9D\x85\xBA" => '', // [MUSICAL CONTROL CHARACTERS]
);
$copy = $uniarray;
/**
* @todo we need to check that the $uniarray does not reverse any of the mappings defined in the unicode definition
*/
foreach ($array as $value)
{
$temp_hold = implode(array_map('utf8_chr', array_map('hexdec', explode(' ', trim($value[2])))));
if (isset($copy[utf8_chr(hexdec((string)$value[1]))]))
{
$num = '';
$string = utf8_chr(hexdec((string)$value[1]));
for ($i = 0; $i < strlen($string); $i++)
{
$num .= '\x' . str_pad(base_convert(ord($string[$i]), 10, 16), 2, '0', STR_PAD_LEFT);
}
echo $num . "\n";
if ($uniarray[$string] != $temp_hold)
{
echo " --> $string\n";
echo " --> " . $temp_hold . "\n";
}
}
// do some tests for things that transform into something with the number one
if (strpos($temp_hold, utf8_chr(0x0031)) !== false)
{
// any kind of letter L?
if (strpos($value[0], 'LETTER L') !== false || strpos($value[0], 'IOTA') !== false || strpos($value[0], 'SMALL L ') !== false || preg_match('/SMALL LIGATURE [^L]*L /', $value[0]))
{
// replace all of the mappings that transform some sort of letter l to number one instead to some sort of letter l to latin small letter l
$temp_hold = str_replace(utf8_chr(0x0031), utf8_chr(0x006C), $temp_hold);
}
}
// uppercased chars that were folded do not exist in this universe,
// no amount of normalization could ever "trick" this into not working
if (in_array($value[1], $casefold_array[1]))
{
continue;
}
$uniarray[utf8_chr(hexdec((string)$value[1]))] = $temp_hold;
}
echo "Writing to confusables.$phpEx\n";
$fp = fopen($phpbb_root_path . 'includes/utf/data/confusables.' . $phpEx, 'wb');
fwrite($fp, '<?php return ' . my_var_export($uniarray) . ';');
fclose($fp);
/**
* Return a parsable string representation of a variable
*
* This is function is limited to array/strings/integers
*
* @param mixed $var Variable
* @return string PHP code representing the variable
*/
function my_var_export($var)
{
if (is_array($var))
{
$lines = array();
foreach ($var as $k => $v)
{
$lines[] = my_var_export($k) . '=>' . my_var_export($v);
}
return 'array(' . implode(',', $lines) . ')';
}
else if (is_string($var))
{
return "'" . str_replace(array('\\', "'"), array('\\\\', "\\'"), $var) . "'";
}
else
{
return $var;
}
}
/**
* Download a file to the develop/ dir
*
* @param string $url URL of the file to download
* @return void
*/
function download($url)
{
global $phpbb_root_path;
if (file_exists($phpbb_root_path . 'develop/' . basename($url)))
{
return;
}
echo 'Downloading from ', $url, ' ';
if (!$fpr = fopen($url, 'rb'))
{
die("Can't download from $url\nPlease download it yourself and put it in the develop/ dir, kthxbai");
}
if (!$fpw = fopen($phpbb_root_path . 'develop/' . basename($url), 'wb'))
{
die("Can't open develop/" . basename($url) . " for output... please check your permissions or something");
}
$i = 0;
$chunk = 32768;
$done = '';
while (!feof($fpr))
{
$i += fwrite($fpw, fread($fpr, $chunk));
echo str_repeat("\x08", strlen($done));
$done = ($i >> 10) . ' KiB';
echo $done;
}
fclose($fpr);
fclose($fpw);
echo "\n";
}
?>

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -378,12 +378,8 @@ fclose($fp);
*/
$cheats = array(
'00DF' => 'ss', # German sharp S
'00C5' => 'ae', # Capital A with diaeresis
'00E4' => 'ae', # Small A with diaeresis
'00D6' => 'oe', # Capital O with diaeresis
'00F6' => 'oe', # Small O with diaeresis
'00DC' => 'ue', # Capital U with diaeresis
'00FC' => 'ue', # Small U with diaeresis
);
/**

File diff suppressed because it is too large Load Diff

View File

@@ -1,151 +0,0 @@
<?php
/**
* Rebuild BOTS
*
* You should make a backup from your whole database. Things can and will go wrong.
* This will only work if no BOTs were added.
*
*/
die("Please read the first lines of this script for instructions on how to enable it");
set_time_limit(0);
define('IN_PHPBB', true);
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . '/includes/functions_user.'.$phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$bots = array(
'AdsBot [Google]' => array('AdsBot-Google', ''),
'Alexa [Bot]' => array('ia_archiver', ''),
'Alta Vista [Bot]' => array('Scooter/', ''),
'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
'Baidu [Spider]' => array('Baiduspider+(', ''),
'Exabot [Bot]' => array('Exabot/', ''),
'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
'Francis [Bot]' => array('http://www.neomo.de/', ''),
'Gigabot [Bot]' => array('Gigabot/', ''),
'Google Adsense [Bot]' => array('Mediapartners-Google', ''),
'Google Desktop' => array('Google Desktop', ''),
'Google Feedfetcher' => array('Feedfetcher-Google', ''),
'Google [Bot]' => array('Googlebot', ''),
'Heise IT-Markt [Crawler]' => array('heise-IT-Markt-Crawler', ''),
'Heritrix [Crawler]' => array('heritrix/1.', ''),
'IBM Research [Bot]' => array('ibm.com/cs/crawler', ''),
'ICCrawler - ICjobs' => array('ICCrawler - ICjobs', ''),
'ichiro [Crawler]' => array('ichiro/2', ''),
'Majestic-12 [Bot]' => array('MJ12bot/', ''),
'Metager [Bot]' => array('MetagerBot/', ''),
'MSN NewsBlogs' => array('msnbot-NewsBlogs/', ''),
'MSN [Bot]' => array('msnbot/', ''),
'MSNbot Media' => array('msnbot-media/', ''),
'NG-Search [Bot]' => array('NG-Search/', ''),
'Nutch [Bot]' => array('http://lucene.apache.org/nutch/', ''),
'Nutch/CVS [Bot]' => array('NutchCVS/', ''),
'OmniExplorer [Bot]' => array('OmniExplorer_Bot/', ''),
'Online link [Validator]' => array('online link validator', ''),
'psbot [Picsearch]' => array('psbot/0', ''),
'Seekport [Bot]' => array('Seekbot/', ''),
'Sensis [Crawler]' => array('Sensis Web Crawler', ''),
'SEO Crawler' => array('SEO search Crawler/', ''),
'Seoma [Crawler]' => array('Seoma [SEO Crawler]', ''),
'SEOSearch [Crawler]' => array('SEOsearch/', ''),
'Snappy [Bot]' => array('Snappy/1.1 ( http://www.urltrends.com/ )', ''),
'Steeler [Crawler]' => array('http://www.tkl.iis.u-tokyo.ac.jp/~crawler/', ''),
'Synoo [Bot]' => array('SynooBot/', ''),
'Telekom [Bot]' => array('crawleradmin.t-info@telekom.de', ''),
'TurnitinBot [Bot]' => array('TurnitinBot/', ''),
'Voyager [Bot]' => array('voyager/1.0', ''),
'W3 [Sitesearch]' => array('W3 SiteSearch Crawler', ''),
'W3C [Linkcheck]' => array('W3C-checklink/', ''),
'W3C [Validator]' => array('W3C_*Validator', ''),
'WiseNut [Bot]' => array('http://www.WISEnutbot.com', ''),
'YaCy [Bot]' => array('yacybot', ''),
'Yahoo MMCrawler [Bot]' => array('Yahoo-MMCrawler/', ''),
'Yahoo Slurp [Bot]' => array('Yahoo! DE Slurp', ''),
'Yahoo [Bot]' => array('Yahoo! Slurp', ''),
'YahooSeeker [Bot]' => array('YahooSeeker/', ''),
);
$bot_ids = array();
user_get_id_name($bot_ids, array_keys($bots), USER_IGNORE);
foreach($bot_ids as $bot)
{
user_delete('remove', $bot);
}
// Done
add_bots($bots);
echo 'done';
/**
* Add the search bots into the database
* This code should be used in execute_last if the source database did not have bots
* If you are converting bots this function should not be called
* @todo We might want to look at sharing the bot list between the install code and this code for consistency
*/
function add_bots($bots)
{
global $db, $config;
$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'";
$result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id', false, $result);
$db->sql_freeresult($result);
$db->sql_query('TRUNCATE TABLE ' . BOTS_TABLE);
if (!$group_id)
{
add_default_groups();
$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'";
$result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id', false, $result);
$db->sql_freeresult($result);
}
foreach ($bots as $bot_name => $bot_ary)
{
$user_row = array(
'user_type' => USER_IGNORE,
'group_id' => $group_id,
'username' => $bot_name,
'user_regdate' => time(),
'user_password' => '',
'user_colour' => '9E8DA7',
'user_email' => '',
'user_lang' => $config['default_lang'],
'user_style' => 1,
'user_timezone' => 0,
'user_allow_massemail' => 0,
);
$user_id = user_add($user_row);
if ($user_id)
{
$sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'bot_active' => 1,
'bot_name' => $bot_name,
'user_id' => $user_id,
'bot_agent' => $bot_ary[0],
'bot_ip' => $bot_ary[1])
);
$db->sql_query($sql);
}
}
}
?>

View File

@@ -1,4 +1,4 @@
<?php
<?php
//
// Security message:
@@ -54,9 +54,9 @@ print "<html>\n<body>\n";
//
// Fetch a batch of posts_text entries
//
$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id
$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id
FROM ". POSTS_TABLE;
if ( !($result = $db->sql_query($sql)) )
if ( !($result = $db->sql_query($sql)) )
{
$error = $db->sql_error();
die("Couldn't get maximum post ID :: " . $sql . " :: " . $error['message']);
@@ -77,10 +77,10 @@ for(;$postcounter <= $max_post_id; $postcounter += $batchsize)
$batchend = $postcounter + $batchsize;
$batchcount++;
$sql = "SELECT *
FROM " . POSTS_TABLE . "
WHERE post_id
BETWEEN $batchstart
$sql = "SELECT *
FROM " . POSTS_TABLE . "
WHERE post_id
BETWEEN $batchstart
AND $batchend";
if( !($result = $db->sql_query($sql)) )
{
@@ -97,16 +97,16 @@ for(;$postcounter <= $max_post_id; $postcounter += $batchsize)
{
// $sql = "LOCK TABLES ".POST_TEXT_TABLE." WRITE";
// $result = $db->sql_query($sql);
// $result = $db->sql_query($sql);
print "\n<p>\n<a href='{$_SERVER['PHP_SELF']}?batchstart=$batchstart'>Restart from posting $batchstart</a><br>\n";
// For every post in the batch:
for($post_nr = 0; $post_nr < $post_rows; $post_nr++ )
{
{
print ".";
flush();
$post_id = $rowset[$post_nr]['post_id'];
$post_id = $rowset[$post_nr]['post_id'];
$search->index('post', $rowset[$post_nr]['post_id'], $rowset[$post_nr]['post_text'], $rowset[$post_nr]['post_subject'], $rowset[$post_nr]['poster_id']);
}

View File

@@ -1,120 +0,0 @@
<?php
//
// This file provides some useful functions for debugging the unicode/UTF-8 library
// It requires utf_tools.php to be loaded
//
die("Please read the first lines of this script for instructions on how to enable it");
if (!headers_sent())
{
header('Content-type: text/html; charset=UTF-8');
}
/**
* Converts unicode escape sequences (\u0123) into UTF-8 characters
*
* @param string A unicode sequence
* @return string UTF-8 representation of the given unicode sequence
*/
function unicode_to_utf8($string)
{
$utf8 = '';
$chars = array();
for ($i = 0; $i < strlen($string); $i++)
{
if (isset($string[$i + 5]) && substr($string, $i, 2) == '\\u' && ctype_xdigit(substr($string, $i + 2, 4)))
{
$utf8 .= utf8_from_unicode(array(base_convert(substr($string, $i + 2, 4), 16, 10)));
$i += 5;
}
else
{
$utf8 .= $string[$i];
}
}
return $utf8;
}
/**
* Takes an array of ints representing the Unicode characters and returns
* a UTF-8 string.
*
* @param array $array array of unicode code points representing a string
* @return string UTF-8 character string
*/
function utf8_from_unicode($array)
{
$str = '';
foreach ($array as $value)
{
$str .= utf8_chr($value);
}
return $str;
}
/**
* Converts a UTF-8 string to unicode code points
*
* @param string $text UTF-8 string
* @return string Unicode code points
*/
function utf8_to_unicode($text)
{
return preg_replace_callback(
'#[\\xC2-\\xF4][\\x80-\\xBF]?[\\x80-\\xBF]?[\\x80-\\xBF]#',
'utf8_to_unicode_callback',
preg_replace_callback(
'#[\\x00-\\x7f]#',
'utf8_to_unicode_callback',
$text
)
);
}
/**
* Takes a UTF-8 char and replaces it with its unicode escape sequence. Attention, $m is an array
*
* @param array $m 0-based numerically indexed array passed by preg_replace_callback()
* @return string A unicode escape sequence
*/
function utf8_to_unicode_callback($m)
{
return '\u' . str_pad(base_convert(utf8_ord($m[0]), 10, 16), 4, '0', STR_PAD_LEFT) . '';
}
/**
* A wrapper function for the normalizer which takes care of including the class if required and modifies the passed strings
* to be in NFKC
*
* @param mixed $strings a string or an array of strings to normalize
* @return mixed the normalized content, preserving array keys if array given.
*/
function utf8_normalize_nfkc($strings)
{
if (empty($strings))
{
return $strings;
}
if (!class_exists('utf_normalizer'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
}
if (!is_array($strings))
{
utf_normalizer::nfkc($strings);
}
else if (is_array($strings))
{
foreach ($strings as $key => $string)
{
utf_normalizer::nfkc($strings[$key]);
}
}
return $strings;
}
?>

View File

@@ -1,57 +0,0 @@
<?php
/**
* Corrects user_email_hash values if DB moved from 32-bit system to 64-bit system or vice versa.
* The CRC32 function in PHP generates different results for both systems.
* @PHP dev team: no, a hexdec() applied to it does not solve the issue. And please document it.
*
*/
die("Please read the first lines of this script for instructions on how to enable it");
set_time_limit(0);
define('IN_PHPBB', true);
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$start = request_var('start', 0);
$num_items = 1000;
echo '<br />Updating user email hashes' . "\n";
$sql = 'SELECT user_id, user_email
FROM ' . USERS_TABLE . '
ORDER BY user_id ASC';
$result = $db->sql_query($sql);
$echos = 0;
while ($row = $db->sql_fetchrow($result))
{
$echos++;
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_email_hash = '" . $db->sql_escape(phpbb_email_hash($row['user_email'])) . "'
WHERE user_id = " . (int) $row['user_id'];
$db->sql_query($sql);
if ($echos == 200)
{
echo '<br />';
$echos = 0;
}
echo '.';
flush();
}
$db->sql_freeresult($result);
echo 'FINISHED';
// Done
$db->sql_close();
?>

View File

@@ -1,10 +1,10 @@
<?php
/**
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -132,8 +132,7 @@ while (!feof($fp))
foreach ($tests as $test)
{
$utf_result = $utf_expected;
call_user_func(array('utf_normalizer', $form), $utf_result);
$utf_result = call_user_func(array('utf_normalizer', $form), $utf_expected);
if (strcmp($utf_expected, $utf_result))
{
@@ -197,8 +196,7 @@ while (!feof($fp))
foreach (array('nfc', 'nfkc', 'nfd', 'nfkd') as $form)
{
$utf_result = $utf_expected;
utf_normalizer::$form($utf_result);
$utf_result = utf_normalizer::$form($utf_expected);
$hex_result = utf_to_hexseq($utf_result);
// echo "$form($utf_expected) == $utf_result\n";

View File

@@ -1,60 +1,39 @@
/**
*
* phpBB3 © Copyright 2000, 2002, 2005, 2007 phpBB Group
* http://www.phpbb.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://opensource.org/licenses/gpl-license.php>.
*
*/
/* ********************************************************************** *\
/* *\
/* phpBB3 <EFBFBD> Copyright 2006 phpBB Group *\
/* *\
/* [ http://www.phpbb.com/ ] *\
/* *\
/* ********************************************************************** *\
Please see: http://www.phpbb.com/about/team/ for a list of all the people currently
involved in phpBB.
phpBB Lead Developer: naderman (Nils Adermann)
phpBB Project Manager : SHS` (Jonathan Stanley)
phpBB Developers: A_Jelly_Doughnut (Josh Woody)
Acyd Burn (Meik Sievertsen) [Lead 09/2005 - 01/2010]
APTX (Marek A. R.)
bantu (Andreas Fischer)
DavidMJ (David M.)
dhn (Dominik Dröscher)
kellanved (Henry Sudhof)
Terrafrost (Jim Wigginton)
ToonArmy (Chris Smith)
phpBB Lead Developer : Acyd Burn (Meik Sievertsen)
Contributions by: Brainy (Cullen Walsh)
leviatan21 (Gabriel Vazquez)
nickvergessen (Joas Schilling)
Raimon (Raimon Meuldijk)
rxu (Ruslan Uzdenov)
Xore (Robert Hetzler)
phpBB Developers : DavidMJ (David M.)
dhn (Dominik Dr<44>scher)
kellanved (Henry Sudhof)
naderman (Nils Adermann)
subBlue (Tom Beddard)
Vic (Vic D'elfant)
-- Previous Contributors --
-- Former Contributors --
phpBB Project Manager : theFinn (James Atkinson) [Founder - 04/2007]
phpBB Project Manager: theFinn (James Atkinson) [Founder - 04/2007]
SHS` (Jonathan Stanley)
phpBB Lead Developer : psoTFX (Paul S. Owen) [2001 - 09/2005]
phpBB Lead Developer: psoTFX (Paul S. Owen) [2001 - 09/2005]
phpBB Developers : Ashe (Ludovic Arnaud) [10/2002 - 11/2003, 06/2006 - 10/2006]
BartVB (Bart van Bragt) [11/2000 - 03/2006]
GrahamJE (Graham Eames) [09/2005 - 11/2006]
phpBB Developers: Ashe (Ludovic Arnaud) [10/2002 - 11/2003, 06/2006 - 10/2006]
BartVB (Bart van Bragt) [11/2000 - 03/2006]
GrahamJE (Graham Eames) [09/2005 - 11/2006]
Vic D'Elfant (Vic D'Elfant) [04/2007 - 04/2009]
-- Copyrights --
Visual Confirmation: Xore (Robert Hetzler)
Visual Confirmation : Xore (Robert Hetzler)
Original subSilver by subBlue Design, Tom Beddard, (c) 2001 phpBB Group
prosilver by subBlue Design, Tom Beddard, (c) 2004 phpBB Group
@@ -67,7 +46,7 @@ Smarty (c) 2001, 2002 by ispi of Lincoln, Inc, http://smarty.php.net/
GPL licenced:
phpMyAdmin (c) 2001,2003 phpMyAdmin Devel team, http://www.phpmyadmin.net/
Jabber Class (c) 2006 Flyspray.org, http://www.flyspray.org/
Jabber Class (c) 2004 Nathan Fritz, http://cjphp.netflint.net
Chora (c) 2000-2006, The Horde Project. http://horde.org/chora/
Horde Project (c) 2000-2006, The Horde Project. http://horde.org/

File diff suppressed because it is too large Load Diff

View File

@@ -1,59 +1,175 @@
<!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" lang="en" xml:lang="en">
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="en" />
<meta http-equiv="imagetoolbar" content="no" />
<title>phpBB 3.0.x FAQ</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="global" />
<meta name="copyright" content="2007 phpBB Group" />
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.0.x frequently asked questions" />
<title>phpBB3 &bull; FAQ</title>
<meta name="description" lang="en" content="phpBB 3.0.x frequently asked questions" />
<meta name="keywords" lang="en" content="" />
<meta name="author" content="phpBB Group" />
<meta name="copyright" content="phpBB Group" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
<style type="text/css">
<!--
/* The original "subSilver" theme for phpBB2 Created by subBlue design :: http://www.subBlue.com */
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin: 0;
border: 0;
padding: 0;
}
img {
border: 0;
}
p {
font-size: 8pt;
}
hr {
height: 0;
border: solid #D1D7DC 0;
border-top-width: 1px;
}
#title, 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%;
}
h3 {
font: bold 10pt Arial, Helvetica, sans-serif;
text-decoration: none;
line-height: 120%;
}
.paragraph {
margin-left: 20px;
}
/* Structure */
#logo {
background: #fff url(header_bg.jpg) repeat-x top right;
height: 60px;
}
#title {
color: #12749b;
float: right;
margin: 10px 10px 0;
}
#main {
margin-left: 25px;
margin-right: 25px;
}
.good {
color: green;
}
.bad {
color: red;
}
#footer {
margin-left: 75px;
font-size: 70%;
color: #006600;
}
code {
color: #006600;
font-weight: normal;
font-family: 'Courier New', monospace;
border-color: #D1D7DC;
border-width: 1px;
border-style: solid;
background-color: #FAFAFA;
}
.indent p {
padding-left: 20px;
font-size: 90%;
}
/* Anchors */
a {
font-size: 70%;
}
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;
}
p a {
font-size: 100%;
}
.menu {
font-size: 80%;
}
.menu li a {
font-size: 100%;
}
.comment {
color: green;
}
//-->
</style>
</head>
<body id="phpbb" class="section-docs">
<body>
<div id="wrap">
<a id="top" name="top" accesskey="t"></a>
<div id="page-header">
<div class="headerbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div id="logo">
<div id="title">phpBB 3.0.x FAQ</div>
<img src="header_left.jpg" alt="phpBB Logo" />
</div>
<div id="doc-description">
<a href="../index.php" id="logo"><img src="site_logo.gif" alt="" /></a>
<h1>phpBB 3.0.x FAQ</h1>
<p>phpBB 3.0.x frequently asked questions</p>
<p style="display: none;"><a href="#start_here">Skip</a></p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a name="start_here"></a>
<div id="page-body">
<a name="top"></a><div id="main">
<!-- BEGIN DOCUMENT -->
<p>This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB3, the community forums and our IRC channel (see <a href="README.html">README</a> for details).</p>
<p>This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB3, the community forums and our IRC channel (see <a href="README.html">README</a> for details).</p>
<h1>FAQ</h1>
<div class="paragraph menu">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<h1>FAQ</h1>
<!-- add entry about common UTF8 problems (for example wrong uploading, editing) -->
<ul>
<li><a href="#install">I am finding phpBB too difficult to install. Will you do it for me?</a></li>
<ul class="menu">
<li><a href="#install">I cannot install this it is too difficult! Will you do it?</a></li>
<li><a href="#legal">I am having problems with the admin at a certain board, help!</a></li>
<li><a href="#legal">A board has ripped off my graphics/software/etc., stop them!</a></li>
<li><a href="#legal">A board is dealing in warez/porn/etc., you need to prevent them doing this!</a></li>
@@ -62,7 +178,7 @@
<li><a href="#mail">I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!</a></li>
<li><a href="#mail_language">My users are complaining that emails are not in their selected language!</a></li>
<li><a href="#aol_browser">My AOL based users keep getting logged out!</a></li>
<li><a href="#avatars">I am unable to upload avatars from my computer, regardless of the settings.</a></li>
<li><a href="#avatars">No matter what I set the uploadable avatars to I cannot upload one from my computer!</a></li>
<li><a href="#gallery_avatars">I just cannot get gallery avatars to appear!</a></li>
<li><a href="#permissions">How do I use/set permissions?</a></li>
<li><a href="#login_issues">I (or my users) cannot stay logged in to the forum!</a></li>
@@ -71,19 +187,11 @@
<li><a href="#disclaimer">Copyright and disclaimer</a></li>
</ul>
</div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="install"></a><h3>I cannot install this it is too difficult! Will you do it?</h3>
<hr />
<a name="install"></a><h2>I am finding phpBB too difficult to install. Will you do it for me?</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>Simple answer, no we will not. We are not being difficult when we say this we are actually trying to help you. phpBB has a reputation for being easy to install, that reputation is we believe well deserved. It is a simple process of unarchiving a single file, uploading the resulting directory/files to their intended location and entering some data in a web based form. The sequence of events, what to type where, etc. is covered in detail in the accompanying <a href="INSTALL.html">INSTALL.html</a> documentation. If you cannot install phpBB3 the chances are you will be unable to administer or update it.</p>
@@ -91,104 +199,75 @@
<p>We think a better solution is for you to carefully read the enclosed documentation, read through our knowledge base at <a href="http://www.phpbb.com/">www.phpbb.com</a> and if necessary ask for help on any thing you get stuck on. However, the decision is yours but please note we may not offer support if we believe you have had the board installed by a third party. In such cases you should direct your questions to that company or person/s.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="legal"></a>
<h3>I am having problems with the admin at a certain board, help!</h3>
<h3>A board has ripped off my graphics/software/etc., stop them!</h3>
<h3>A board is dealing in warez/porn/etc., you need to prevent them doing this!</h3>
<h3>I want to sue you because i think you host an illegal board!</h3>
<hr />
<a name="legal"></a><h2>I am having problems with the admin at a certain board, help!<br />
A board has ripped off my graphics/software/etc., stop them!<br />
A board is dealing in warez/porn/etc., you need to prevent them doing this!<br />
I want to sue you because i think you host an illegal board!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>We provide the software, we have absolutely nothing to do with any board that runs it (beyond phpbb.com of course!) and we also do not host any site. The GPL grants the user an unlimited right of use subject to their adherence of that licence. Therefore we cannot prevent, dictate, control or otherwise limit the use of phpBB software. So please do not contact us for such matters.</p>
<p>If you have a problem with a given board please take it up with them, not us. We are not and cannot be held legally responsible for any third party use of this software (much like Microsoft et al cannot be held responsible for the use of Windows in illegal activities, etc.). Additionally we do <strong>not</strong> track the use of phpBB software in any way. So please do not ask us for details on a &quot;given&quot; board we will not be able to help you. If any law firms or lawyers out there send us writs, cease and desist orders, etc. for third party website use of this software we reserve the right to charge for time wasted dealing with such issues...</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="viewonline"></a><h3>According to viewonline a user is doing/reading something they should not be able to!</h3>
<hr />
<a name="viewonline"></a><h2>According to viewonline a user is doing/reading something they should not be able to!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>No, they probably are not. phpBB uses sessions to keep track of users as they move between pages. The session information tells us who this user is. Therefore in order to determine what a user can do on a page we first need the session details. Once this data is available we can check whether the user is permitted to do whatever it is they are trying to do. This can result in it appearing as if a user is reading a topic in a forum they should not be able to access. Or perhaps viewing private messages when they are only guests, etc. In practice the user is not doing these things, they are viewing a &quot;You are not permitted to do this&quot; type message. The session data has simply been updated before we were able to determine what the user could or could not do.</p>
<p>Of course this only applies where permissions have been set correctly!</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="mail"></a><h3>I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!</h3>
<hr />
<a name="mail"></a><h2>I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>This error will occur if phpBB cannot send mail. phpBB can send email two ways; using the PHP <code>mail()</code> function or directly via SMTP. Some hosting providers limit the <code>mail()</code> function to prevent its use in spamming, others may rename it or limit its functionality. If the <code>mail()</code> function got renamed, you are able to enter the correct name within the administration control panel. In either case you may need to make use of SMTP. This requires that you have access to such a facility, e.g. your hosting provider may provide one (perhaps requiring specific written authorisation), etc. Please see <a href="http://www.phpbb.com/">www.phpbb.com</a> for additional help on this matter.</p>
<p>If you do require SMTP services please do not ask (on our forums or elsewhere) for someone to provide you with one. Open relays are now things of the past thanks to the unthinking spammers out there. Therefore you are unlikely to find someone willing to offer you (free) services.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="mail_language"></a><h3>My users are complaining that emails are not in their selected language!</h3>
<hr />
<a name="mail_language"></a><h2>My users are complaining that emails are not in their selected language!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>You must have deleted a language pack or the language pack is incomplete. phpBB will try to send emails in the users selected language. If it cannot find a suitable email template it will switch to the boards default language.</p>
<!-- additional entry about encoded emails -->
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="aol_browser"></a><h3>My AOL based users keep getting logged out!</h3>
<hr />
<a name="aol_browser"></a><h2>My AOL based users keep getting logged out!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>phpBB uses sessions to keep track of users as they browse the board. These sessions use a combination of a unique session id, the users IP and if specified the users browser and/or the users x-forwarded-for header to identify each user. We make use of all of this as an extra safe-guard to help prevent sessions being hijacked (by discovering the unique session id).</p>
@@ -196,157 +275,106 @@ I want to sue you because i think you host an illegal board!</h2>
<p>If you are experiencing problems related to this you can set the Session IP validation parameter found in <code>Admin-&gt;General-&gt;Server Configuration-&gt;Security Settings</code> to <samp>A.B</samp>. Please note that reducing the IP validation length does potentially increase the risk of sessions being hijacked (this is something for you to consider, phpBB Group takes no responsibility should anything happen!). We suggest to at least additionally enable the browser validation.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="avatars"></a><h3>No matter what I set the uploadable avatars to I cannot upload one from my computer!</h3>
<hr />
<a name="avatars"></a><h2>I am unable to upload avatars from my computer, regardless of the settings.</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>There are two possibilities here, the first is you have not created the directory you specified as the storage location for avatars, ie. as specified in the <code>Admin -&gt; General -&gt; Board Configuration -&gt; Avatar settings</code> section. If the directory does not exist uploadeable avatars are automatically disabled. You should create the required directory (ensuring it has global write access or other appropriate permissions to allow the webserver to write files to it).</p>
<p>The second possibility is that your provider has disabled file_upload support. You should contact your provider and ask them if this is the case. There is not a lot you can do, there are still three other avatar settings left to choose from including uploading via an URL which will work fine.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="gallery_avatars"></a><h3>I just cannot get gallery avatars to appear!</h3>
<hr />
<div class="paragraph">
<a name="gallery_avatars"></a><h2>I just cannot get gallery avatars to appear!</h2>
<p>phpBB categorises gallery avatars and it does this by reading through folders contained in the location you specified as being the gallery path. For example, if you set the gallery path to <samp>images/avatars/gallery</samp> phpBB will expect to find a series of folders within that path, eg. <samp>images/avatars/gallery/moviestars</samp>, <samp>images/avatars/gallery/cartoons</samp>, <samp>images/avatars/gallery/misc</samp>, etc. Placing images directly in <samp>images/avatars/gallery/</samp> will result in nothing being listed in your gallery.</p>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="content">
<hr />
<p>phpBB categorises gallery avatars and it does this by reading through folders contained in the location you specified as being the gallery path. For example, if you set the gallery path to <samp>images/avatars/gallery</samp> phpBB will expect to find a series of folders within that path, e.g. <samp>images/avatars/gallery/moviestars</samp>, <samp>images/avatars/gallery/cartoons</samp>, <samp>images/avatars/gallery/misc</samp>, etc. Placing images directly in <samp>images/avatars/gallery/</samp> will result in nothing being listed in your gallery.</p>
<a name="permissions"></a><h3>How do I use/set permissions?</h3>
</div>
<div class="paragraph">
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<p>Please read our documentation about <a href="#">permissions</a>.</p>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<hr />
<hr />
<a name="permissions"></a><h2>How do I use/set permissions?</h2>
<a name="login_issues"></a><h3>I (or my users) cannot stay logged in to the forum!</h3>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>Please read the paragraph about permissions in our extensive <a href="http://www.phpbb.com/support/documentation/3.0/">online documentation</a>.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="login_issues"></a><h2>I (or my users) cannot stay logged in to the forum!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>If you (or your users) are, after attempting a login, being returned to the index (or other page) without appearing to be logged in the most likely problem is incorrect cookie settings. phpBB uses cookies to store a session id and a small amount of user data. For this data to be stored correctly the cookie domain, name, path and secure settings must be correct. You can check this in <code>Admin-&gt;General-&gt;Server Configuration-&gt;Cookie Settings</code>. Typically the cookie domain can be left blank and the cookie path set to <samp>/</samp> (a single forward slash). Do <strong>not</strong> set the cookie as being secure unless your board is running over a secure sockets layer connection, ie. https://</p>
<p>If you still have problems try setting the cookie domain to your full domain name, e.g. <samp>www.mysystem.tld</samp>, <samp>www.something.mydomain.tld</samp>. You <strong>must</strong> ensure the domain name contains at least two dots or browsers will be unlikely to recognise the cookie, e.g. <samp>.mydomain.com</samp>, <samp>mydomain.com</samp>. Do <strong>not</strong> add http:// or anything else to the domain name!</p>
<p>If you still have problems try setting the cookie domain to your full domain name, eg. <samp>www.mysystem.tld</samp>, <samp>www.something.mydomain.tld</samp>. You <strong>must</strong> ensure the domain name contains at least two dots or browsers will be unlikely to recognise the cookie, eg. <samp>.mydomain.com</samp>, <samp>mydomain.com</samp>. Do <strong>not</strong> add http:// or anything else to the domain name!</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="logout_issues"></a><h3>My users are complaining about being logged out too quickly!</h3>
<hr />
<a name="logout_issues"></a><h2>My users are complaining about being logged out too quickly!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>You can increase the default length of sessions (ie. how long before a users session is considered 'dead') in <code>Admin-&gt;General-&gt;Server Configuration-&gt;Load Settings</code>. Set it to whatever value your users feel comfortable with, remember that security issues may affect your decision (ie. having too long a session may allow non-users to abuse your board should a user forget to logout or otherwise leave a current session on a public workstation).</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="not_answered"></a><h3>My question isn't answered here!</h3>
<hr />
<div class="paragraph">
<a name="not_answered"></a><h2>My question isn't answered here!</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>Please read our <a href="http://www.phpbb.com/support/documentation/3.0/">extensive user documentation</a> first, it may just explain what you want to know.</p>
<p>Please read our <a href="#">extensive user documentation</a> first, it may just explain what you want to know.</p>
<p>Feel free to search our community forum for the information you require. <strong>PLEASE DO NOT</strong> post your question without having first used search, chances are someone has already asked and answered your question. You can find our board here:</p>
<p><a href="http://www.phpbb.com">www.phpbb.com</a></p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<a name="disclaimer"></a><h3>Copyright and disclaimer</h3>
<hr />
<div class="paragraph">
<a name="disclaimer"></a><h2>Copyright and disclaimer</h2>
<p>This application is opensource software released under the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-license.php">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a href="#top">Top</a>
<!-- END DOCUMENT -->
<div id="page-footer">
<div class="version">&nbsp;</div>
</div>
</div></div>
<div>
<a id="bottom" name="bottom" accesskey="z"></a>
</div>
<div id="footer">&nbsp; <br /><br /></div>
</body>
</html>

View File

@@ -1,44 +1,165 @@
<!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" lang="en" xml:lang="en">
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="en" />
<meta http-equiv="imagetoolbar" content="no" />
<title>phpBB 3.0.x Install</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="global" />
<meta name="copyright" content="2007 phpBB Group" />
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.0.x Installation, updating and conversion informations" />
<title>phpBB3 &bull; Install</title>
<meta name="description" lang="en" content="phpBB 3.0.x Installation, updating and conversion informations" />
<meta name="keywords" lang="en" content="" />
<meta name="author" content="phpBB Group" />
<meta name="copyright" content="phpBB Group" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
<style type="text/css">
<!--
/* The original "subSilver" theme for phpBB2 Created by subBlue design :: http://www.subBlue.com */
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin: 0;
border: 0;
padding: 0;
}
img {
border: 0;
}
p {
font-size: 8pt;
}
hr {
height: 0;
border: solid #D1D7DC 0;
border-top-width: 1px;
}
#title, 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%;
}
h3 {
font: bold 10pt Arial, Helvetica, sans-serif;
text-decoration: none;
line-height: 120%;
}
.paragraph {
margin-left: 20px;
}
/* Structure */
#logo {
background: #fff url(header_bg.jpg) repeat-x top right;
height: 60px;
}
#title {
color: #12749b;
float: right;
margin: 10px 10px 0;
}
#main {
margin-left: 25px;
margin-right: 25px;
}
.good {
color: green;
}
.bad {
color: red;
}
#footer {
margin-left: 75px;
font-size: 70%;
color: #006600;
}
code {
color: #006600;
font-weight: normal;
font-family: 'Courier New', monospace;
border-color: #D1D7DC;
border-width: 1px;
border-style: solid;
background-color: #FAFAFA;
}
.indent p {
padding-left: 20px;
font-size: 90%;
}
/* Anchors */
a {
font-size: 70%;
}
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;
}
p a {
font-size: 100%;
}
.menu {
font-size: 80%;
}
.menu li a {
font-size: 100%;
}
.comment {
color: green;
}
//-->
</style>
</head>
<body id="phpbb" class="section-docs">
<body>
<div id="wrap">
<a id="top" name="top" accesskey="t"></a>
<div id="page-header">
<div class="headerbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div id="logo">
<div id="title">phpBB 3.0.x Install</div>
<img src="header_left.jpg" alt="phpBB Logo" />
</div>
<div id="doc-description">
<a href="../index.php" id="logo"><img src="site_logo.gif" alt="" /></a>
<h1>phpBB 3.0.x Install</h1>
<p>phpBB 3.0.x Installation, updating and conversion informations</p>
<p style="display: none;"><a href="#start_here">Skip</a></p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a name="start_here"></a>
<div id="page-body">
<a name="top"></a><div id="main">
<!-- BEGIN DOCUMENT -->
@@ -50,17 +171,12 @@
<h1>Install</h1>
<div class="paragraph menu">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<ol>
<ol class="menu">
<li><a href="#quickinstall">Quick install</a></li>
<li><a href="#require">Requirements</a></li>
<li><a href="#install">New installation</a></li>
<li><a href="#update">Updating from stable releases of phpBB 3.0.x</a>
<ol style="list-style-type: lower-roman;">
<ol type="i">
<li><a href="#update_full">Full package</a></li>
<li><a href="#update_files">Changed files only</a></li>
<li><a href="#update_patch">Patch file</a></li>
@@ -69,38 +185,28 @@
</ol>
</li>
<li><a href="#convert">Conversion from phpBB 2.0.x to phpBB 3.0.x</a>
<ol style="list-style-type: lower-roman;">
<ol type="i">
<li><a href="#prereq">Requirements before converting</a></li>
<li><a href="#conversion">Converting</a></li>
<li><a href="#postreq">Things to do after conversion</a></li>
<li><a href="#convprob">Common conversion problems</a></li>
</ol>
</li>
<li><a href="#postinstall">Important (security related) post-Install tasks for all installation methods</a>
<ol style="list-style-type: lower-roman;">
<ol type="i">
<li><a href="#avatars">Uploadable avatars</a></li>
</ol>
</li>
<li><a href="#disclaimer">Disclaimer</a></li>
</ol>
</div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="quickinstall"></a><h2>1. Quick install</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="quickinstall"></a><h1>1. Quick install</h1>
<div class="paragraph">
<p>If you have basic knowledge of using FTP and are sure your hosting service or server will run phpBB3 you can use these steps to quickly get started. For a more detailed explanation you should skip this and go to <a href="#require">section 2</a> below.</p>
<ol>
<ol class="menu">
<li>Decompress the phpBB3 archive to a local directory on your system.</li>
<li>Upload all the files contained in this archive (retaining the directory structure) to a web accessible directory on your server or hosting account.</li>
<li>Change the permissions on config.php to be writable by all (666 or -rw-rw-rw- within your FTP Client)</li>
@@ -113,39 +219,30 @@
</ol>
<p>If you experienced problems or do not know how to proceed with any of the steps above please read the rest of this document.</p>
</div>
<a href="#top">Top</a>
<br /><br />
</div>
<hr />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="require"></a><h2>2. Requirements</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="require"></a><h1>2. Requirements</h1>
<div class="paragraph">
<p>phpBB3 has a few requirements which must be met before you are able to install and use it.</p>
<ul>
<ul class="menu">
<li>A webserver or web hosting account running on any major Operating System with support for PHP</li>
<li>A SQL database system, <strong>one of</strong>:
<ul>
<li>MySQL 3.23 or above (MySQLi supported)</li>
<li>PostgreSQL 7.3+</li>
<li>SQLite 2.8.2+</li>
<li>Firebird 2.1+</li>
<li>Firebird 2.0+</li>
<li>MS SQL Server 2000 or above (directly or via ODBC)</li>
<li>Oracle</li>
</ul>
</li>
<li><strong>PHP 4.3.3+ (>=4.3.3, >4.4.x, >5.x.x, >6.0-dev (compatible))</strong> with support for the database you intend to use.</li>
<li>getimagesize() function need to be enabled.</li>
<li><strong>PHP 4.3.3</strong> or above with support for the database you intend to use.</li>
<li>These optional presence of the following modules within PHP will provide access to additional features, but they are not required.
<ul>
<li>zlib Compression support</li>
@@ -158,23 +255,16 @@
</ul>
<p>If your server or hosting account does not meet the requirements above we are afraid phpBB3 is not for you.</p>
</div>
<a href="#top">Top</a>
<br /><br />
</div>
<hr />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="install"></a><h2>3. New installation</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="install"></a><h1>3. New installation</h1>
<div class="paragraph">
<p>Installation of phpBB3 will vary according to your server and database. If you have <em>shell access</em> to your account (via telnet or ssh for example) you may want to upload the entire phpBB3 archive (in binary mode!) to a directory on your host and unarchive it there.</p>
<p>If you do not have shell access or do not wish to use it you will need to decompress the phpBB3 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP <strong>ALL</strong> the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do <strong>NOT</strong> force filenames to all lower or upper case doing so will cause errors later.</p>
@@ -185,19 +275,19 @@
<p>Once all the files have been uploaded to your site you should point your browser at this location with the addition of <code>install/</code>. For example if your domain name is <em>www.mydomain.tld</em> and you placed phpBB3 in a directory /phpBB3 off your web root you would enter <em>http://www.mydomain.tld/phpBB3/install/</em> or (alternatively) <em>http://www.mydomain.tld/phpBB3/install/index.php</em> into your browser. When you have done this you should see the phpBB3 Installation screen appear.</p>
<h4>Introduction:</h4>
<h3>Introduction:</h3>
<p>The installation screen gives you a short introduction into phpBB. It allows you to read the license phpBB3 is released under (General Public License) and provides information about how you can receive support. To start the installation, use the <em>Install</em> button.</p>
<h4>Requirements</h4>
<h3>Requirements</h3>
<p>The first page you will see after starting the installation is the Requirements list. phpBB3 checks automatically whether everything that it needs to run properly is installed on your server. You need to have at least the minimum PHP version installed, and at least one database available to continue the installation. Also important, is that all shown folders are available and do have the correct permissions. Please see the description of each section to find out whether they are optional or required for phpBB3 to run. If everything is in order, you can continue the installation with <em>Start Install</em>.</p>
<h4>Database settings</h4>
<h3>Database settings</h3>
<p>You now have to decide which database to use. See the <a href="#require">Requirements section</a> for information on which databases are supported. If you do not know your database settings, please contact your host and ask for them. You will not be able to continue without them. You need:</p>
<ul>
<ul class="menu">
<li>The Database Type - the database you will be using.</li>
<li>The Database server hostname or DSN - the address of the database server.</li>
<li>The Database server port - the port of the database server (most of the time this is not needed).</li>
@@ -219,17 +309,17 @@
<p>If you see the Successful Connection message, you can continue to the next step.</p>
<h4>Administrator details</h4>
<h3>Administrator details</h3>
<p>Now you have to create your administration user. This user will have full administration access and he/she will be the first user on your forum. All fields on this page are required. You can also set the default language of your forum on this page. In a vanilla phpBB3 installation we only include English. You can download further languages from <a href="http://www.phpbb.com/">www.phpbb.com</a>, and add them before installing or later.</p>
<h4>Configuration file</h4>
<h3>Configuration file</h3>
<p>In this step, phpBB will try to write the configuration file automatically. The forum needs the configuration to run properly. It contains all database settings, so without it, phpBB will not be able to access the database.</p>
<p>Usually writing the configuration file automatically works fine. But in some cases it can fail due to wrong file permissions, for instance. In this case, you need to upload the file manually. phpBB asks you to download the config.php file and tells you what to do with it. Please read the instructions carefully. After you have uploaded the file, use <em>Done</em> to get to the last step. If <em>Done</em> returns you to the same page as before, and does not return a success message, you did not upload the file correctly.</p>
<h4>Advanced settings</h4>
<h3>Advanced settings</h3>
<p>The Advanced settings allow you to set some parameters of the board configuration. They are optional, and you can always change them later. So if you are not sure what these settings mean, proceed to the final step and finish the installation.</p>
@@ -239,117 +329,131 @@
<p>At this point if you are converting from phpBB 2.0.x, you should refer to the <a href="#convert">conversion steps</a> for further information. If not, you should remove the install directory from your server as you will only be able to access the Administration Control Panel whilst it is present.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="update"></a><h2>4. Updating from stable releases of phpBB 3.0.x</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="update"></a><h1>4. Updating from stable releases of phpBB 3.0.x</h1>
<p>If you are currently using a stable release of phpBB3 updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Please Note</strong>: That before updating we heavily recommend you do a <em>full backup of your database and existing phpBB3 files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
<p><strong>Please make sure you update your phpBB3 source files too, even if you run the <code>database_update.php</code> file.</strong></p>
<a name="update_full"></a><h3>4.i. Full package</h3>
<a name="update_full"></a><b>4.i. Full package</b>
<br /><br />
<div class="paragraph">
<p>The full package is normally meant for new installations only, but if you want to replace all source files this package comes in handy.</p>
<p>The full package is normally meant for new installations, but if you want to replace all source files this package comes in handy.</p>
<p>First you should make a copy of your existing <em>config.php</em> file, keep it in a safe place! Next delete all the existing phpBB3 files, you may want to leave your <code>files/</code> and <code>images/</code> directory in place. You can leave alternative styles in-place too. With this complete you can upload the new phpBB3 files (see <a href="#install">New installation</a> for details if necessary). Once complete copy back your saved <em>config.php</em>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure, they should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
<p>Once the install/database_update.php has completed you may proceed to the Administration Control Panel and check remove the install directory as advised.</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="update_files"></a><h3>4.ii. Changed files only</h3>
<a name="update_files"></a><b>4.ii. Changed files only</b>
<br /><br />
<div class="paragraph">
<p>This package is meant for those wanting to only replace changed files from a previous version to the latest version. This package normally contains the changed files from up to five previous versions.</p>
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <samp>3.0.6</samp> you should select the phpBB-3.0.6_to_3.0.7.zip/tar.gz file.</p>
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <samp>3.0.0</samp> you should select the phpBB-3.0.0_to_3.0.1.zip/tar.gz file.</p>
<p>The directory structure has been preserved enabling you (if you wish) to simply upload the contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any MODs these files will overwrite the originals possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
<p>As for the other update procedures you should run <b>install/database_update.php</b> after you have finished updating the files. This will update your database schema and increment the version number.</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="update_patch"></a><h3>4.iii. Patch file</h3>
<a name="update_patch"></a><b>4.iii. Patch file</b>
<br /><br />
<p>The patch file package is for those wanting to update through the patch application, and being comfortable with it.</p>
<div class="paragraph">
<p>The patch file is one solution for those with many Modifications (MODs) or other changes who do not want to re-add them back to all the changed files if they use the method explained above. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
<p>The patch file is probably the best solution for those with many Modifications (MODs) or other changes who do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application but still want to use this update approach we recommend the <a href="update_auto">Automatic update package</a> explained below.</p>
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is 3.0.5 you need the phpBB-3.0.6_to_3.0.7.patch file. Place the correct patch in the parent directory containing the phpBB3 core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <strong>patch -cl -d [PHPBB DIRECTORY] -p1 &lt; [PATCH NAME]</strong> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB3, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is 3.0.0 you need the phpBB-3.0.0_to_3.0.1.patch file. Place the correct patch in the parent directory containing the phpBB3 core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <strong>patch -cl -d [PHPBB DIRECTORY] -p1 &lt; [PATCH NAME]</strong> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB3, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
<p>If you do get failures you should look at using the <a href="#update_files">Changed files only</a> package to replace the files which failed to patch, please note that you will need to manually re-add any Modifications (MODs) to these particular files. Alternatively if you know how you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
<p>You should of course delete the patch file (or files) after use. As for the other update procedures you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
<a name="update_auto"></a><b>4.iv. Automatic update package</b>
<br /><br />
<p>This update method is the recommended method for updating. This package allows detecting changed files automatically and merges changes if needed.</p>
<div class="paragraph">
<p>The automatic update package contains - contrary to the others - only the information required to update the previous release version to the latest available version. These packages are meant for use with the automatic update tool.</p>
<p>The automatic update package is holding - contrary to the others - only the update informations for updating the last released version to the latest available version. These package is meant for use with the automatic update tool.</p>
<p>To perform the update, either follow the instructions from the <code>Administration Control Panel-&gt;System</code> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>
<p>To perform the update, either follow the instructions from the <code>Administration Control Panel -&gt; System</code> Tab - this should point out that you are running an outdated version and will guide you through the update - or following the instructions listed below.</p>
<ul>
<li>Go to the <a href="http://www.phpbb.com/downloads/">downloads page</a> and download the latest update package listed there, matching your current version.</li>
<ul class="menu">
<li>Go to the <a href="http://www.phpbb.com/downloads/">downloads page</a> and download the latest update package listed there.</li>
<li>Upload the archives contents to your phpBB installation - only the install folder is required. Upload the whole install folder, retaining the file structure.</li>
<li>After the install folder is present, phpBB3 will go offline automatically.</li>
<li>Point your browser to the install directory, for example <samp>http://www.example.com/phpBB3/install/</samp></li>
<li>Choose the "Update" Tab and follow the instructions</li>
</ul>
<p>&nbsp;</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="update_all"></a><h3>4.v. All package types</h3>
<a name="update_all"></a><b>4.v. All package types</b>
<br /><br />
<div class="paragraph">
<p>If you have non-English language packs installed you may want to see if a new version has been made available. A number of missing strings may have been added which, though not essential, may be beneficial to users. Please note that at this time not all language packs have been updated so you should be prepared to periodically check for updates.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="convert"></a><h2>5. Conversion from phpBB 2.0.x to phpBB 3.0.x</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="convert"></a><h1>5. Conversion from phpBB 2.0.x to phpBB 3.0.x</h1>
<p>This paragraph explains the steps necessary to convert your existing phpBB2 installation to phpBB3.</p>
<a name="prereq"></a><h3>5.i. Requirements before converting</h3>
<a name="prereq"></a><b>5.i. Requirements before converting</b>
<br /><br />
<p>Before converting we heavily recommend you do a <em>full backup of your database and files</em>! If you are unsure how to achieve this please ask your hosting provider for advice. You basically need to follow the basic instructions given for <a href="#install">New installations</a>. Please <strong>do not</strong> overwrite any old files - install phpBB3 at a different location.</p>
<div class="paragraph">
<p>Before converting we heavily recommend you do a <em>full backup of your database and files</em>! If you are unsure how to achieve this please ask your hosting provider for advice. In order to convert, you need to have a new phpBB3 installation within the same database (but with a different prefix) as your old 2.0.x installation. You basically need to follow the basic instructions given for <a href="#install">New installations</a>. Please <strong>do not</strong> overwrite any old files - install phpBB3 at a different location.</p>
<p>Once you made a backup of everything and also have a brand new phpBB3 installation, you can now begin the conversion.</p>
</div>
<a href="#top">Top</a>
<br /><br />
<p>Note that the conversion requires CREATE and DROP privileges for the phpBB3's database user account.</p>
<a name="conversion"></a><b>5.ii. Converting</b>
<br /><br />
<a name="conversion"></a><h3>5.ii. Converting</h3>
<div class="paragraph">
<p>To begin the conversion visit the install folder of your phpBB3 installation (the same as you have done for installing). Now you will see a new tab <em>Convert</em>. Click this tab.</p>
<p>As with install the conversion is automated. Your previous 2.0.x database tables will not be changed as well as the original 2.0.x files remaining unaltered. The conversion is actually only filling your phpBB3 database tables and copying additional data over to your phpBB3 installation. This has the benefit that if something goes wrong you are able to either re-run the conversion or continue a conversion, while your old board is still accessible. We really recommend you disable your old installation while converting, else you may have inconsistent data after the conversion.</p>
<p>As with install the conversion is automated. Your previous 2.0.x database tables will not be touched as well as the original 2.0.x files remaining untouched. The conversion is actually only filling your phpBB3 database tables and copying additional data over to your phpBB3 installation. This has the benefit that if something goes wrong you are able to either re-run the conversion or continue a conversion, while your old board is still accessible. We really recommend you disable your old installation while converting, else you may have inconsistent data after the conversion.</p>
<p>Please note that this conversion process may take quite some time and depending on your hosting provider this may result in it failing (due to web server or other timeout issues). If this is the case you should ask your provider if they are willing to allow the convert script to temporarily exceed their limits (be nice and they will probably be quite helpful).</p>
<p>Once completed your board should be immediately available. If you encountered errors you should report the problems to our bug tracker or seek help via our forums (see <a href="README.html">README</a> for details).</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="postreq"></a><h3>5.iii. Things to do after conversion</h3>
<a name="postreq"></a><b>5.iii. Things to do after conversion</b>
<br /><br />
<div class="paragraph">
<p>After successful conversion there may be a few items you need to do - apart from checking if the installation is accessible and everything displayed correctly.</p>
@@ -357,46 +461,28 @@
<p>Within the conversion the search index has not been created or transferred. This means after conversion you are not able to find any matches if you want to search for something. We recommend you rebuild your search index within <code>Admin -&gt; Maintenance -&gt; Database -&gt; Search Index</code>.</p>
<p>After verifying the settings in the ACP, you can delete the install directory to enable the board. The board will stay disabled until you do so.</p>
<p>Once you are pleased with your new installation you may want to give it the name of your old installation, changing the directory name. With phpBB3 this is possible without any problems - but you may still want to check your cookie settings within the administration panel, if the cookie path need to be adjusted prior to renaming.</p>
<a name="convprob"></a><h3>5.iv. Common conversion problems</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<p><strong>Broken non-latin characters</strong> The conversion script assumes that the database encoding in the source phpBB2 matches the encoding defined in the <code>lang_main.php</code> file of the default language pack of the source installation. Edit that file to match the database's encoding and re-start the conversion procedure.</p>
<hr />
<p><strong>http 500 / white pages</strong> The conversion is a load-heavy procedure. Restrictions imposed by some server hosting providers can cause problems. The most common causes are: too low values for the php settings <code>memory_limit</code> and <code>max_execution_time</code>. Limits on the allowed CPU time are also a frequent cause for such errors, as are caps on the number of database queries allowed. If you cannot change such settings, then contact your hosting provider or run the conversion procedure on a different computer. The phpBB.com forums are also an excellent location to ask for support.</p>
<a name="postinstall"></a><h1>6. Important (security related) post-Install tasks for all installation methods</h1>
<p><strong>Password conversion</strong> Due to the utf-8 based handling of passwords in phpBB3, it is not always possible to transfer all passwords. For passwords "lost in translation" the easiest workaround is to use the "forgotten password" function.</p>
<div class="paragraph">
<p><strong>Path to your former board</strong> The converter expects the relative path to your old board's files. So, - for instance - if the old board is located at <code>http://www.yourdomain.com/forum</code> and the phpBB3 installation is located at <code>http://www.yourdomain.com/phpBB3</code>, then the correct value would be <code>../forum</code>. Note that the webserver user must be able to access the source installation's files.</p>
<p><strong>Missing images</strong> If your default board language's language pack does not include all images, then some images might be missing in your installation. Always use a complete language pack as default language.</p>
<p><strong>Smilies</strong> During the conversion you might see warnings about image files where the copying failed. That can happen if the old board's smilies have the same file names as those on the new board. Copy those files manually after the conversion, if you want to continue using the old smilies.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="postinstall"></a><h2>6. Important (security related) post-Install tasks for all installation methods</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>Once you have successfully installed phpBB3 you <strong>MUST</strong> ensure you remove the entire install/ directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is removed, phpBB3 will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion, you may also wish to delete the docs/ directories if you wish.</p>
<p>Once you have succssfully installed phpBB3 you <strong>MUST</strong> ensure you remove the entire install/ directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is not removed phpBB3 will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion you may also wish to delete the docs/ directories if you wish.</p>
<p>With these directories deleted you should proceed to the administration panel. Depending on how the installation completed you may have been directed there automatically. If not, login as the administrator you specified during install/conversion and click the <strong>Administration Panel</strong> link at the bottom of any page. Ensure that details specified in <code>Admin -&gt; General</code> are correct!</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="avatars"></a><h3>6.i. Uploadable avatars</h3>
<a name="avatars"></a><b>6.i. Uploadable avatars</b>
<br /><br />
<div class="paragraph">
<p>phpBB3 supports several methods for allowing users to select their own <em>avatar</em> (an avatar is a small image generally unique to a user and displayed just below their username in posts).</p>
@@ -407,42 +493,27 @@
<p>On Windows system you need to ensure the directory is not write-protected and that it has global write permissions (see your servers documentation or contact your hosting provider if you are unsure on how to achieve this).</p>
<p>Please be aware that setting a directories permissions to global write access is a potential security issue. While it is unlikely that anything nasty will occur (such as all the avatars being deleted) there are always people out there to cause trouble. Therefore you should monitor this directory and if possible make regular backups.</p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="disclaimer"></a><h2>7. Copyright and disclaimer</h2>
<a name="disclaimer"></a><h1>7. Copyright and disclaimer</h1>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>This application is opensource software released under the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-license.php">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a href="#top">Top</a>
<!-- END DOCUMENT -->
<div id="page-footer">
<div class="version">&nbsp;</div>
</div>
</div></div>
<div>
<a id="bottom" name="bottom" accesskey="z"></a>
</div>
<div id="footer">&nbsp;<br /><br /></div>
</body>
</html>

View File

@@ -1,102 +1,211 @@
<!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" lang="en" xml:lang="en">
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="en" />
<meta http-equiv="imagetoolbar" content="no" />
<title>phpBB 3.0.x Readme</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="global" />
<meta name="copyright" content="2007 phpBB Group" />
<meta name="keywords" content="" />
<meta name="description" content="phpBB 3.0.x Readme" />
<title>phpBB3 &bull; Readme</title>
<meta name="description" lang="en" content="phpBB 3.0.x Readme" />
<meta name="keywords" lang="en" content="" />
<meta name="author" content="phpBB Group" />
<meta name="copyright" content="phpBB Group" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
<style type="text/css">
<!--
/* The original "subSilver" theme for phpBB2 Created by subBlue design :: http://www.subBlue.com */
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin: 0;
border: 0;
padding: 0;
}
img {
border: 0;
}
p {
font-size: 8pt;
}
hr {
height: 0;
border: solid #D1D7DC 0;
border-top-width: 1px;
}
#title, 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%;
}
h3 {
font: bold 10pt Arial, Helvetica, sans-serif;
text-decoration: none;
line-height: 120%;
}
.paragraph {
margin-left: 20px;
}
/* Structure */
#logo {
background: #fff url(header_bg.jpg) repeat-x top right;
height: 60px;
}
#title {
color: #12749b;
float: right;
margin: 10px 10px 0;
}
#main {
margin-left: 25px;
margin-right: 25px;
}
.good {
color: green;
}
.bad {
color: red;
}
#footer {
margin-left: 75px;
font-size: 70%;
color: #006600;
}
code {
color: #006600;
font-weight: normal;
font-family: 'Courier New', monospace;
border-color: #D1D7DC;
border-width: 1px;
border-style: solid;
background-color: #FAFAFA;
}
.indent p {
padding-left: 20px;
font-size: 90%;
}
/* Anchors */
a {
font-size: 70%;
}
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;
}
p a {
font-size: 100%;
}
.menu {
font-size: 80%;
}
.menu li a {
font-size: 100%;
}
.comment {
color: green;
}
//-->
</style>
</head>
<body id="phpbb" class="section-docs">
<body>
<div id="wrap">
<a id="top" name="top" accesskey="t"></a>
<div id="page-header">
<div class="headerbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div id="logo">
<div id="title">phpBB 3.0.x Readme</div>
<img src="header_left.jpg" alt="phpBB Logo" />
</div>
<div id="doc-description">
<a href="../index.php" id="logo"><img src="site_logo.gif" alt="" /></a>
<h1>phpBB 3.0.x Readme</h1>
<p style="display: none;"><a href="#start_here">Skip</a></p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a name="start_here"></a>
<div id="page-body">
<a name="top"></a><div id="main">
<!-- BEGIN DOCUMENT -->
<p>Thank you for downloading phpBB3. This README will guide through the basics of installation and operation of phpBB3. Please ensure you read this and the accompanying documentation fully <strong>before</strong> proceeding with the installation.</p>
<p>Thank you for downloading phpBB3. This README will guide through the basics of installation and operation of phpBB3. Please ensure you read this and the accompanying documentation fully <strong>before</strong> proceeding with the installation.</p>
<h1>Readme</h1>
<h1>Readme</h1>
<div class="paragraph menu">
<div class="inner"><span class="corners-top"><span></span></span>
<ol class="menu">
<li><a href="#install">Installing phpBB3</a></li>
<li><a href="#run">Running phpBB3</a>
<ol type="i">
<li><a href="#i18n">Internationalisation (i18n)</a></li>
<li><a href="#styles">Styles</a></li>
<li><a href="#mods">Modifications</a></li>
</ol>
</li>
<li><a href="#help">Getting help with phpBB3</a>
<ol type="i">
<li><a href="#docs">Documentation</a></li>
<li><a href="#website">Community Forums</a></li>
<li><a href="#irc">Internet Relay Chat</a></li>
</ol>
</li>
<li><a href="#status">Status of this version</a></li>
<li><a href="#bugs">Reporting Bugs</a>
<ol type="i">
<li><a href="#securitybugs">Security related bugs</a></li>
</ol>
</li>
<li><a href="#curbugs">Overview of current bug list</a></li>
<li><a href="#php">PHP compatibility issues</a></li>
<li><a href="#disclaimer">Disclaimer</a></li>
</ol>
<div class="content">
<hr />
<ol>
<li><a href="#install">Installing phpBB3</a></li>
<li><a href="#run">Running phpBB3</a>
<ol style="list-style-type: lower-roman;">
<li><a href="#i18n">Internationalisation (i18n)</a></li>
<li><a href="#styles">Styles</a></li>
<li><a href="#mods">Modifications</a></li>
</ol>
</li>
<li><a href="#help">Getting help with phpBB3</a>
<ol style="list-style-type: lower-roman;">
<li><a href="#docs">Documentation</a></li>
<li><a href="#website">Community Forums</a></li>
<li><a href="#irc">Internet Relay Chat</a></li>
</ol>
</li>
<li><a href="#status">Status of this version</a></li>
<li><a href="#bugs">Reporting Bugs</a>
<ol style="list-style-type: lower-roman;">
<li><a href="#securitybugs">Security related bugs</a></li>
</ol>
</li>
<li><a href="#curbugs">Overview of current bug list</a></li>
<li><a href="#php">PHP compatibility issues</a></li>
<li><a href="#disclaimer">Disclaimer</a></li>
</ol>
<a name="install"></a><h1>1. Installing phpBB3</h1>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="install"></a><h2>1. Installing phpBB3</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<div class="paragraph">
<p>Installation, update and conversion instructions can be found in the <a href="INSTALL.html">INSTALL</a> document contained in this distribution. If you are intending to convert from a previous phpBB 2.0.x installation we highly recommend you backup any existing data before proceeding!</p>
<p>Users of phpBB3 Beta versions cannot directly update.</p>
<p>Please note that we won't support the following installation types:</p>
<ul>
<ul class="menu">
<li>Updates from phpBB3 Beta versions to phpBB3 RC1 and higher</li>
<li>Conversions from phpBB 2.0.x to phpBB3 Beta versions</li>
<li>phpBB3 Beta installations</li>
@@ -104,31 +213,25 @@
<p>We give support for the following installation types:</p>
<ul>
<li>Updates from phpBB3 RC1 to the latest version</li>
<li>Conversions from phpBB 2.0.x to the latest version</li>
<li>New installations of phpBB3 - always only the latest released version</li>
<ul class="menu">
<li>Updates from phpBB3 RC1 to any higher version</li>
<li>Conversions from phpBB 2.0.x to phpBB3 RC1 and higher</li>
<li>New installations of phpBB3 RC1 and higher</li>
</ul>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="run"></a><h2>2. Running phpBB3</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="run"></a><h1>2. Running phpBB3</h1>
<p>Once installed phpBB is easily managed by both admin and moderator control panels. If you need help or advice with phpBB please see <a href="#help">Section 3</a> below.</p>
<a name="i18n"></a><h3>2.i. Internationalisation (i18n)</h3>
<a name="i18n"></a><b>2.i. Internationalisation (i18n)</b>
<br /><br />
<div class="paragraph">
<p>A number of language packs and style localisations are available. You can find them on our official download page:</p>
@@ -136,11 +239,17 @@
<p>This is the <em>official</em> location for all supported language sets. If you download a package from a 3rd party site you do so with the understanding that we cannot offer support. So please, do not ask for help in these cases!</p>
<p>Installation of these packages is straightforward, simply download the required language pack and unarchive it into the <samp>languages/</samp> folder. Please ensure you retain the directory structure when doing this! Once uploaded go to the <code>Admin-&gt;System-&gt;Language Packs</code> and install the now appeared new language pack. To install the style imageset you should download the imageset for your language and unarchive the file/s into the relevant imageset directory (styles/prosilver/imageset or styles/subsilver2/imageset), again you must retain the directory structure. Once installed the imageset will become immediately available.</p>
<p>Installation of these packages is straightforward, simply download the required language pack and unarchive it into the <samp>languages/</samp> folder. Please ensure you retain the directory structure when doing this! Once uploaded go to the <code>Admin-&gt;System-&gt;Language Packs</code> and install the now appeared new language pack. To install the style image packs you should unarchive the file/s into the styles/subsilver2/imageset directory, again you must retain the directory structure. Once installed the languages will become immediately available.</p>
<p>If your language is not available please visit our forums where you will find a topic listing translations currently available or in preparation. This topic also gives you information should you wish to volunteer to translate a language not currently listed.</p>
<p>If your language is not available please visit our forums where you will find a topic listing translations currently available or in preparation. This topic also gives you information should you wish to volunteer to translate a language not currently listed</p>
<a name="styles"></a><h3>2.ii. Styles</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="styles"></a><b>2.ii. Styles</b>
<br /><br />
<div class="paragraph">
<p>Although phpBB Group are rather proud of the included styles we realise that it may not be to everyones tastes. Therefore phpBB3 allows styles to be switched with relative ease. Firstly you need to locate and download a style you like. We maintain such a site at</p>
@@ -150,9 +259,13 @@
<p>Once you have downloaded a style the usual next step is to unarchive (or upload the unarchived contents of) the package into your <samp>styles/</samp> directory. You then need to visit <code>Administration -&gt; Styles</code>, you should see the new style available, click install and it will become available for all your users.</p>
<p><strong>Please note</strong> that if you create your own style or modify existing ones, please remember to enable the &quot;Recompile stale style components&quot; setting within the <code>Admin-&gt;General-&gt;Load Settings</code> screen. This setting allows the cache to detect changes made to the style and automatically refresh it. If this setting is disabled, you will not see your changes taking effect.</p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="mods"></a><h3>2.iii. Modifications</h3>
<a name="mods"></a><b>2.iii. Modifications</b>
<br /><br />
<div class="paragraph">
<p>Although not officially supported by phpBB Group, phpBB has a thriving modification scene. These third party modifications to the standard phpBB extend its capabilities still further and can be found at:</p>
@@ -162,25 +275,19 @@
<p>Also remember that any modifications which modify the database in any way may render upgrading your forum to future versions more difficult unless we state otherwise. With all this said many users have and continue to utilise many of the mods already available with great success.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<a href="#top">Top</a>
<br /><br />
<hr />
<hr />
<a name="help"></a><h2>3. Getting help with phpBB3</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="help"></a><h1>3. Getting help with phpBB3</h1>
<p>phpBB3 can seem a little daunting to new users in places, particularly with regard the permission system. The first thing you should do is check the <a href="FAQ.html">FAQ</a> which covers a few basic getting started questions. If you need additional help there are several places you should look.</p>
<a name="docs"></a><h3>3.i. phpBB3 Documentation</h3>
<a name="docs"></a><b>3.i. phpBB3 Documentation</b>
<br /><br />
<div class="paragraph">
<p>A comprehensive documentation is now available online and can be accessed from the following location:</p>
@@ -188,7 +295,14 @@
<p>This covers everything from installation through setting permissions and managing users.</p>
<a name="website"></a><h3>3.ii. Community Forums</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="website"></a><b>3.ii. Community Forums</b>
<br /><br />
<div class="paragraph">
<p>phpBB Group maintains a thriving community where a number of people have generously decided to donate their time to help support users. This site can be found at:</p>
@@ -196,57 +310,48 @@
<p>If you do seek help via our forums please be sure to do a Search before posting. This may well save both you and us time and allow the developer, moderator and support groups to spend more time responding to people with unknown issues and problems. Please also remember that phpBB is an entirely volunteer effort, no one receives any compensation for the time they give, this includes moderators as well as developers. So please be respectful and mindful when awaiting responses.</p>
<a name="irc"></a><h3>3.iii Internet Relay Chat</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="irc"></a><b>3.iii Internet Relay Chat</b>
<br /><br />
<div class="paragraph">
<p>Another place you may find help is our IRC channel. This operates on the Freenode IRC network, <em>irc.freenode.net</em> and the channel is <em>#phpbb</em> and can be accessed by any good IRC client such as mIRC, XChat, etc. Again, please do not abuse this service and be respectful of other users.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<a href="#top">Top</a>
<br /><br />
<hr />
<hr />
<a name="status"></a><h2>4. Status of this version</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="status"></a><h1>4. Status of this version</h1>
<div class="paragraph">
<p>This is the third stable release of phpBB. The 3.0.x line is essentially feature frozen, with only point releases seeing fixes for bugs and security issues, though feature alterations and minor feature additions may be done if deemed absolutely required. Our next major release will be phpBB 3.2 and the planning phase has begun (the unstable development version is 3.1). Please do not post questions asking when 3.2 will be available, no release date has been set.</p>
<p>For those interested in the development of phpBB should keep an eye on the community forums to see how things are progressing:</p>
<p><a href="http://area51.phpbb.com/phpBB/">http://area51.phpbb.com/phpBB/</a></p>
<p><a href="http://area51.phpbb.com/">http://area51.phpbb.com/phpBB/</a></p>
<p>Please note that this forum should <strong>NOT</strong> be used to obtain support for or ask questions about phpBB 2.0.x or phpBB 3.0.x, the main community forums are the place for this. Any such posts will be locked and go unanswered.</p>
</div>
<a href="#top">Top</a>
<br /><br />
</div>
<hr />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="bugs"></a><h2>5. Reporting Bugs</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="bugs"></a><h1>5. Reporting Bugs</h1>
<div class="paragraph">
<p>The phpBB Group uses a bug tracking system to store, list and manage all reported bugs, it can be found at the location listed below. Please <strong>DO NOT</strong> post bug reports to our forums, they will be locked. In addition please <strong>DO NOT</strong> use the bug tracker for support requests. Posting such a request will only see you directed to the support forums (while taking time away from working on real bugs).</p>
<p><a href="http://www.phpbb.com/bugs/">http://www.phpbb.com/bugs/</a></p>
<p>While we very much appreciate receiving bug reports (the more reports the more stable phpBB will be) we ask you carry out a few steps before adding new entries:</p>
<ul>
<ul class="menu">
<li>Firstly determine if your bug is reproduceable, how to determine this depends on the bug in question. Only if the bug is reproduceable it is likely to be a problem with phpBB3 (or in some way connected). If something cannot be reproduced it may turn out to have been your hosting provider working on something, a user doing something silly, etc. Bug reports for non-reproduceable events can slow down our attempts to fix real, reproduceable issues<br /><br /></li>
<li>Next please read or search through the existing bug reports to see if <em>your</em> bug (or one very similar to it) is already listed. If it is please add to that existing bug rather than creating a new duplicate entry (all this does is slow us down).<br /><br /></li>
<li>Check the forums (use search!) to see if people have discussed anything that sounds similar to what you are seeing. However, as noted above please <strong>DO NOT</strong> post your particular bug to the forum unless it's non-reproduceable or you are sure it's related to something you have done rather phpBB3<br /><br /></li>
@@ -255,10 +360,10 @@
<p>If you do post a new bug (i.e. one that isn't already listed in the bug tracker) firstly make sure you have logged in (your username and password are the same as for the community forums) then please include the following details:</p>
<ul>
<li>Your server type/version, e.g. Apache 1.3.28, IIS 4, Sambar, etc.</li>
<li>PHP version and mode of operation, e.g. PHP 5.1.1 as a module, PHP 4.4.4 running as CGI, etc.</li>
<li>DB type/version, e.g. MySQL 4.0.1, PostgreSQL 7.3.2, MSSQL Server 2000 SP1, etc.</li>
<ul class="menu">
<li>Your server type/version, eg. Apache 1.3.28, IIS 4, Sambar, etc.</li>
<li>PHP version and mode of operation, eg. PHP 5.1.1 as a module, PHP 4.4.4 running as CGI, etc.</li>
<li>DB type/version, eg. MySQL 4.0.1, PostgreSQL 7.3.2, MSSQL Server 2000 SP1, etc.</li>
</ul>
<p>The relevant database type/version is listed within the administration control panel</p>
@@ -267,97 +372,76 @@
<p>Once a bug has been submitted you will be emailed any follow up comments added to it. <strong>Please</strong> if you are requested to supply additional information, do so! It is frustrating for us to receive bug reports, ask for additional information but get nothing. In these cases we have a policy of closing the bug, which may leave a very real problem in place. Obviously we would rather not have this situation arise.</p>
<a name="securitybugs"></a><h3>5.i. Security related bugs</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="securitybugs"></a><b>5.i. Security related bugs</b>
<br /><br />
<div class="paragraph">
<p>If you find a potential security related vulnerability in phpBB please <strong>DO NOT</strong> post it to the bug tracker, public forums, etc.! Doing so may allow unscrupulous users to take advantage of it before we have time to put a fix in place. All security related bugs should be sent to our security tracker:</p>
<p><a href="http://www.phpbb.com/security/">http://www.phpbb.com/security/</a></p>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="curbugs"></a><h2>6. Overview of current bug list</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="curbugs"></a><h1>6. Overview of current bug list</h1>
<div class="paragraph">
<p>This list is not complete but does represent those bugs which may effect users on a wider scale. Other bugs listed in the tracker have typically been shown to be limited to certain setups or methods of installation, updating and/or conversions.</p>
<ul>
<ul class="menu">
<li>By default cannot post very large messages with MSSQL (this can be configured within MSSQL)</li>
<li>Conversions may fail to complete on large boards under some hosts</li>
<li>Updates may fail to complete on large update sets under some hosts</li>
<li>Smilies placed directly after bbcode tags will not get parsed. Smilies always need to be separated by spaces.</li>
</ul>
</div>
</div>
<a href="#top">Top</a>
<br /><br />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="php"></a><h2>7. PHP compatibility issues</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="php"></a><h1>7. PHP compatibility issues</h1>
<div class="paragraph">
<p>phpBB is no longer supported on PHP3 due to several compatibility issues and we recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 4.3.3.</p>
<p>Please remember that running any application on a developmental version of PHP can lead to strange/unexpected results which may appear to be bugs in the application (which may not be true). Therefore we recommend you upgrade to the newest stable version of PHP before running phpBB3. If you are running a developmental version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
<p>This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQL 3.23, 4.x, 5.x, MSSQL Server 2000, PostgreSQL 7.x, Oracle 8, SQLite and Firebird. Versions of PHP used range from 4.3.3 to 6.0.0-dev without problem. </p>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="phpsec"></a><h3>7.i. Notice on PHP security issues</h3>
<a name="phpsec"></a><b>7.i. Notice on PHP security issues</b>
<br /><br />
<div class="paragraph">
<p>Currently there are no known issues regarding PHP security.</p>
</div>
<a href="#top">Top</a>
<br /><br />
</div>
<hr />
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="disclaimer"></a><h2>8. Copyright and disclaimer</h2>
<a name="disclaimer"></a><h1>8. Copyright and disclaimer</h1>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>This application is opensource software released under the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-license.php">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<a href="#top">Top</a>
<!-- END DOCUMENT -->
<div id="page-footer">
<div class="version">&nbsp;</div>
</div>
</div></div>
<div>
<a id="bottom" name="bottom" accesskey="z"></a>
</div>
<div id="footer">&nbsp;<br /><br /></div>
</body>
</html>

View File

@@ -1,60 +1,192 @@
<!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" lang="en" xml:lang="en">
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="en" />
<meta http-equiv="imagetoolbar" content="no" />
<title>Auth API</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="global" />
<meta name="copyright" content="2007 phpBB Group" />
<meta name="keywords" content="" />
<meta name="description" content="This is an explanation of how to use the phpBB auth/acl API" />
<title>phpBB3 &bull; Auth API</title>
<meta name="description" lang="en" content="Olympus coding guidelines document" />
<meta name="keywords" lang="en" content="" />
<meta name="author" content="phpBB Group" />
<meta name="copyright" content="phpBB Group" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<link rel="shortcut icon" href="" />
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
<style type="text/css">
<!--
/*
The original "subSilver" theme for phpBB2
Created by subBlue design :: http://www.subBlue.com
*/
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin: 0px;
border: 0px;
padding: 0px;
}
img {
border: 0;
}
p {
font-size: 8pt;
}
hr {
height: 0px;
border: solid #D1D7DC 0px;
border-top-width: 1px;
}
#title, 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%;
}
h3 {
font: bold 10pt Arial, Helvetica, sans-serif;
text-decoration: none;
line-height: 120%;
}
.paragraph {
margin-left: 20px;
}
/*
Structure
*/
#logo {
background: #fff url(header_bg.jpg) repeat-x top right;
height: 60px;
}
#title {
color: #12749b;
float: right;
margin: 10px 10px 0;
}
#main {
margin-left: 25px;
margin-right: 25px;
}
.good {
color: green;
}
.bad {
color: red;
}
#footer {
margin-left: 75px;
font-size: 70%;
color: #006600;
}
code {
color: #006600;
font-weight: normal;
font-family: 'Courier New', monospace;
border-color: #D1D7DC;
border-width: 1px;
border-style: solid;
background-color: #FAFAFA;
}
.indent p {
padding-left: 20px;
font-size: 90%;
}
/*
Anchors
*/
a {
font-size: 70%;
}
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;
}
p a {
font-size: 100%;
}
.menu {
font-size: 80%;
}
.menu li a {
font-size: 100%;
}
//-->
</style>
<!--[if IE]>
<style type="text/css">
body {
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;
}
</style>
<![endif]-->
</head>
<body id="phpbb" class="section-docs">
<body>
<div id="wrap">
<a id="top" name="top" accesskey="t"></a>
<div id="page-header">
<div class="headerbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div id="logo">
<div id="title">Auth API</div>
<a href="index.php"><img src="header_left.jpg" alt="phpBB Logo" /></a>
</div>
<div id="doc-description">
<a href="../index.php" id="logo"><img src="site_logo.gif" alt="" /></a>
<h1>Auth API</h1>
<p>This is an explanation of how to use the phpBB auth/acl API</p>
<p style="display: none;"><a href="#start_here">Skip</a></p>
</div>
<a name="top"></a><div id="main">
<span class="corners-bottom"><span></span></span></div>
</div>
</div>
<p>This is an explanation of how to use the phpBB auth/acl API. This document is (c) 2006 phpBB Group, copying or redistribution is not allowed without permission.</p>
<a name="start_here"></a>
<h1>Auth API</h1>
<div id="page-body">
<!-- BEGIN DOCUMENT -->
<p>This is an explanation of how to use the phpBB auth/acl API.</p>
<h1>Auth API</h1>
<div class="paragraph menu">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<ol>
<ol class="menu">
<li><a href="#intro">Introduction</a></li>
<li><a href="#methods">Methods</a>
<ol style="list-style-type: lower-roman;">
<ol type="i">
<li><a href="#acl">acl</a></li>
<li><a href="#acl_get">acl_get</a></li>
<li><a href="#acl_gets">acl_gets</a></li>
@@ -64,72 +196,64 @@
</ol>
</li>
<li><a href="#admin_related">Admin related functions</a></li>
<li><a href="#disclaimer">Copyright and disclaimer</a></li>
</ol>
</div>
<hr />
<span class="corners-bottom"><span></span></span></div>
</div>
<hr />
<a name="intro"></a><h2>1. Introduction</h2>
<a name="intro"></a><h1>1. Introduction</h1>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<h4>What is it?</h4>
<h3>What is it?</h3>
<p>The <code>auth</code> class contains methods related to authorisation users to access various board functions, e.g. posting, viewing, replying, logging in (and out), etc. If you need to check whether a user can carry out a task or handle user login/logouts this class is required.</p>
<h4>Initialisation</h4>
<h3>Initialisation</h3>
<p>To use any methods contained with the <code>auth</code> class it first needs to be instantiated. This is best achieved early in the execution of the script in the following manner:</p>
<div class="codebox"><pre>
<blockquote><pre>
$auth = new auth();
</pre></div>
</pre></blockquote>
<p>Once an instance of the class has been created you are free to call the various methods it contains. Please note that should you wish to use the <code>auth_admin</code> methods you will need to instantiate this separately but in the same way.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<a href="#top">Top</a>
<br /><br />
<hr />
<hr />
<a name="methods"></a><h2>2. Methods</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<a name="methods"></a><h1>2. Methods</h1>
<p>Following are the methods you are able to use.</p>
<a name="acl"></a><h3>2.i. acl</h3>
<a name="acl"></a><b>2.i. acl</b>
<br /><br />
<div class="paragraph">
<p>The <code>acl</code> method is the initialisation routine for all the acl functions. If you intend calling any acl method you must first call this. The method takes as its one and only required parameter an associative array containing user information as stored in the database. This array must contain at least the following information; user_id, user_permissions and user_type. It is called in the following way:</p>
<div class="codebox"><pre>
<blockquote><pre>
$auth-&gt;acl(<code>userdata</code>);
</pre></div>
</pre></blockquote>
<p>Where userdata is the array containing the aforementioned data.</p>
<a name="acl_get"></a><h3>2.ii. acl_get</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="acl_get"></a><b>2.ii. acl_get</b>
<br /><br />
<div class="paragraph">
<p>This method is the primary way of determining what a user can and cannot do for a given option globally or in a given forum. The method should be called in the following way:</p>
<div class="codebox"><pre>
<blockquote><pre>
$result = $auth-&gt;acl_get(<code>option</code>[, <code>forum</code>]);
</pre></div>
</pre></blockquote>
<p>Where option is a string representing the required option, e.g. 'f_list', 'm_edit', 'a_adduser', etc. By adding a ! in front of the option, e.g. '!f_list' the result of this method will be negated. The optional forum term is the integer forum_id.</p>
@@ -139,114 +263,109 @@ $result = $auth-&gt;acl_get(<code>option</code>[, <code>forum</code>]);
<p>There are some special options or <em>flags</em> which are used as prefixes for other options, e.g. 'f_' or 'm_'. These flags will automatically be set to a positive integer if the user has one or more permissions with the given prefix. A local setting will result in the flag being set only locally (so it will require a forum id to retrieve). If a user has one or more global permissions with the prefix acl_get will return a positive integer regardless of the forum id.</p>
<a name="acl_gets"></a><h3>2.iii. acl_gets</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="acl_gets"></a><b>2.iii. acl_gets</b>
<br /><br />
<div class="paragraph">
<p>This method is funtionally similar to <code>acl_get</code> in that it returns information on whether a user can or cannot carry out a given task. The difference here is the ability to test several different options in one go. This may be useful for testing whether a user is a moderator or an admin in one call. Rather than having to call and check <code>acl_get</code> twice.</p>
<p>The method should be called thus:</p>
<div class="codebox"><pre>
<blockquote><pre>
$result = $auth-&gt;acl_gets(<code>option1</code>[, <code>option2</code>, ..., <code>optionN</code>, <code>forum</code>]);
</pre></div>
</pre></blockquote>
<p>As with the <code>acl_get</code> method the options are strings representing the required permissions to check. The forum again is an integer representing a given forum_id.</p>
<p>The method will return a positive integer if <code>acl_get</code> for one of the options evaluates to a positive integer (combines permissions with OR).</p>
<a name="acl_getf"></a><h3>2.iv. acl_getf</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="acl_getf"></a><b>2.iv. acl_getf</b>
<br /><br />
<div class="paragraph">
<p>This method is used to find out in which forums a user is allowed to carry out an operation or to find out in which forums he is not allowed to carry out an operation. The method should be called in the following way:</p>
<div class="codebox"><pre>
<blockquote><pre>
$result = $auth-&gt;acl_getf(<code>option</code>[, <code>clean</code>]);
</pre></div>
</pre></blockquote>
<p>Just like in the <code>acl_get</code> method the option is a string specifying the permission which has to be checked (negation using ! is allowed). The second parameter is a boolean. If it is set to false this method returns all forums with either zero or a positive integer. If it is set to true only those forums with a positive integer as the result will be returned.</p>
<p>The method returns an associative array of the form:</p>
<div class="codebox"><pre>
<blockquote><pre>
array(<em>forum_id1</em> =&gt; array(<em>option</em> =&gt; <em>integer</em>), <em>forum_id2</em> =&gt; ...)
</pre></div>
</pre></blockquote>
<p>Where option is the option passed to the method and integer is either zero or a positive integer and the same <code>acl_get(option, forum_id)</code> would return.</p>
<a name="acl_getf_global"></a><h3>2.v. acl_getf_global</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="acl_getf_global"></a><b>2.v. acl_getf_global</b>
<br /><br />
<div class="paragraph">
<p>This method is used to find out whether a user has a permission in at least one forum or globally. This method is similar to checking whether <code>acl_getf(option, true)</code> returned one or more forums but it's faster. It should be called in the following way:</p>
<div class="codebox"><pre>
<blockquote><pre>
$result = acl_getf_global(<code>option</code>)
</pre></div>
</pre></blockquote>
<p>As with the previous methods option is a string specifying the permission which has to be checked.</p>
<p>This method returns either zero or a positive integer.</p>
<a name="acl_cache"></a><h3>2.vi. acl_cache</h3>
</div>
<a href="#top">Top</a>
<br /><br />
<a name="acl_cache"></a><b>2.vi. acl_cache</b>
<br /><br />
<div class="paragraph">
<p>This should be considered a private method and not be called externally. It handles the generation of the user_permissions data from the basic user and group authorisation data. When necessary this method is called automatically by <code>acl</code>.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<a href="#top">Top</a>
<br /><br />
<hr />
<hr />
<a name="admin_related"></a><h2>3. Admin related functions</h2>
<a name="admin_related"></a><h1>3. Admin related functions</h1>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>A number of additional methods are available related to <code>auth</code>. These handle more basic functions such as adding user and group permissions, new options and clearing the user cache. These methods are contained within a separate class, <code>auth_admin</code>. This can be found in <code>includes/acp/auth.php</code>.</p>
<p>To use any methods this class contains it first needs to be instantiated separately from <code>auth</code>. This is achieved in the same way as <code>auth</code>:</p>
<div class="codebox"><pre>
<blockquote><pre>
$auth_admin = new auth_admin();
</pre></div>
</pre></blockquote>
<p>This instance gives you access to both the methods of this specific class and that of <code>auth</code>.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<a href="#top">Top</a>
<hr />
</div>
<a name="disclaimer"></a><h2>4. Copyright and disclaimer</h2>
<div class="paragraph">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-license.php">GPL</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
</div>
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- END DOCUMENT -->
<div id="page-footer">
<div class="version"> $Id$ </div>
</div>
</div></div>
<div>
<a id="bottom" name="bottom" accesskey="z"></a>
<div id="footer"> $Id$
<br /><br />
</div>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More