aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/adm/pagestart.php87
-rw-r--r--phpBB/common.php2
-rw-r--r--phpBB/groupcp.php1197
-rw-r--r--phpBB/includes/functions.php142
-rw-r--r--phpBB/includes/session.php88
-rw-r--r--phpBB/includes/ucp/ucp_groups.php126
-rw-r--r--phpBB/includes/ucp/ucp_prefs.php178
-rw-r--r--phpBB/includes/ucp/ucp_profile.php219
-rw-r--r--phpBB/install/schemas/mysql_schema.sql3
-rw-r--r--phpBB/language/en/admin.php1712
-rw-r--r--phpBB/language/en/common.php5
-rw-r--r--phpBB/language/en/groups.php (renamed from phpBB/language/en/gcp.php)12
-rw-r--r--phpBB/language/en/ucp.php21
-rw-r--r--phpBB/mcp.php28
-rw-r--r--phpBB/memberlist.php357
-rw-r--r--phpBB/posting.php191
-rw-r--r--phpBB/search.php67
-rw-r--r--phpBB/styles/subSilver/template/login_body.html14
-rw-r--r--phpBB/styles/subSilver/template/memberlist_body.html6
-rw-r--r--phpBB/styles/subSilver/template/memberlist_search.html2
-rw-r--r--phpBB/styles/subSilver/template/memberlist_view.html2
-rw-r--r--phpBB/styles/subSilver/template/overall_header.html4
-rw-r--r--phpBB/styles/subSilver/theme/stylesheet.css7
-rwxr-xr-xphpBB/ucp.php15
-rw-r--r--phpBB/viewforum.php2
-rw-r--r--phpBB/viewonline.php34
-rw-r--r--phpBB/viewtopic.php2
27 files changed, 1827 insertions, 2696 deletions
diff --git a/phpBB/adm/pagestart.php b/phpBB/adm/pagestart.php
index b74a01bbf3..32a72d14e7 100644
--- a/phpBB/adm/pagestart.php
+++ b/phpBB/adm/pagestart.php
@@ -11,27 +11,40 @@
//
// -------------------------------------------------------------
-if (!defined('IN_PHPBB') || !isset($phpbb_root_path))
+if (!defined('IN_PHPBB'))
{
- die('Hacking attempt');
+ exit;
}
define('NEED_SID', true);
+define('IN_ADMIN', true);
require($phpbb_root_path . 'common.'.$phpEx);
require($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
// Start session management
$user->start();
+$auth->acl($user->data);
+$user->setup('admin');
+// End session management
// Did user forget to login? Give 'em a chance to here ...
if ($user->data['user_id'] == ANONYMOUS)
{
- login_box("./adm/index.$phpEx$SID", '', $user->lang['LOGIN_ADMIN']);
+ login_box('', $user->lang['LOGIN_ADMIN'], $user->lang['LOGIN_ADMIN_SUCCESS'], true);
}
-$auth->acl($user->data);
-$user->setup('admin');
-// End session management
+// Have they authenticated (again) as an admin for this session?
+if (!$user->data['session_admin'])
+{
+ login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS'], true, false);
+}
+
+// Is user any type of admin? No, then stop here, each script needs to
+// check specific permissions but this is a catchall
+if (!$auth->acl_get('a_'))
+{
+ trigger_error($user->lang['NO_ADMIN']);
+}
// Some oft used variables
$safe_mode = (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') ? true : false;
@@ -257,6 +270,68 @@ function adm_page_confirm($title, $message)
}
+
+function build_cfg_template($tpl_type, $config_key, $options = '')
+{
+ global $new, $user;
+
+ $tpl = '';
+ $name = 'config[' . $config_key . ']';
+
+ switch ($tpl_type[0])
+ {
+ case 'text':
+ case 'password':
+ $size = (int) $tpl_type[1];
+ $maxlength = (int) $tpl_type[2];
+
+ $tpl = '<input class="post" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '" />';
+ break;
+
+ case 'dimension':
+ $size = (int) $tpl_type[1];
+ $maxlength = (int) $tpl_type[2];
+
+ $tpl = '<input class="post" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" /> x <input class="post" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" />';
+ break;
+
+ case 'textarea':
+ $rows = (int) $tpl_type[1];
+ $cols = (int) $tpl_type[2];
+
+ $tpl = '<textarea name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '">' . $new[$config_key] . '</textarea>';
+ break;
+
+ case 'radio':
+ $key_yes = ($new[$config_key]) ? ' checked="checked"' : '';
+ $key_no = (!$new[$config_key]) ? ' checked="checked"' : '';
+
+ $tpl_type_cond = explode('_', $tpl_type[1]);
+ $type_no = ($tpl_type_cond[0] == 'disabled' || $tpl_type_cond[0] == 'enabled') ? false : true;
+
+ $tpl_no = '<input type="radio" name="' . $name . '" value="0"' . $key_no . ' />' . (($type_no) ? $user->lang['NO'] : $user->lang['DISABLED']);
+ $tpl_yes = '<input type="radio" name="' . $name . '" value="1"' . $key_yes . ' />' . (($type_no) ? $user->lang['YES'] : $user->lang['ENABLED']);
+
+ $tpl = ($tpl_type_cond[0] == 'yes' || $tpl_type_cond[0] == 'enabled') ? $tpl_yes . '&nbsp;&nbsp;' . $tpl_no : $tpl_no . '&nbsp;&nbsp;' . $tpl_yes;
+ break;
+
+ case 'select':
+ eval('$s_options = ' . str_replace('{VALUE}', $new[$config_key], $options) . ';');
+ $tpl = '<select name="' . $name . '">' . $s_options . '</select>';
+ break;
+
+ case 'custom':
+ eval('$tpl = ' . str_replace('{VALUE}', $new[$config_key], $options) . ';');
+ break;
+
+ default:
+ break;
+ }
+
+ return $tpl;
+}
+
+
// General ACP module class
class module
{
diff --git a/phpBB/common.php b/phpBB/common.php
index dfea399d72..13ce9e45e2 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -13,7 +13,7 @@
if (!defined('IN_PHPBB'))
{
- die('Hacking attempt');
+ exit;
}
$starttime = explode(' ', microtime());
diff --git a/phpBB/groupcp.php b/phpBB/groupcp.php
deleted file mode 100644
index de55a8587f..0000000000
--- a/phpBB/groupcp.php
+++ /dev/null
@@ -1,1197 +0,0 @@
-<?php
-// -------------------------------------------------------------
-//
-// $Id$
-//
-// FILENAME : groupcp.php
-// STARTED : Sat Feb 13, 2001
-// COPYRIGHT : © 2001, 2003 phpBB Group
-// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
-// -------------------------------------------------------------
-
-define('IN_PHPBB', true);
-$phpbb_root_path = './';
-$phpEx = substr(strrchr(__FILE__, '.'), 1);
-include($phpbb_root_path . 'common.'.$phpEx);
-
-// Start session management
-$user->start();
-$auth->acl($user->data);
-$user->setup('gcp');
-
-$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($config['script_path']));
-$script_name = ($script_name != '') ? $script_name . '/groupcp.'.$phpEx : 'groupcp.'.$phpEx;
-$server_name = trim($config['server_name']);
-$server_protocol = ($config['cookie_secure']) ? 'https://' : 'http://';
-$server_port = ($config['server_port'] <> 80) ? ':' . trim($config['server_port']) . '/' : '/';
-$server_url = $server_protocol . $server_name . $server_port . $script_name;
-
-$group_id = (isset($_REQUEST['g'])) ? intval($_REQUEST['g']) : false;
-$mode = (isset($_REQUEST['mode'])) ? $_REQUEST['mode'] : false;
-$confirm = (!empty($_POST['confirm'])) ? TRUE : 0;
-$cancel = (!empty($_POST['cancel'])) ? TRUE : 0;
-$start = (isset($_GET['start'])) ? intval($_GET['start']) : 0;
-
-//
-// Default var values
-//
-$is_moderator = FALSE;
-
-if ( isset($_POST['groupstatus']) && $group_id )
-{
- if ( !$user->data['session_logged_in'] )
- {
- redirect("login.$phpEx$SIDredirect=groupcp.$phpEx&g=$group_id");
- }
-
- $sql = "SELECT group_moderator
- FROM " . GROUPS_TABLE . "
- WHERE group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
- }
-
- $row = $db->sql_fetchrow($result);
-
- if ( $row['group_moderator'] != $user->data['user_id'] && $user->data['user_level'] != ADMIN )
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['Not_group_moderator'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
-
- $sql = "UPDATE " . GROUPS_TABLE . "
- SET group_type = " . intval($_POST['group_type']) . "
- WHERE group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
- }
-
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">')
- );
-
- $message = $lang['Group_type_updated'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
-
-}
-else if ( isset($_POST['joingroup']) && $group_id )
-{
- //
- // First, joining a group
- // If the user isn't logged in redirect them to login
- //
- if ( !$user->data['session_logged_in'] )
- {
- redirect("login.$phpEx$SID&redirect=groupcp.$phpEx&g=$group_id");
- }
-
- $sql = "SELECT ug.user_id, g.group_type
- FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
- WHERE g.group_id = $group_id
- AND g.group_type <> " . GROUP_HIDDEN . "
- AND ug.group_id = g.group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $row = $db->sql_fetchrow($result) )
- {
- if ( $row['group_type'] == GROUP_OPEN )
- {
- do
- {
- if ( $user->data['user_id'] == $row['user_id'] )
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['Already_member_group'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
- } while ( $row = $db->sql_fetchrow($result) );
- }
- else
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['This_closed_group'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
- }
- else
- {
- message_die(MESSAGE, $lang['No_groups_exist']);
- }
-
- $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
- VALUES ($group_id, " . $user->data['user_id'] . ", 1)";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error("Error inserting user group subscription", "", __LINE__, __FILE__, $sql);
- }
-
- $sql = "SELECT u.user_email, u.username, u.user_lang, g.group_name
- FROM ".USERS_TABLE . " u, " . GROUPS_TABLE . " g
- WHERE u.user_id = g.group_moderator
- AND g.group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error("Error getting group moderator data", "", __LINE__, __FILE__, $sql);
- }
-
- $moderator = $db->sql_fetchrow($result);
-
- include($phpbb_root_path . 'includes/emailer.'.$phpEx);
- $emailer = new emailer($config['smtp_delivery']);
-
- $email_headers = 'From: ' . $config['board_email'] . "\nReturn-Path: " . $config['board_email'] . "\r\n";
-
- $emailer->use_template('group_request', $moderator['user_lang']);
- $emailer->email_address($moderator['user_email']);
- $emailer->set_subject();//$lang['Group_request']
- $emailer->extra_headers($email_headers);
-
- $emailer->assign_vars(array(
- 'SITENAME' => $config['sitename'],
- 'GROUP_MODERATOR' => $moderator['username'],
- 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
-
- 'U_GROUPCP' => $server_url . '?' . 'g' . "=$group_id&validate=true")
- );
- $emailer->send();
- $emailer->reset();
-
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['Group_joined'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
-}
-else if ( isset($_POST['unsub']) || isset($_POST['unsubpending']) && $group_id )
-{
- //
- // Second, unsubscribing from a group
- // Check for confirmation of unsub.
- //
- if ( $cancel )
- {
- redirect("groupcp.$phpEx$SID");
- }
- elseif ( !$user->data['session_logged_in'] )
- {
- redirect("login.$phpEx$SID&redirect=groupcp.$phpEx&g=$group_id");
- }
-
- if ( $confirm )
- {
- $sql = "DELETE FROM " . USER_GROUP_TABLE . "
- WHERE user_id = " . $user->data['user_id'] . "
- AND group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not delete group memebership data', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $user->data['user_level'] != ADMIN && $user->data['user_level'] == MOD )
- {
- $sql = "SELECT COUNT(auth_mod) AS is_auth_mod
- FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug
- WHERE ug.user_id = " . $user->data['user_id'] . "
- AND aa.group_id = ug.group_id
- AND aa.auth_mod = 1";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not obtain moderator status', '', __LINE__, __FILE__, $sql);
- }
-
- if ( !($row = $db->sql_fetchrow($result)) )
- {
- $sql = "UPDATE " . USERS_TABLE . "
- SET user_level = " . USER . "
- WHERE user_id = " . $user->data['user_id'];
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not update user level', '', __LINE__, __FILE__, $sql);
- }
- }
- }
-
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['Usub_success'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
- else
- {
- $unsub_msg = ( isset($_POST['unsub']) ) ? $lang['Confirm_unsub'] : $lang['Confirm_unsub_pending'];
-
- $s_hidden_fields = '<input type="hidden" name="' . 'g' . '" value="' . $group_id . '" /><input type="hidden" name="unsub" value="1" />';
-
- $page_title = $lang['Group_Control_Panel'];
-
- $template->set_filenames(array(
- 'confirm' => 'confirm_body.tpl')
- );
-
- $template->assign_vars(array(
- 'MESSAGE_TITLE' => $lang['Confirm'],
- 'MESSAGE_TEXT' => $unsub_msg,
- 'L_YES' => $lang['Yes'],
- 'L_NO' => $lang['No'],
- 'S_CONFIRM_ACTION' => append_sid("groupcp.$phpEx"),
- 'S_HIDDEN_FIELDS' => $s_hidden_fields)
- );
-
- $template->pparse('confirm');
-
- include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
- }
-
-}
-else if ( $group_id )
-{
- //
- // Did the group moderator get here through an email?
- // If so, check to see if they are logged in.
- //
- if ( isset($_GET['validate']) )
- {
- if ( !$user->data['user_id'] )
- {
- redirect("login.$phpEx$SID&redirect=groupcp.$phpEx&g=$group_id");
- }
- }
-
- //
- // For security, get the ID of the group moderator.
- //
- switch(SQL_LAYER)
- {
- case 'postgresql':
- $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
- FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
- WHERE g.group_id = $group_id
- AND aa.group_id = g.group_id
- UNION (
- SELECT g.group_moderator, g.group_type, NULL
- FROM " . GROUPS_TABLE . " g
- WHERE g.group_id = $group_id
- AND NOT EXISTS (
- SELECT aa.group_id
- FROM " . AUTH_ACCESS_TABLE . " aa
- WHERE aa.group_id = g.group_id
- )
- )";
- break;
-
- case 'oracle':
- $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
- FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa
- WHERE g.group_id = $group_id
- AND aa.group_id = g.group_id(+)";
- break;
-
- default:
- $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod
- FROM ( " . GROUPS_TABLE . " g
- LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
- WHERE g.group_id = $group_id";
- break;
- }
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not get moderator information', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $group_info = $db->sql_fetchrow($result) )
- {
- $group_moderator = $group_info['group_moderator'];
-
- if ( $group_moderator == $user->data['user_id'] || $user->data['user_level'] == ADMIN )
- {
- $is_moderator = TRUE;
- }
-
- //
- // Handle Additions, removals, approvals and denials
- //
- if ( !empty($_POST['add']) || !empty($_POST['remove']) || isset($_POST['approve']) || isset($_POST['deny']) )
- {
- if ( !$user->data['session_logged_in'] )
- {
- redirect("login.$phpEx$SIDredirect=groupcp.$phpEx&g=$group_id");
- }
-
- if ( !$is_moderator )
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("index.$phpEx") . '">')
- );
-
- $message = $lang['Not_group_moderator'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
-
- if ( isset($_POST['add']) )
- {
- $username = ( isset($_POST['username']) ) ? $_POST['username'] : "";
-
- $sql = "SELECT user_id, user_email, user_lang, user_level
- FROM " . USERS_TABLE . "
- WHERE username = '" . str_replace("\'", "''", $username) . "'";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error("Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql);
- }
-
- if ( !($row = $db->sql_fetchrow($result)) )
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">')
- );
-
- $message = $lang['Could_not_add_user'] . "<br /><br />" . sprintf($lang['Click_return_group'], "<a href=\"" . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_index'], "<a href=\"" . append_sid("index.$phpEx") . "\">", "</a>");
-
- message_die(MESSAGE, $message);
- }
-
- if ( $row['user_id'] == ANONYMOUS )
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">')
- );
-
- $message = $lang['Could_not_anon_user'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
-
- $sql = "SELECT ug.user_id, u.user_level
- FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
- WHERE u.user_id = " . $row['user_id'] . "
- AND ug.user_id = u.user_id
- AND ug.group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not get user information', '', __LINE__, __FILE__, $sql);
- }
-
- if ( !($db->sql_fetchrow($result)) )
- {
- $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
- VALUES (" . $row['user_id'] . ", $group_id, 0)";
- if ( !$db->sql_query($sql) )
- {
- trigger_error('Could not add user to group', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] )
- {
- $sql = "UPDATE " . USERS_TABLE . "
- SET user_level = " . MOD . "
- WHERE user_id = " . $row['user_id'];
- if ( !$db->sql_query($sql) )
- {
- trigger_error('Could not update user level', '', __LINE__, __FILE__, $sql);
- }
- }
-
- //
- // Get the group name
- // Email the user and tell them they're in the group
- //
- $group_sql = "SELECT group_name
- FROM " . GROUPS_TABLE . "
- WHERE group_id = $group_id";
- if ( !($result = $db->sql_query($group_sql)) )
- {
- trigger_error('Could not get group information', '', __LINE__, __FILE__, $group_sql);
- }
-
- $group_name_row = $db->sql_fetchrow($result);
-
- $group_name = $group_name_row['group_name'];
-
- include($phpbb_root_path . 'includes/emailer.'.$phpEx);
- $emailer = new emailer($config['smtp_delivery']);
-
- $email_headers = 'From: ' . $config['board_email'] . "\nReturn-Path: " . $config['board_email'] . "\r\n";
-
- $emailer->use_template('group_added', $row['user_lang']);
- $emailer->email_address($row['user_email']);
- $emailer->set_subject();//$lang['Group_added']
- $emailer->extra_headers($email_headers);
-
- $emailer->assign_vars(array(
- 'SITENAME' => $config['sitename'],
- 'GROUP_NAME' => $group_name,
- 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
-
- 'U_GROUPCP' => $server_url . '?' . 'g' . "=$group_id")
- );
- $emailer->send();
- $emailer->reset();
- }
- else
- {
- $template->assign_vars(array(
- 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">')
- );
-
- $message = $lang['User_is_member_group'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . 'g' . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
-
- message_die(MESSAGE, $message);
- }
- }
- else
- {
- if ( ( ( isset($_POST['approve']) || isset($_POST['deny']) ) && isset($_POST['pending_members']) ) || ( isset($_POST['remove']) && isset($_POST['members']) ) )
- {
-
- $members = ( isset($_POST['approve']) || isset($_POST['deny']) ) ? $_POST['pending_members'] : $_POST['members'];
-
- $sql_in = '';
- for($i = 0; $i < count($members); $i++)
- {
- $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . $members[$i];
- }
-
- if ( isset($_POST['approve']) )
- {
- if ( $group_info['auth_mod'] )
- {
- $sql = "UPDATE " . USERS_TABLE . "
- SET user_level = " . MOD . "
- WHERE user_id IN ($sql_in)
- AND user_level NOT IN (" . MOD . ", " . ADMIN . ")";
- if ( !$db->sql_query($sql) )
- {
- trigger_error('Could not update user level', '', __LINE__, __FILE__, $sql);
- }
- }
-
- $sql = "UPDATE " . USER_GROUP_TABLE . "
- SET user_pending = 0
- WHERE user_id IN ($sql_in)
- AND group_id = $group_id";
- $sql_select = "SELECT user_email
- FROM ". USERS_TABLE . "
- WHERE user_id IN ($sql_in)";
- }
- else if ( isset($_POST['deny']) || isset($_POST['remove']) )
- {
- if ( $group_info['auth_mod'] )
- {
- $sql = "SELECT ug.user_id, ug.group_id
- FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug
- WHERE ug.user_id IN ($sql_in)
- AND aa.group_id = ug.group_id
- AND aa.auth_mod = 1
- GROUP BY ug.user_id, ug.group_id
- ORDER BY ug.user_id, ug.group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Could not obtain moderator status', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $row = $db->sql_fetchrow($result) )
- {
- $group_check = array();
- $remove_mod_sql = '';
-
- do
- {
- $group_check[$row['user_id']][] = $row['group_id'];
- }
- while ( $row = $db->sql_fetchrow($result) );
-
- while( list($user_id, $group_list) = @each($group_check) )
- {
- if ( count($group_list) == 1 )
- {
- $remove_mod_sql .= ( ( $remove_mod_sql != '' ) ? ', ' : '' ) . $user_id;
- }
- }
-
- if ( $remove_mod_sql != '' )
- {
- $sql = "UPDATE " . USERS_TABLE . "
- SET user_level = " . USER . "
- WHERE user_id IN ($remove_mod_sql)
- AND user_level NOT IN (" . ADMIN . ")";
- if ( !$db->sql_query($sql) )
- {
- trigger_error('Could not update user level', '', __LINE__, __FILE__, $sql);
- }
- }
- }
- }
-
- $sql = "DELETE FROM " . USER_GROUP_TABLE . "
- WHERE user_id IN ($sql_in)
- AND group_id = $group_id";
- }
-
- if ( !$db->sql_query($sql) )
- {
- trigger_error('Could not update user group table', '', __LINE__, __FILE__, $sql);
- }
-
- //
- // Email users when they are approved
- //
- if ( isset($_POST['approve']) )
- {
- if ( !($result = $db->sql_query($sql_select)) )
- {
- trigger_error('Could not get user email information', '', __LINE__, __FILE__, $sql);
- }
-
- $email_addresses = '';
- while( $row = $db->sql_fetchrow($result) )
- {
- $email_addresses .= ( ( $email_addresses != '' ) ? ', ' : '' ) . $row['user_email'];
- }
-
- //
- // Get the group name
- //
- $group_sql = "SELECT group_name
- FROM " . GROUPS_TABLE . "
- WHERE group_id = $group_id";
- if ( !($result = $db->sql_query($group_sql)) )
- {
- trigger_error('Could not get group information', '', __LINE__, __FILE__, $group_sql);
- }
-
- $group_name_row = $db->sql_fetchrow($result);
- $group_name = $group_name_row['group_name'];
-
- include($phpbb_root_path . 'includes/emailer.'.$phpEx);
- $emailer = new emailer($config['smtp_delivery']);
-
- $email_headers = 'From: ' . $config['board_email'] . "\nReturn-Path: " . $config['board_email'] . "\nBcc: " . $email_addresses . "\r\n";
-
- $emailer->use_template('group_approved');
- $emailer->email_address($user->data['user_email']);
- $emailer->set_subject();//$lang['Group_approved']
- $emailer->extra_headers($email_headers);
-
- $emailer->assign_vars(array(
- 'SITENAME' => $config['sitename'],
- 'GROUP_NAME' => $group_name,
- 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
-
- 'U_GROUPCP' => $server_url . '?' . 'g' . "=$group_id")
- );
- $emailer->send();
- $emailer->reset();
- }
- }
- }
- }
- //
- // END approve or deny
- //
- }
- else
- {
- message_die(MESSAGE, $lang['No_groups_exist']);
- }
-
- //
- // Get group details
- //
- $sql = "SELECT *
- FROM " . GROUPS_TABLE . "
- WHERE group_id = $group_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting group information', '', __LINE__, __FILE__, $sql);
- }
-
- if ( !($group_info = $db->sql_fetchrow($result)) )
- {
- message_die(MESSAGE, $lang['Group_not_exist']);
- }
-
- //
- // Get moderator details for this group
- //
- $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm
- FROM " . USERS_TABLE . "
- WHERE user_id = " . $group_info['group_moderator'];
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting user list for group', '', __LINE__, __FILE__, $sql);
- }
-
- $group_moderator = $db->sql_fetchrow($result);
-
- //
- // Get user information for this group
- //
- $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending
- FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
- WHERE ug.group_id = $group_id
- AND u.user_id = ug.user_id
- AND ug.user_pending = 0
- AND ug.user_id <> " . $group_moderator['user_id'] . "
- ORDER BY u.username";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting user list for group', '', __LINE__, __FILE__, $sql);
- }
-
- $group_members = $db->sql_fetchrowset($result);
- $members_count = count($group_members);
- $db->sql_freeresult($result);
-
- $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm
- FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
- WHERE ug.group_id = $group_id
- AND g.group_id = ug.group_id
- AND ug.user_pending = 1
- AND u.user_id = ug.user_id
- ORDER BY u.username";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting user pending information', '', __LINE__, __FILE__, $sql);
- }
-
- $modgroup_pending_list = $db->sql_fetchrowset($result);
- $modgroup_pending_count = count($modgroup_pending_list);
- $db->sql_freeresult($result);
-
- $is_group_member = 0;
- if ( $members_count )
- {
- for($i = 0; $i < $members_count; $i++)
- {
- if ( $group_members[$i]['user_id'] == $user->data['user_id'] && $user->data['session_logged_in'] )
- {
- $is_group_member = TRUE;
- }
- }
- }
-
- $is_group_pending_member = 0;
- if ( $modgroup_pending_count )
- {
- for($i = 0; $i < $modgroup_pending_count; $i++)
- {
- if ( $modgroup_pending_list[$i]['user_id'] == $user->data['user_id'] && $user->data['session_logged_in'] )
- {
- $is_group_pending_member = TRUE;
- }
- }
- }
-
- if ( $user->data['user_level'] == ADMIN )
- {
- $is_moderator = TRUE;
- }
-
- if ( $user->data['user_id'] == $group_info['group_moderator'] )
- {
- $is_moderator = TRUE;
-
- $group_details = $lang['Are_group_moderator'];
-
- $s_hidden_fields = '<input type="hidden" name="' . 'g' . '" value="' . $group_id . '" />';
- }
- else if ( $is_group_member || $is_group_pending_member )
- {
- $template->assign_block_vars('switch_unsubscribe_group_input', array());
-
- $group_details = ( $is_group_pending_member ) ? $lang['Pending_this_group'] : $lang['Member_this_group'];
-
- $s_hidden_fields = '<input type="hidden" name="' . 'g' . '" value="' . $group_id . '" />';
- }
- else if ( $user->data['user_id'] == ANONYMOUS )
- {
- $group_details = $lang['Login_to_join'];
- $s_hidden_fields = '';
- }
- else
- {
- if ( $group_info['group_type'] == GROUP_OPEN )
- {
- $template->assign_block_vars('switch_subscribe_group_input', array());
-
- $group_details = $lang['This_open_group'];
- $s_hidden_fields = '<input type="hidden" name="' . 'g' . '" value="' . $group_id . '" />';
- }
- else if ( $group_info['group_type'] == GROUP_CLOSED )
- {
- $group_details = $lang['This_closed_group'];
- $s_hidden_fields = '';
- }
- else if ( $group_info['group_type'] == GROUP_HIDDEN )
- {
- $group_details = $lang['This_hidden_group'];
- $s_hidden_fields = '';
- }
- }
-
- $page_title = $lang['Group_Control_Panel'];
-
- //
- // Load templates
- //
- $template->set_filenames(array(
- 'info' => 'groupcp_info_body.tpl',
- 'pendinginfo' => 'groupcp_pending_info.tpl')
- );
- make_jumpbox('viewforum.'.$phpEx);
-
- //
- // Add the moderator
- //
- $username = $group_moderator['username'];
- $user_id = $group_moderator['user_id'];
-
- generate_user_info($group_moderator, $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim);
-
- $template->assign_vars(array(
-
-
- 'GROUP_NAME' => $group_info['group_name'],
- 'GROUP_DESC' => $group_info['group_description'],
- 'GROUP_DETAILS' => $group_details,
- 'MOD_ROW_COLOR' => '#' . $theme['td_color1'],
- 'MOD_ROW_CLASS' => $theme['td_class1'],
- 'MOD_USERNAME' => $username,
- 'MOD_FROM' => $from,
- 'MOD_JOINED' => $joined,
- 'MOD_POSTS' => $posts,
- 'MOD_AVATAR_IMG' => $poster_avatar,
- 'MOD_PROFILE_IMG' => $profile_img,
- 'MOD_PROFILE' => $profile,
- 'MOD_SEARCH_IMG' => $search_img,
- 'MOD_SEARCH' => $search,
- 'MOD_PM_IMG' => $pm_img,
- 'MOD_PM' => $pm,
- 'MOD_EMAIL_IMG' => $email_img,
- 'MOD_EMAIL' => $email,
- 'MOD_WWW_IMG' => $www_img,
- 'MOD_WWW' => $www,
- 'MOD_ICQ_STATUS_IMG' => $icq_status_img,
- 'MOD_ICQ_IMG' => $icq_img,
- 'MOD_ICQ' => $icq,
- 'MOD_AIM_IMG' => $aim_img,
- 'MOD_AIM' => $aim,
- 'MOD_MSN_IMG' => $msn_img,
- 'MOD_MSN' => $msn,
- 'MOD_YIM_IMG' => $yim_img,
- 'MOD_YIM' => $yim,
-
- 'U_MOD_VIEWPROFILE' => append_sid("ucp.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"),
- 'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"),
-
- 'S_GROUP_OPEN_TYPE' => GROUP_OPEN,
- 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED,
- 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN,
- 'S_GROUP_OPEN_CHECKED' => ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '',
- 'S_GROUP_CLOSED_CHECKED' => ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '',
- 'S_GROUP_HIDDEN_CHECKED' => ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '',
- 'S_HIDDEN_FIELDS' => $s_hidden_fields,
- 'S_MODE_SELECT' => $select_sort_mode,
- 'S_ORDER_SELECT' => $select_sort_order,
- 'S_GROUPCP_ACTION' => append_sid("groupcp.$phpEx?" . 'g' . "=$group_id"))
- );
-
- //
- // Dump out the remaining users
- //
- for($i = $start; $i < min($config['topics_per_page'] + $start, $members_count); $i++)
- {
- $username = $group_members[$i]['username'];
- $user_id = $group_members[$i]['user_id'];
-
- generate_user_info($group_members[$i], $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim);
-
- if ( $group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator )
- {
- $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
- $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
-
- $template->assign_block_vars('member_row', array(
- 'ROW_COLOR' => '#' . $row_color,
- 'ROW_CLASS' => $row_class,
- 'USERNAME' => $username,
- 'FROM' => $from,
- 'JOINED' => $joined,
- 'POSTS' => $posts,
- 'USER_ID' => $user_id,
- 'AVATAR_IMG' => $poster_avatar,
- 'PROFILE_IMG' => $profile_img,
- 'PROFILE' => $profile,
- 'SEARCH_IMG' => $search_img,
- 'SEARCH' => $search,
- 'PM_IMG' => $pm_img,
- 'PM' => $pm,
- 'EMAIL_IMG' => $email_img,
- 'EMAIL' => $email,
- 'WWW_IMG' => $www_img,
- 'WWW' => $www,
- 'ICQ_STATUS_IMG' => $icq_status_img,
- 'ICQ_IMG' => $icq_img,
- 'ICQ' => $icq,
- 'AIM_IMG' => $aim_img,
- 'AIM' => $aim,
- 'MSN_IMG' => $msn_img,
- 'MSN' => $msn,
- 'YIM_IMG' => $yim_img,
- 'YIM' => $yim,
-
- 'U_VIEWPROFILE' => append_sid("ucp.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"))
- );
-
- if ( $is_moderator )
- {
- $template->assign_block_vars('member_row.switch_mod_option', array());
- }
- }
- }
-
- if ( !$members_count )
- {
- //
- // No group members
- //
- $template->assign_block_vars('switch_no_members', array());
- $template->assign_vars(array(
- 'L_NO_MEMBERS' => $lang['No_group_members'])
- );
- }
-
- $current_page = ( !$members_count ) ? 1 : ceil( $members_count / $config['topics_per_page'] );
-
- $template->assign_vars(array(
- 'PAGINATION' => generate_pagination("groupcp.$phpEx?" . 'g' . "=$group_id", $members_count, $config['topics_per_page'], $start),
- 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $config['topics_per_page'] ) + 1 ), $current_page ),
-
- 'L_GOTO_PAGE' => $lang['Goto_page'])
- );
-
- if ( $group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator )
- {
- //
- // No group members
- //
- $template->assign_block_vars('switch_hidden_group', array());
- $template->assign_vars(array(
- 'L_HIDDEN_MEMBERS' => $lang['Group_hidden_members'])
- );
- }
-
- //
- // We've displayed the members who belong to the group, now we
- // do that pending memebers...
- //
- if ( $is_moderator )
- {
- //
- // Users pending in ONLY THIS GROUP (which is moderated by this user)
- //
- if ( $modgroup_pending_count )
- {
- for($i = 0; $i < $modgroup_pending_count; $i++)
- {
- $username = $modgroup_pending_list[$i]['username'];
- $user_id = $modgroup_pending_list[$i]['user_id'];
-
- generate_user_info($modgroup_pending_list[$i], $config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim);
-
- $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
- $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
-
- $user_select = '<input type="checkbox" name="member[]" value="' . $user_id . '">';
-
- $template->assign_block_vars('pending_members_row', array(
- 'ROW_CLASS' => $row_class,
- 'ROW_COLOR' => '#' . $row_color,
- 'USERNAME' => $username,
- 'FROM' => $from,
- 'JOINED' => $joined,
- 'POSTS' => $posts,
- 'USER_ID' => $user_id,
- 'AVATAR_IMG' => $poster_avatar,
- 'PROFILE_IMG' => $profile_img,
- 'PROFILE' => $profile,
- 'SEARCH_IMG' => $search_img,
- 'SEARCH' => $search,
- 'PM_IMG' => $pm_img,
- 'PM' => $pm,
- 'EMAIL_IMG' => $email_img,
- 'EMAIL' => $email,
- 'WWW_IMG' => $www_img,
- 'WWW' => $www,
- 'ICQ_STATUS_IMG' => $icq_status_img,
- 'ICQ_IMG' => $icq_img,
- 'ICQ' => $icq,
- 'AIM_IMG' => $aim_img,
- 'AIM' => $aim,
- 'MSN_IMG' => $msn_img,
- 'MSN' => $msn,
- 'YIM_IMG' => $yim_img,
- 'YIM' => $yim,
-
- 'U_VIEWPROFILE' => append_sid("ucp.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"))
- );
- }
-
- $template->assign_block_vars('switch_pending_members', array() );
-
- $template->assign_vars(array(
- 'L_SELECT' => $lang['Select'],
- 'L_APPROVE_SELECTED' => $lang['Approve_selected'],
- 'L_DENY_SELECTED' => $lang['Deny_selected'])
- );
-
- $template->assign_var_from_handle('PENDING_USER_BOX', 'pendinginfo');
-
- }
- }
-
- if ( $is_moderator )
- {
- $template->assign_block_vars('switch_mod_option', array());
- $template->assign_block_vars('switch_add_member', array());
- }
-
- $template->pparse('info');
-}
-else
-{
- //
- // Show the main groupcp.php screen where the user can select a group.
- //
- // Select all group that the user is a member of or where the user has
- // a pending membership.
- //
- if ( $user->data['session_logged_in'] )
- {
- $sql = "SELECT g.group_id, g.group_name, g.group_type, ug.user_pending
- FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
- WHERE ug.user_id = " . $user->data['user_id'] . "
- AND ug.group_id = g.group_id
- ORDER BY g.group_name, ug.user_id";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting group information', '', __LINE__, __FILE__, $sql);
- }
-
- if ( $row = $db->sql_fetchrow($result) )
- {
- $in_group = array();
- $s_member_groups_opt = '';
- $s_pending_groups_opt = '';
-
- do
- {
- $in_group[] = $row['group_id'];
- if ( $row['user_pending'] )
- {
- $s_pending_groups_opt .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
- }
- else
- {
- $s_member_groups_opt .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
- }
- }
- while( $row = $db->sql_fetchrow($result) );
-
- $s_pending_groups = '<select name="' . 'g' . '">' . $s_pending_groups_opt . "</select>";
- $s_member_groups = '<select name="' . 'g' . '">' . $s_member_groups_opt . "</select>";
- }
- }
-
- //
- // Select all other groups i.e. groups that this user is not a member of
- //
- $ignore_group_sql = ( count($in_group) ) ? "WHERE group_id NOT IN (" . implode(', ', $in_group) . ")" : '';
- $sql = "SELECT group_id, group_name, group_type
- FROM " . GROUPS_TABLE . " g
- $ignore_group_sql
- ORDER BY g.group_name";
- if ( !($result = $db->sql_query($sql)) )
- {
- trigger_error('Error getting group information', '', __LINE__, __FILE__, $sql);
- }
-
- $s_group_list_opt = '';
- while( $row = $db->sql_fetchrow($result) )
- {
- if ( $row['group_type'] != GROUP_HIDDEN || $user->data['user_level'] == ADMIN )
- {
- $s_group_list_opt .='<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
- }
- }
- $s_group_list = '<select name="' . 'g' . '">' . $s_group_list_opt . '</select>';
-
- if ( $s_group_list_opt != '' || $s_pending_groups_opt != '' || $s_member_groups_opt != '' )
- {
- //
- // Load and process templates
- //
-
- if ( $s_pending_groups_opt != '' || $s_member_groups_opt != '' )
- {
- $template->assign_block_vars('switch_groups_joined', array() );
- }
-
- if ( $s_member_groups_opt != '' )
- {
- $template->assign_block_vars('switch_groups_joined.switch_groups_member', array() );
- }
-
- if ( $s_pending_groups_opt != '' )
- {
- $template->assign_block_vars('switch_groups_joined.switch_groups_pending', array() );
- }
-
- if ( $s_group_list_opt != '' )
- {
- $template->assign_block_vars('switch_groups_remaining', array() );
- }
-
- $s_hidden_fields = '<input type="hidden" name="sid" value="' . $user->data['session_id'] . '" />';
-
- $template->assign_vars(array(
-
-
- 'S_USERGROUP_ACTION' => "groupcp.$phpEx$SID",
- 'S_HIDDEN_FIELDS' => $s_hidden_fields,
-
- 'GROUP_LIST_SELECT' => $s_group_list,
- 'GROUP_PENDING_SELECT' => $s_pending_groups,
- 'GROUP_MEMBER_SELECT' => $s_member_groups)
- );
- }
- else
- {
- trigger_error($user->lang['No_groups_exist']);
- }
-
- // Output the page
- page_header($user->lang['WHO_IS_ONLINE']);
-
- $template->set_filenames(array(
- 'body' => 'gcp_user_body.html')
- );
- make_jumpbox('viewforum.'.$phpEx);
-
- page_footer();
-
-}
-
-// ---------
-// FUNCTIONS
-//
-function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$joined, &$poster_avatar, &$profile_img, &$profile, &$search_img, &$search, &$pm_img, &$pm, &$email_img, &$email, &$www_img, &$www, &$icq_status_img, &$icq_img, &$icq, &$aim_img, &$aim, &$msn_img, &$msn, &$yim_img, &$yim)
-{
- global $lang, $images, $config, $phpEx;
-
- $from = ( !empty($row['user_from']) ) ? $row['user_from'] : '&nbsp;';
- $joined = create_date($date_format, $row['user_regdate'], $config['board_timezone']);
- $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
-
- $poster_avatar = '';
- if ( $row['user_avatar_type'] && $row['user_id'] != ANONYMOUS && $row['user_allowavatar'] )
- {
- switch( $row['user_avatar_type'] )
- {
- case USER_AVATAR_UPLOAD:
- $poster_avatar = ( $config['allow_avatar_upload'] ) ? '<img src="' . $config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
- break;
- case USER_AVATAR_REMOTE:
- $poster_avatar = ( $config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : '';
- break;
- case USER_AVATAR_GALLERY:
- $poster_avatar = ( $config['allow_avatar_local'] ) ? '<img src="' . $config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
- break;
- }
- }
-
- if ( !empty($row['user_viewemail']) || $group_mod )
- {
- $email_uri = ( $config['board_email_form'] ) ? append_sid("ucp.$phpEx?mode=email&amp;" . POST_USERS_URL .'=' . $row['user_id']) : 'mailto:' . $row['user_email'];
-
- $email_img = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>';
- $email = '<a href="' . $email_uri . '">' . $lang['Send_email'] . '</a>';
- }
- else
- {
- $email_img = '&nbsp;';
- $email = '&nbsp;';
- }
-
- $temp_url = append_sid("ucp.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']);
- $profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['Read_profile'] . '" title="' . $lang['Read_profile'] . '" border="0" /></a>';
- $profile = '<a href="' . $temp_url . '">' . $lang['Read_profile'] . '</a>';
-
- $temp_url = append_sid("privmsg.$phpEx?mode=post&amp;" . POST_USERS_URL . "=" . $row['user_id']);
- $pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
- $pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
-
- $www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
- $www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
-
- if ( !empty($row['user_icq']) )
- {
- $icq_status_img = '<a href="http://wwp.icq.com/' . $row['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>';
- $icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>';
- $icq = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '">' . $lang['ICQ'] . '</a>';
- }
- else
- {
- $icq_status_img = '';
- $icq_img = '';
- $icq = '';
- }
-
- $aim_img = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&amp;message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
- $aim = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&amp;message=Hello+Are+you+there?">' . $lang['AIM'] . '</a>' : '';
-
- $temp_url = append_sid("ucp.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']);
- $msn_img = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
- $msn = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '">' . $lang['MSNM'] . '</a>' : '';
-
- $yim_img = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&amp;.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
- $yim = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&amp;.src=pg">' . $lang['YIM'] . '</a>' : '';
-
- $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&amp;showresults=posts");
- $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
- $search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
-
- return;
-}
-//
-// FUNCTIONS
-// ---------
-
-?> \ No newline at end of file
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 78068b8021..c914fb7db8 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -7,8 +7,8 @@
// STARTED : Sat Feb 13, 2001
// COPYRIGHT : © 2001,2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
@@ -91,8 +91,8 @@ function gen_rand_string($num_chars)
{
$chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- list($usec, $sec) = explode(' ', microtime());
- mt_srand($sec * $usec);
+ list($usec, $sec) = explode(' ', microtime());
+ mt_srand($sec * $usec);
$max_chars = count($chars) - 1;
$rand_str = '';
@@ -147,7 +147,7 @@ function parse_text_display($text, $text_rules)
$bbcode->bbcode_second_pass($text, $bbcode_uid, $bbcode_bitfield);
}
- // If we allow users to disable display of emoticons we'll need an appropriate
+ // If we allow users to disable display of emoticons we'll need an appropriate
// check and preg_replace here
if ($allow_smilies)
{
@@ -160,7 +160,7 @@ function parse_text_display($text, $text_rules)
return $text;
}
-// Create forum rules for given forum
+// Create forum rules for given forum
function generate_forum_rules($forum_data)
{
if (!$forum_data['forum_rules'] && !$forum_data['forum_rules_link'])
@@ -270,7 +270,7 @@ function get_moderators(&$forum_moderators, $forum_id = false)
global $config, $template, $db, $phpEx, $SID;
// Have we disabled the display of moderators? If so, then return
- // from whence we came ...
+ // from whence we came ...
if (empty($config['load_moderators']))
{
return;
@@ -293,7 +293,7 @@ function get_moderators(&$forum_moderators, $forum_id = false)
while ($row = $db->sql_fetchrow($result))
{
- $forum_moderators[$row['forum_id']][] = (!empty($row['user_id'])) ? '<a href="memberlist.' . $phpEx . $SID . '&amp;mode=viewprofile&amp;u=' . $row['user_id'] . '">' . $row['username'] . '</a>' : '<a href="groupcp.' . $phpEx . $SID . '&amp;g=' . $row['group_id'] . '">' . $row['groupname'] . '</a>';
+ $forum_moderators[$row['forum_id']][] = (!empty($row['user_id'])) ? '<a href="memberlist.' . $phpEx . $SID . '&amp;mode=viewprofile&amp;u=' . $row['user_id'] . '">' . $row['username'] . '</a>' : '<a href="memberlist.' . $phpEx . $SID . '&amp;mode=group&amp;g=' . $row['group_id'] . '">' . $row['groupname'] . '</a>';
}
$db->sql_freeresult($result);
@@ -405,7 +405,7 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
$iteration++;
$display_jumpbox = true;
}
-
+
if ($row['left_id'] < $right)
{
$padding++;
@@ -455,7 +455,7 @@ function language_select($default = '')
{
global $db;
- $sql = 'SELECT lang_iso, lang_local_name
+ $sql = 'SELECT lang_iso, lang_local_name
FROM ' . LANG_TABLE . '
ORDER BY lang_english_name';
$result = $db->sql_query($sql);
@@ -478,7 +478,7 @@ function style_select($default = '', $all = false)
$sql_where = (!$all) ? 'WHERE style_active = 1 ' : '';
$sql = 'SELECT style_id, style_name
- FROM ' . STYLES_TABLE . "
+ FROM ' . STYLES_TABLE . "
$sql_where
ORDER BY style_name";
$result = $db->sql_query($sql);
@@ -601,7 +601,7 @@ function watch_topic_forum($mode, &$s_watching, &$s_watching_img, $user_id, $mat
{
if ($_GET['unwatch'] == $mode)
{
- login_box($user->cur_page);
+ login_box();
}
}
else
@@ -624,7 +624,7 @@ function watch_topic_forum($mode, &$s_watching, &$s_watching_img, $user_id, $mat
function markread($mode, $forum_id = 0, $topic_id = 0, $marktime = false)
{
global $config, $db, $user;
-
+
if ($user->data['user_id'] == ANONYMOUS)
{
return;
@@ -645,12 +645,12 @@ function markread($mode, $forum_id = 0, $topic_id = 0, $marktime = false)
case 'mark':
if ($config['load_db_lastread'])
{
- $sql = 'SELECT forum_id
- FROM ' . FORUMS_TRACK_TABLE . '
+ $sql = 'SELECT forum_id
+ FROM ' . FORUMS_TRACK_TABLE . '
WHERE user_id = ' . $user->data['user_id'] . '
AND forum_id IN (' . implode(', ', array_map('intval', $forum_id)) . ')';
$result = $db->sql_query($sql);
-
+
$sql_update = array();
while ($row = $db->sql_fetchrow($result))
{
@@ -661,7 +661,7 @@ function markread($mode, $forum_id = 0, $topic_id = 0, $marktime = false)
if (sizeof($sql_update))
{
$sql = 'UPDATE ' . FORUMS_TRACK_TABLE . "
- SET mark_time = $current_time
+ SET mark_time = $current_time
WHERE user_id = " . $user->data['user_id'] . '
AND forum_id IN (' . implode(', ', $sql_update) . ')';
$db->sql_query($sql);
@@ -723,14 +723,14 @@ function markread($mode, $forum_id = 0, $topic_id = 0, $marktime = false)
case 'topic':
$forum_id = (int) $forum_id[0];
-
+
// Mark a topic as read
if ($config['load_db_lastread'] || ($config['load_db_track'] && $type == TRACK_POSTED))
{
$sql = 'UPDATE ' . TOPICS_TRACK_TABLE . "
SET mark_type = $type, mark_time = $current_time
WHERE topic_id = $topic_id
- AND user_id = " . $user->data['user_id'] . "
+ AND user_id = " . $user->data['user_id'] . "
AND mark_time < $current_time";
if (!$db->sql_query($sql) || !$db->sql_affectedrows())
{
@@ -905,7 +905,7 @@ function obtain_icons(&$icons)
{
// Topic icons
$sql = 'SELECT *
- FROM ' . ICONS_TABLE . '
+ FROM ' . ICONS_TABLE . '
ORDER BY icons_order';
$result = $db->sql_query($sql);
@@ -993,14 +993,14 @@ function obtain_attach_extensions(&$extensions)
$extensions[$extension]['download_mode'] = (int) $row['download_mode'];
$extensions[$extension]['upload_icon'] = trim($row['upload_icon']);
$extensions[$extension]['max_filesize'] = (int) $row['max_filesize'];
-
+
$allowed_forums = ($row['allowed_forums']) ? unserialize(trim($row['allowed_forums'])) : array();
-
+
if ($row['allow_in_pm'])
{
$allowed_forums = array_merge($allowed_forums, array(0));
}
-
+
// Store allowed extensions forum wise
$extensions['_allowed_'][$extension] = (!sizeof($allowed_forums)) ? 0 : $allowed_forums;
}
@@ -1074,7 +1074,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
{
return false;
}
-
+
$confirm = false;
if (isset($_POST['confirm']))
{
@@ -1095,14 +1095,14 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
{
return false;
}
-
+
return true;
}
else if ($check)
{
return false;
}
-
+
$s_hidden_fields = '<input type="hidden" name="user_id" value="' . $user->data['user_id'] . '" /><input type="hidden" name="sess" value="' . $user->session_id . '" /><input type="hidden" name="sid" value="' . $SID . '" />';
// generate activation key
@@ -1130,7 +1130,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
'S_CONFIRM_ACTION' => $user->cur_page . ((strpos($user->cur_page, '?') !== false) ? '&' : '?') . 'confirm_key=' . $confirm_key,
'S_HIDDEN_FIELDS' => $hidden . $s_hidden_fields)
);
-
+
$sql = 'UPDATE ' . USERS_TABLE . " SET user_last_confirm_key = '" . $db->sql_escape($confirm_key) . "'
WHERE user_id = " . $user->data['user_id'];
$db->sql_query($sql);
@@ -1139,25 +1139,28 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
}
// Generate login box or verify password
-function login_box($s_action, $s_hidden_fields = '', $login_explain = '', $ucp_login = false)
+function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true)
{
global $SID, $db, $user, $template, $auth, $phpEx, $phpbb_root_path;
$err = '';
+
if (isset($_POST['login']))
{
$username = request_var('username', '');
$password = request_var('password', '');
$autologin = (!empty($_POST['autologin'])) ? TRUE : FALSE;
$viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
+ $admin = ($admin) ? 1 : 0;
- if (($result = $auth->login($username, $password, $autologin, $viewonline)) === true)
+ // If authentication is successful we redirect user to previous page
+ if (($result = $auth->login($username, $password, $autologin, $viewonline, $admin)) === true)
{
- // TODO
- // Force change password ... plugin for EVENT_LOGIN in future
- // but for now we'll do it here
+ $redirect = request_var('redirect', "index.$phpEx$SID");
+ meta_refresh(3, $redirect);
- return true;
+ $message = (($l_success) ? $l_success : $user->lang['LOGIN_REDIRECT']) . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a> ');
+ trigger_error($message);
}
// If we get a non-numeric (e.g. string) value we output an error
@@ -1170,19 +1173,35 @@ function login_box($s_action, $s_hidden_fields = '', $login_explain = '', $ucp_l
$err = ($result === 0) ? $user->lang['ACTIVE_ERROR'] : $user->lang['LOGIN_ERROR'];
}
- $s_hidden_fields .= ($ucp_login && !empty($_SERVER['HTTP_REFERER'])) ? '<input type="hidden" name="redirect" value="' . htmlspecialchars($_SERVER['HTTP_REFERER']) . '" />' : '<input type="hidden" name="redirect" value="' . $s_action . '" />';
+ if (!$redirect)
+ {
+ $split_page = array();
+ preg_match_all('#^.*?([a-z]+?)\.' . $phpEx . '\?(.*?)$#i', $user->page, $split_page, PREG_SET_ORDER);
+
+ // No script name set? Assume index
+ if (empty($split_page[0][1]))
+ {
+ $split_page[0][1] = 'index';
+ }
+
+ // Current page correctly formatted for (login) redirects
+ $redirect = htmlspecialchars($split_page[0][1] . '.' . $phpEx . $SID . ((!empty($split_page[0][2])) ? '&' . $split_page[0][2] : ''));
+ }
+
+ $s_hidden_fields = '<input type="hidden" name="redirect" value="' . $redirect . '" />';
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $SID . '" />';
$template->assign_vars(array(
- 'LOGIN_ERROR' => $err,
- 'LOGIN_EXPLAIN' => $login_explain,
+ 'LOGIN_ERROR' => $err,
+ 'LOGIN_EXPLAIN' => $l_explain,
'U_SEND_PASSWORD' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=sendpassword",
- 'U_TERMS_USE' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=terms",
- 'U_PRIVACY' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=privacy",
+ 'U_TERMS_USE' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=terms",
+ 'U_PRIVACY' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=privacy",
- 'S_LOGIN_ACTION' => "{$phpbb_root_path}ucp.$phpEx$SID&amp;mode=login",
- 'S_HIDDEN_FIELDS' => $s_hidden_fields)
+ 'S_DISPLAY_FULL_LOGIN' => ($s_display) ? true : false,
+ 'S_LOGIN_ACTION' => $redirect_page,
+ 'S_HIDDEN_FIELDS' => $s_hidden_fields)
);
page_header($user->lang['LOGIN']);
@@ -1203,7 +1222,7 @@ function login_forum_box(&$forum_data)
$password = request_var('password', '');
$sql = 'SELECT forum_id
- FROM ' . FORUMS_ACCESS_TABLE . '
+ FROM ' . FORUMS_ACCESS_TABLE . '
WHERE forum_id = ' . $forum_data['forum_id'] . '
AND user_id = ' . $user->data['user_id'] . "
AND session_id = '$user->session_id'";
@@ -1219,7 +1238,7 @@ function login_forum_box(&$forum_data)
if ($password)
{
// Remove expired authorised sessions
- $sql = 'SELECT session_id
+ $sql = 'SELECT session_id
FROM ' . SESSIONS_TABLE;
$result = $db->sql_query($sql);
@@ -1344,7 +1363,7 @@ function extension_allowed($forum_id, $extension)
{
return true;
}
-
+
return (!in_array($forum_id, $check)) ? false : true;
}
else
@@ -1410,7 +1429,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
if (!defined('HEADER_INC'))
{
- if (defined('IN_ADMIN'))
+ if (defined('IN_ADMIN') && !empty($user->data['session_admin']))
{
adm_page_header('', '', false);
}
@@ -1425,7 +1444,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
$display_header = (!isset($display_header)) ? false : (bool) $display_header;
$show_prev_info = (!isset($show_prev_info)) ? true : (bool) $show_prev_info;
- if (defined('IN_ADMIN'))
+ if (defined('IN_ADMIN') && !empty($user->data['session_admin']))
{
adm_page_message($msg_title, $msg_text, $display_header, $show_prev_info);
adm_page_footer();
@@ -1445,6 +1464,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
}
exit;
break;
+
default:
if (defined('DEBUG_EXTRA'))
{
@@ -1503,7 +1523,7 @@ function page_header($page_title = '')
$reading_sql = "AND s.session_page LIKE '%f=$f%'";
}
- $sql = 'SELECT u.username, u.user_id, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_ip, s.session_allow_viewonline
+ $sql = 'SELECT u.username, u.user_id, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_ip, s.session_viewonline
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
WHERE s.session_time >= ' . (time() - (intval($config['load_online_time']) * 60)) . "
$reading_sql
@@ -1666,8 +1686,9 @@ function page_header($page_title = '')
'SITENAME' => $config['sitename'],
'SITE_DESCRIPTION' => $config['site_desc'],
'PAGE_TITLE' => $page_title,
+ 'SCRIPT_NAME' => substr($user->page, 0, strpos($user->page, '.')),
'LAST_VISIT_DATE' => sprintf($user->lang['YOU_LAST_VISIT'], $s_last_visit),
- 'CURRENT_TIME' => sprintf($user->lang['CURRENT_TIME'], $user->format_date(time())),
+ 'CURRENT_TIME' => sprintf($user->lang['CURRENT_TIME'], $user->format_date(time(), false, true)),
'TOTAL_USERS_ONLINE' => $l_online_users,
'LOGGED_IN_USER_LIST' => $online_userlist,
'RECORD_USERS' => $l_online_record,
@@ -1676,8 +1697,8 @@ function page_header($page_title = '')
'SID' => $SID,
'L_LOGIN_LOGOUT' => $l_login_logout,
- 'L_INDEX' => $user->lang['FORUM_INDEX'],
- 'L_ONLINE_EXPLAIN' => $l_online_time,
+ 'L_INDEX' => $user->lang['FORUM_INDEX'],
+ 'L_ONLINE_EXPLAIN' => $l_online_time,
'U_PRIVATEMSGS' => "{$phpbb_root_path}ucp.$phpEx$SID&i=pm&mode=" . (($user->data['user_new_privmsg'] || $l_privmsgs_text_unread) ? 'unread' : 'view_messages'),
'U_RETURN_INBOX' => "{$phpbb_root_path}ucp.$phpEx$SID&i=pm&folder=inbox",
@@ -1685,7 +1706,6 @@ function page_header($page_title = '')
'U_MEMBERLIST' => "{$phpbb_root_path}memberlist.$phpEx$SID",
'U_VIEWONLINE' => "{$phpbb_root_path}viewonline.$phpEx$SID",
'U_MEMBERSLIST' => "{$phpbb_root_path}memberlist.$phpEx$SID",
- 'U_GROUP_CP' => "{$phpbb_root_path}groupcp.$phpEx$SID",
'U_LOGIN_LOGOUT' => $u_login_logout,
'U_INDEX' => "{$phpbb_root_path}index.$phpEx$SID",
'U_SEARCH' => "{$phpbb_root_path}search.$phpEx$SID",
@@ -1700,24 +1720,24 @@ function page_header($page_title = '')
'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS) ? true : false,
'S_USER_PM_POPUP' => $user->optionget('popuppm'),
- 'S_USER_LANG' => $user->data['user_lang'],
+ 'S_USER_LANG' => $user->data['user_lang'],
'S_USER_BROWSER' => (isset($user->data['session_browser'])) ? $user->data['session_browser'] : $user->lang['UNKNOWN_BROWSER'],
'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'],
'S_CONTENT_ENCODING' => $user->lang['ENCODING'],
'S_CONTENT_DIR_LEFT' => $user->lang['LEFT'],
'S_CONTENT_DIR_RIGHT' => $user->lang['RIGHT'],
- 'S_TIMEZONE' => ($user->data['user_dst'] || ($user->data['user_id'] == ANONYMOUS && $config['board_dst'])) ? sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], $user->lang['tz']['dst']) : sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], ''),
- 'S_DISPLAY_ONLINE_LIST' => (!empty($config['load_online'])) ? 1 : 0,
- 'S_DISPLAY_SEARCH' => (!empty($config['load_search'])) ? 1 : 0,
- 'S_DISPLAY_PM' => (!empty($config['allow_privmsg'])) ? 1 : 0,
- 'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0,
+ 'S_TIMEZONE' => ($user->data['user_dst'] || ($user->data['user_id'] == ANONYMOUS && $config['board_dst'])) ? sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], $user->lang['tz']['dst']) : sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], ''),
+ 'S_DISPLAY_ONLINE_LIST' => (!empty($config['load_online'])) ? 1 : 0,
+ 'S_DISPLAY_SEARCH' => (!empty($config['load_search'])) ? 1 : 0,
+ 'S_DISPLAY_PM' => (!empty($config['allow_privmsg'])) ? 1 : 0,
+ 'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0,
'S_NEW_PM' => ($s_privmsg_new) ? 1 : 0,
- 'T_THEME_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['theme_path'] . '/theme',
- 'T_TEMPLATE_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['template_path'] . '/template',
- 'T_IMAGESET_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['imageset_path'] . '/imageset',
+ 'T_THEME_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['theme_path'] . '/theme',
+ 'T_TEMPLATE_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['template_path'] . '/template',
+ 'T_IMAGESET_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['imageset_path'] . '/imageset',
'T_STYLESHEET_LINK' => (!$user->theme['primary']['theme_storedb']) ? "{$phpbb_root_path}styles/" . $user->theme['primary']['theme_path'] . '/theme/stylesheet.css' : "{$phpbb_root_path}style.$phpEx?sid=$user->session_id&amp;id=" . $user->theme['primary']['theme_id'],
- 'T_STYLESHEET_NAME' => $user->theme['primary']['theme_name'],
+ 'T_STYLESHEET_NAME' => $user->theme['primary']['theme_name'],
'T_THEME_DATA' => (!$user->theme['primary']['theme_storedb']) ? '' : $user->theme['primary']['theme_data'])
);
@@ -1757,7 +1777,7 @@ function page_footer()
$template->assign_vars(array(
'PHPBB_VERSION' => $config['version'],
- 'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
+ 'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
'U_ACP' => ($auth->acl_get('a_') && $user->data['user_id'] != ANONYMOUS) ? "adm/index.$phpEx?sid=" . $user->data['session_id'] : '')
);
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index 32f1a0081b..1e61412017 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -30,28 +30,9 @@ class session
$current_time = time();
$this->browser = (!empty($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : $_ENV['HTTP_USER_AGENT'];
$this->page = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'];
-
- $split_page = array();
- preg_match_all('#^.*?([a-z]+?)\.' . $phpEx . '\?sid=[a-z0-9]*?(&.*)?$#i', $this->page, $split_page, PREG_SET_ORDER);
-
- // Take care of SID
- if (!isset($split_page[0][1]))
- {
- $split_page[0][1] = substr(strrchr($this->page, '/'), 1);
- }
-
- // Page for session_page value
- $this->page = $split_page[0][1] . ((isset($split_page[0][2])) ? $split_page[0][2] : '');
+ $this->page = preg_replace('#^.*?\/?(\/adm\/)?([a-z]+?\.' . $phpEx . '\?)sid=[a-z0-9]*&?(.*?)$#i', '\1\2\3', $this->page);
$this->page .= (isset($_POST['f'])) ? 'f=' . intval($_POST['f']) : '';
- // Current page correctly formatted for (login) redirects
- $this->cur_page = str_replace('&amp;', '&', htmlspecialchars($split_page[0][1] . '.' . $phpEx . ((isset($split_page[0][2])) ? '?' . $split_page[0][2] : '')));
-
- // Current page filename for use in template (index, viewtopic, viewforum...)
- $this->current_page_filename = $split_page[0][1];
-
- unset($split_page);
-
if (isset($_COOKIE[$config['cookie_name'] . '_sid']) || isset($_COOKIE[$config['cookie_name'] . '_data']))
{
$sessiondata = (!empty($_COOKIE[$config['cookie_name'] . '_data'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_data'])) : array();
@@ -145,12 +126,13 @@ class session
}
// Create a new session
- function create(&$user_id, &$autologin, $set_autologin = false, $viewonline = 1)
+ function create(&$user_id, &$autologin, $set_autologin = false, $viewonline = 1, $admin = 0)
{
global $SID, $db, $config;
$sessiondata = array();
$current_time = time();
+ $current_user = $this->data['user_id'];
$bot = false;
// Pull bot information from DB and loop through it
@@ -290,38 +272,45 @@ class session
// Create or update the session
$db->sql_return_on_error(true);
- $sql = 'UPDATE ' . SESSIONS_TABLE . "
- SET session_user_id = $user_id, session_last_visit = " . $this->data['session_last_visit'] . ", session_start = $current_time, session_time = $current_time, session_browser = '" . $db->sql_escape($this->browser) . "', session_page = '" . $db->sql_escape($this->page) . "', session_allow_viewonline = $viewonline
+ $sql_ary = array(
+ 'session_user_id' => (int) $user_id,
+ 'session_start' => (int) $current_time,
+ 'session_last_visit' => (int) $this->data['session_last_visit'],
+ 'session_time' => (int) $current_time,
+ 'session_browser' => (string) $this->browser,
+ 'session_page' => (string) $this->page,
+ 'session_viewonline' => (int) $viewonline,
+ 'session_admin' => (int) $admin,
+ );
+
+ $sql = 'UPDATE ' . SESSIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . "
WHERE session_id = '" . $db->sql_escape($this->session_id) . "'";
if ($this->session_id == '' || !$db->sql_query($sql) || !$db->sql_affectedrows())
{
$db->sql_return_on_error(false);
$this->session_id = md5(uniqid($this->ip));
- $sql = 'INSERT INTO ' . SESSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
- 'session_id' => (string) $this->session_id,
- 'session_user_id' => (int) $user_id,
- 'session_start' => (int) $current_time,
- 'session_last_visit' => (int) $this->data['session_last_visit'],
- 'session_time' => (int) $current_time,
- 'session_ip' => (string) $this->ip,
- 'session_browser' => (string) $this->browser,
- 'session_page' => (string) $this->page,
- 'session_allow_viewonline' => (int) $viewonline
- ));
- $db->sql_query($sql);
+ $sql_ary['session_id'] = (string) $this->session_id;
+
+ $db->sql_query('INSERT INTO ' . SESSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
}
+
$db->sql_return_on_error(false);
if (!$bot)
{
$this->data['session_id'] = $this->session_id;
- $sessiondata['autologinid'] = ($autologin && $user_id != ANONYMOUS) ? $autologin : '';
- $sessiondata['userid'] = $user_id;
+ // Don't set cookies if we're an admin re-authenticating
+ if (!$admin || ($admin && $current_user == ANONYMOUS))
+ {
+ $sessiondata['userid'] = $user_id;
+ $sessiondata['autologinid'] = ($autologin && $user_id != ANONYMOUS) ? $autologin : '';
+
+ $this->set_cookie('data', serialize($sessiondata), $current_time + 31536000);
+ $this->set_cookie('sid', $this->session_id, 0);
+ }
- $this->set_cookie('data', serialize($sessiondata), $current_time + 31536000);
- $this->set_cookie('sid', $this->session_id, 0);
$SID = '?sid=' . $this->session_id;
if ($this->data['user_id'] != ANONYMOUS)
@@ -359,12 +348,12 @@ class session
AND session_user_id = " . $this->data['user_id'];
$db->sql_query($sql);
- $this->session_id = '';
+ // Reset some basic data immediately
+ $this->session_id = $this->data['username'] = '';
+ $this->data['user_id'] = ANONYMOUS;
+ $this->data['session_admin'] = 0;
- if ($this->data['user_id'] != ANONYMOUS)
- {
- // Trigger EVENT_END_SESSION
- }
+ // Trigger EVENT_END_SESSION
return true;
}
@@ -544,7 +533,7 @@ class user extends session
$this->add_lang($lang_set);
unset($lang_set);
-
+
if (!empty($_GET['style']) && $auth->acl_get('a_styles'))
{
global $SID;
@@ -690,7 +679,7 @@ class user extends session
// $lang == $this->lang
// $help == $this->help
// - add appropiate variables here, name them as they are used within the language file...
-
+
if (!$use_db)
{
require($this->lang_path . (($use_help) ? 'help_' : '') . "$lang_file.$phpEx");
@@ -1159,9 +1148,9 @@ class auth
}
// Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
- function login($username, $password, $autologin = false, $viewonline = 1)
+ function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0)
{
- global $config, $user, $phpbb_root_path, $phpEx;
+ global $config, $db, $user, $phpbb_root_path, $phpEx;
$method = trim($config['auth_method']);
@@ -1182,8 +1171,7 @@ class auth
$autologin = (!empty($autologin)) ? md5($password) : '';
- // Trigger EVENT_LOGIN
- return $user->create($login['user_id'], $autologin, true, $viewonline);
+ return $user->create($login['user_id'], $autologin, true, $viewonline, $admin);
}
}
diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php
new file mode 100644
index 0000000000..75e0c8367e
--- /dev/null
+++ b/phpBB/includes/ucp/ucp_groups.php
@@ -0,0 +1,126 @@
+<?php
+// -------------------------------------------------------------
+//
+// $Id$
+//
+// FILENAME : ucp_groups.php
+// STARTED : Sun Jun 6, 2004
+// COPYRIGHT : © 2001, 2004 phpBB Group
+// WWW : http://www.phpbb.com/
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
+// -------------------------------------------------------------
+
+class ucp_groups extends module
+{
+ function ucp_groups($id, $mode)
+ {
+ global $config, $db, $user, $auth, $SID, $template, $phpbb_root_path, $phpEx;
+
+ $user->add_lang('groups');
+
+ $submit = (!empty($_POST['submit'])) ? true : false;
+ $delete = (!empty($_POST['delete'])) ? true : false;
+ $error = $data = array();
+
+ switch ($mode)
+ {
+ case 'membership':
+
+ $sql = 'SELECT g.group_id, g.group_name, g.group_description, g.group_type, ug.group_leader, ug.user_pending
+ FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug
+ WHERE ug.user_id = ' . $user->data['user_id'] . '
+ AND g.group_id = ug.group_id
+ ORDER BY g.group_type DESC, g.group_name';
+ $result = $db->sql_query($sql);
+
+ $group_id_ary = array();
+ $leader_count = $member_count = $pending_count = 0;
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $block = ($row['group_leader']) ? 'leader' : (($row['user_pending']) ? 'pending' : 'member');
+
+ $template->assign_block_vars($block, array(
+ 'GROUP_ID' => $row['group_id'],
+ 'GROUP_NAME' => ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'],
+ 'GROUP_DESC' => ($row['group_type'] <> GROUP_SPECIAL) ? $row['group_description'] : $user->lang['GROUP_IS_SPECIAL'],
+ 'GROUP_SPECIAL' => ($row['group_type'] <> GROUP_SPECIAL) ? false : true,
+
+ 'U_VIEW_GROUP' => "memberlist.$phpEx$SID&amp;mode=group&amp;g=" . $row['group_id'],
+
+ 'S_GROUP_DEFAULT' => ($row['group_id'] == $user->data['group_id']) ? true : false,
+ 'S_ROW_COUNT' => ${$block . '_count'}++,)
+ );
+
+ $group_id_ary[] = $row['group_id'];
+ }
+ $db->sql_freeresult($result);
+
+ // Hide hidden groups unless user is an admin with group privileges
+ $sql_and = ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? '<> ' . GROUP_SPECIAL : 'NOT IN (' . GROUP_SPECIAL . ', ' . GROUP_HIDDEN . ')';
+ $sql = 'SELECT group_id, group_name, group_description, group_type
+ FROM ' . GROUPS_TABLE . '
+ WHERE group_id NOT IN (' . implode(', ', $group_id_ary) . ")
+ AND group_type $sql_and
+ ORDER BY group_type DESC, group_name";
+ $result = $db->sql_query($sql);
+
+ $nonmember_count = 0;
+ while ($row = $db->sql_fetchrow($result))
+ {
+
+ $template->assign_block_vars('nonmember', array(
+ 'GROUP_ID' => $row['group_id'],
+ 'GROUP_NAME' => ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'],
+ 'GROUP_DESC' => $row['group_description'],
+ 'GROUP_SPECIAL' => ($row['group_type'] <> GROUP_SPECIAL) ? false : true,
+ 'GROUP_CLOSED' => ($row['group_type'] <> GROUP_CLOSED || $auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? false : true,
+
+ 'U_VIEW_GROUP' => "memberlist.$phpEx$SID&amp;mode=group&amp;g=" . $row['group_id'],
+
+ 'S_ROW_COUNT' => $nonmember_count++,)
+ );
+ }
+ $db->sql_freeresult($result);
+
+ $template->assign_vars(array(
+ 'S_CHANGE_DEFAULT' => ($auth->acl_get('u_chggrp')) ? true : false,
+ 'S_LEADER_COUNT' => $leader_count,
+ 'S_MEMBER_COUNT' => $member_count,
+ 'S_PENDING_COUNT' => $pending_count,
+ 'S_NONMEMBER_COUNT' => $nonmember_count,)
+ );
+
+ break;
+
+ case 'manage':
+ break;
+ }
+
+ $this->display($user->lang['UCP_GROUPS'], 'ucp_groups_' . $mode . '.html');
+ }
+}
+
+/*
+ include($phpbb_root_path . 'includes/emailer.'.$phpEx);
+ $emailer = new emailer($config['smtp_delivery']);
+
+ $email_headers = 'From: ' . $config['board_email'] . "\nReturn-Path: " . $config['board_email'] . "\r\n";
+
+ $emailer->use_template('group_request', $moderator['user_lang']);
+ $emailer->email_address($moderator['user_email']);
+ $emailer->set_subject();//$lang['Group_request']
+ $emailer->extra_headers($email_headers);
+
+ $emailer->assign_vars(array(
+ 'SITENAME' => $config['sitename'],
+ 'GROUP_MODERATOR' => $moderator['username'],
+ 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
+
+ 'U_GROUPCP' => $server_url . '?' . 'g' . "=$group_id&validate=true")
+ );
+ $emailer->send();
+ $emailer->reset();
+*/
+
+?> \ No newline at end of file
diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php
index 5d2eaf5e05..dc344a8765 100644
--- a/phpBB/includes/ucp/ucp_prefs.php
+++ b/phpBB/includes/ucp/ucp_prefs.php
@@ -7,11 +7,11 @@
// STARTED : Mon May 19, 2003
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
-class ucp_prefs extends module
+class ucp_prefs extends module
{
function ucp_prefs($id, $mode)
{
@@ -28,18 +28,18 @@ class ucp_prefs extends module
if ($submit)
{
$var_ary = array(
- 'dateformat' => (string) $config['default_dateformat'],
- 'lang' => (string) $config['default_lang'],
+ 'dateformat' => (string) $config['default_dateformat'],
+ 'lang' => (string) $config['default_lang'],
'tz' => (float) $config['board_timezone'],
- 'style' => (int) $config['default_style'],
- 'dst' => (bool) $config['board_dst'],
- 'viewemail' => false,
- 'massemail' => true,
- 'hideonline' => false,
- 'notifymethod' => 0,
- 'notifypm' => true,
- 'popuppm' => false,
- 'allowpm' => true,
+ 'style' => (int) $config['default_style'],
+ 'dst' => (bool) $config['board_dst'],
+ 'viewemail' => false,
+ 'massemail' => true,
+ 'hideonline' => false,
+ 'notifymethod' => 0,
+ 'notifypm' => true,
+ 'popuppm' => false,
+ 'allowpm' => true,
);
foreach ($var_ary as $var => $default)
@@ -48,7 +48,7 @@ class ucp_prefs extends module
}
$var_ary = array(
- 'dateformat' => array('string', false, 3, 15),
+ 'dateformat' => array('string', false, 3, 15),
'lang' => array('match', false, '#^[a-z_]{2,}$#i'),
'tz' => array('num', false, -13, 13),
);
@@ -63,13 +63,13 @@ class ucp_prefs extends module
if (!sizeof($error))
{
$sql_ary = array(
- 'user_allow_pm' => $allowpm,
- 'user_allow_viewemail' => $viewemail,
- 'user_allow_massemail' => $massemail,
- 'user_allow_viewonline' => ($auth->acl_get('u_hideonline')) ? !$hideonline : $user->data['user_allow_viewonline'],
- 'user_notify_type' => $notifymethod,
+ 'user_allow_pm' => $allowpm,
+ 'user_allow_viewemail' => $viewemail,
+ 'user_allow_massemail' => $massemail,
+ 'user_allow_viewonline' => ($auth->acl_get('u_hideonline')) ? !$hideonline : $user->data['user_allow_viewonline'],
+ 'user_notify_type' => $notifymethod,
'user_notify_pm' => $notifypm,
- 'user_options' => $user->data['user_options'],
+ 'user_options' => $user->data['user_options'],
'user_dst' => $dst,
'user_dateformat' => $dateformat,
@@ -78,7 +78,7 @@ class ucp_prefs extends module
'user_style' => $style,
);
- $sql = 'UPDATE ' . USERS_TABLE . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -117,34 +117,34 @@ class ucp_prefs extends module
$style = (isset($style)) ? $style : $user->data['user_style'];
$tz = (isset($tz)) ? $tz : $user->data['user_timezone'];
- $template->assign_vars(array(
+ $template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'VIEW_EMAIL_YES' => $view_email_yes,
- 'VIEW_EMAIL_NO' => $view_email_no,
- 'ADMIN_EMAIL_YES' => $mass_email_yes,
- 'ADMIN_EMAIL_NO' => $mass_email_no,
- 'HIDE_ONLINE_YES' => $hide_online_yes,
- 'HIDE_ONLINE_NO' => $hide_online_no,
- 'ALLOW_PM_YES' => $allow_pm_yes,
- 'ALLOW_PM_NO' => $allow_pm_no,
- 'NOTIFY_PM_YES' => $notify_pm_yes,
- 'NOTIFY_PM_NO' => $notify_pm_no,
- 'POPUP_PM_YES' => $popup_pm_yes,
- 'POPUP_PM_NO' => $popup_pm_no,
- 'DST_YES' => $dst_yes,
- 'DST_NO' => $dst_no,
- 'NOTIFY_EMAIL' => ($notifymethod == NOTIFY_EMAIL) ? 'checked="checked"' : '',
- 'NOTIFY_IM' => ($notifymethod == NOTIFY_IM) ? 'checked="checked"' : '',
- 'NOTIFY_BOTH' => ($notifymethod == NOTIFY_BOTH) ? 'checked="checked"' : '',
-
- 'DATE_FORMAT' => $dateformat,
-
- 'S_LANG_OPTIONS' => language_select($lang),
+ 'VIEW_EMAIL_YES' => $view_email_yes,
+ 'VIEW_EMAIL_NO' => $view_email_no,
+ 'ADMIN_EMAIL_YES' => $mass_email_yes,
+ 'ADMIN_EMAIL_NO' => $mass_email_no,
+ 'HIDE_ONLINE_YES' => $hide_online_yes,
+ 'HIDE_ONLINE_NO' => $hide_online_no,
+ 'ALLOW_PM_YES' => $allow_pm_yes,
+ 'ALLOW_PM_NO' => $allow_pm_no,
+ 'NOTIFY_PM_YES' => $notify_pm_yes,
+ 'NOTIFY_PM_NO' => $notify_pm_no,
+ 'POPUP_PM_YES' => $popup_pm_yes,
+ 'POPUP_PM_NO' => $popup_pm_no,
+ 'DST_YES' => $dst_yes,
+ 'DST_NO' => $dst_no,
+ 'NOTIFY_EMAIL' => ($notifymethod == NOTIFY_EMAIL) ? 'checked="checked"' : '',
+ 'NOTIFY_IM' => ($notifymethod == NOTIFY_IM) ? 'checked="checked"' : '',
+ 'NOTIFY_BOTH' => ($notifymethod == NOTIFY_BOTH) ? 'checked="checked"' : '',
+
+ 'DATE_FORMAT' => $dateformat,
+
+ 'S_LANG_OPTIONS' => language_select($lang),
'S_STYLE_OPTIONS' => style_select($style),
'S_TZ_OPTIONS' => tz_select($tz),
- 'S_CAN_HIDE_ONLINE' => true,
- 'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false,
+ 'S_CAN_HIDE_ONLINE' => true,
+ 'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false,
)
);
break;
@@ -154,16 +154,16 @@ class ucp_prefs extends module
if ($submit)
{
$var_ary = array(
- 'sk' => (string) 't',
- 'sd' => (string) 'd',
+ 'sk' => (string) 't',
+ 'sd' => (string) 'd',
'st' => 0,
- 'images' => true,
- 'flash' => false,
- 'smilies' => true,
- 'sigs' => true,
- 'avatars' => true,
- 'wordcensor'=> false,
+ 'images' => true,
+ 'flash' => false,
+ 'smilies' => true,
+ 'sigs' => true,
+ 'avatars' => true,
+ 'wordcensor'=> false,
);
foreach ($var_ary as $var => $default)
@@ -172,8 +172,8 @@ class ucp_prefs extends module
}
$var_ary = array(
- 'sk' => array('string', false, 1, 1),
- 'sd' => array('string', false, 1, 1),
+ 'sk' => array('string', false, 1, 1),
+ 'sd' => array('string', false, 1, 1),
);
$error = validate_data($data, $var_ary);
@@ -193,13 +193,13 @@ class ucp_prefs extends module
}
$sql_ary = array(
- 'user_options' => $user->data['user_options'],
+ 'user_options' => $user->data['user_options'],
'user_sortby_type' => $sk,
'user_sortby_dir' => $sd,
- 'user_show_days' => $st,
+ 'user_show_days' => $st,
);
- $sql = 'UPDATE ' . USERS_TABLE . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -242,25 +242,25 @@ class ucp_prefs extends module
$wordcensor_yes = ($wordcensor) ? ' checked="checked"' : '';
$wordcensor_no = (!$wordcensor) ? ' checked="checked"' : '';
- $template->assign_vars(array(
+ $template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'VIEW_IMAGES_YES' => $images_yes,
- 'VIEW_IMAGES_NO' => $images_no,
- 'VIEW_FLASH_YES' => $flash_yes,
- 'VIEW_FLASH_NO' => $flash_no,
- 'VIEW_SMILIES_YES' => $smilies_yes,
- 'VIEW_SMILIES_NO' => $smilies_no,
- 'VIEW_SIGS_YES' => $sigs_yes,
- 'VIEW_SIGS_NO' => $sigs_no,
- 'VIEW_AVATARS_YES' => $avatars_yes,
+ 'VIEW_IMAGES_YES' => $images_yes,
+ 'VIEW_IMAGES_NO' => $images_no,
+ 'VIEW_FLASH_YES' => $flash_yes,
+ 'VIEW_FLASH_NO' => $flash_no,
+ 'VIEW_SMILIES_YES' => $smilies_yes,
+ 'VIEW_SMILIES_NO' => $smilies_no,
+ 'VIEW_SIGS_YES' => $sigs_yes,
+ 'VIEW_SIGS_NO' => $sigs_no,
+ 'VIEW_AVATARS_YES' => $avatars_yes,
'VIEW_AVATARS_NO' => $avatars_no,
- 'DISABLE_CENSORS_YES' => $wordcensor_yes,
+ 'DISABLE_CENSORS_YES' => $wordcensor_yes,
'DISABLE_CENSORS_NO' => $wordcensor_no,
- 'S_CHANGE_CENSORS' => ($auth->acl_get('u_chgcensors')) ? true : false,
+ 'S_CHANGE_CENSORS' => ($auth->acl_get('u_chgcensors')) ? true : false,
'S_SELECT_SORT_DAYS' => $s_limit_days,
- 'S_SELECT_SORT_KEY' => $s_sort_key,
+ 'S_SELECT_SORT_KEY' => $s_sort_key,
'S_SELECT_SORT_DIR' => $s_sort_dir)
);
@@ -271,11 +271,11 @@ class ucp_prefs extends module
if ($submit)
{
$var_ary = array(
- 'bbcode' => true,
- 'html' => false,
+ 'bbcode' => true,
+ 'html' => false,
'smilies' => true,
- 'sig' => true,
- 'notify' => false,
+ 'sig' => true,
+ 'notify' => false,
);
foreach ($var_ary as $var => $default)
@@ -295,7 +295,7 @@ class ucp_prefs extends module
'user_notify' => $notify,
);
- $sql = 'UPDATE ' . USERS_TABLE . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -305,7 +305,7 @@ class ucp_prefs extends module
trigger_error($message);
}
}
-
+
$bbcode = (isset($bbcode)) ? $bbcode : $user->optionget('bbcode');
$bbcode_yes = ($bbcode) ? ' checked="checked"' : '';
$bbcode_no = (!$bbcode) ? ' checked="checked"' : '';
@@ -322,24 +322,24 @@ class ucp_prefs extends module
$notify_yes = ($notify) ? ' checked="checked"' : '';
$notify_no = (!$notify) ? ' checked="checked"' : '';
- $template->assign_vars(array(
+ $template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'DEFAULT_BBCODE_YES' => $bbcode_yes,
- 'DEFAULT_BBCODE_NO' => $bbcode_no,
- 'DEFAULT_HTML_YES' => $html_yes,
- 'DEFAULT_HTML_NO' => $html_no,
- 'DEFAULT_SMILIES_YES' => $smilies_yes,
- 'DEFAULT_SMILIES_NO' => $smilies_no,
- 'DEFAULT_SIG_YES' => $sig_yes,
- 'DEFAULT_SIG_NO' => $sig_no,
- 'DEFAULT_NOTIFY_YES' => $notify_yes,
+ 'DEFAULT_BBCODE_YES' => $bbcode_yes,
+ 'DEFAULT_BBCODE_NO' => $bbcode_no,
+ 'DEFAULT_HTML_YES' => $html_yes,
+ 'DEFAULT_HTML_NO' => $html_no,
+ 'DEFAULT_SMILIES_YES' => $smilies_yes,
+ 'DEFAULT_SMILIES_NO' => $smilies_no,
+ 'DEFAULT_SIG_YES' => $sig_yes,
+ 'DEFAULT_SIG_NO' => $sig_no,
+ 'DEFAULT_NOTIFY_YES' => $notify_yes,
'DEFAULT_NOTIFY_NO' => $notify_no,)
);
break;
}
- $template->assign_vars(array(
+ $template->assign_vars(array(
'L_TITLE' => $user->lang['UCP_PREFS_' . strtoupper($mode)],
'S_HIDDEN_FIELDS' => $s_hidden_fields,
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index 9d35112544..9e84e5fba3 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -7,8 +7,8 @@
// STARTED : Mon May 19, 2003
// COPYRIGHT : © 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
class ucp_profile extends module
@@ -31,12 +31,12 @@ class ucp_profile extends module
if ($submit)
{
$var_ary = array(
- 'username' => $user->data['username'],
- 'email' => $user->data['user_email'],
+ 'username' => $user->data['username'],
+ 'email' => $user->data['user_email'],
'email_confirm' => (string) '',
- 'new_password' => (string) '',
- 'cur_password' => (string) '',
- 'password_confirm' => (string) '',
+ 'new_password' => (string) '',
+ 'cur_password' => (string) '',
+ 'password_confirm' => (string) '',
);
foreach ($var_ary as $var => $default)
@@ -46,15 +46,15 @@ class ucp_profile extends module
$var_ary = array(
'username' => array(
- array('string', false, $config['min_name_chars'], $config['max_name_chars']),
+ array('string', false, $config['min_name_chars'], $config['max_name_chars']),
array('username', $username)),
- 'password_confirm' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
- 'new_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
- 'cur_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
+ 'password_confirm' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
+ 'new_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
+ 'cur_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),
'email' => array(
- array('string', false, 6, 60),
- array('email', $email)),
- 'email_confirm' => array('string', true, 6, 60),
+ array('string', false, 6, 60),
+ array('email', $email)),
+ 'email_confirm' => array('string', true, 6, 60),
);
$error = validate_data($data, $var_ary);
@@ -79,11 +79,11 @@ class ucp_profile extends module
if (!sizeof($error))
{
$sql_ary = array(
- 'username' => ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? $username : $user->data['username'],
- 'user_email' => ($auth->acl_get('u_chgemail')) ? $email : $user->data['user_email'],
- 'user_email_hash' => ($auth->acl_get('u_chgemail')) ? crc32(strtolower($email)) . strlen($email) : $user->data['user_email_hash'],
- 'user_password' => ($auth->acl_get('u_chgpasswd') && $new_password) ? md5($new_password) : $user->data['user_password'],
- 'user_passchg' => time(),
+ 'username' => ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? $username : $user->data['username'],
+ 'user_email' => ($auth->acl_get('u_chgemail')) ? $email : $user->data['user_email'],
+ 'user_email_hash' => ($auth->acl_get('u_chgemail')) ? crc32(strtolower($email)) . strlen($email) : $user->data['user_email_hash'],
+ 'user_password' => ($auth->acl_get('u_chgpasswd') && $new_password) ? md5($new_password) : $user->data['user_password'],
+ 'user_passchg' => time(),
);
if ($config['email_enable'] && $email != $user->data['user_email'] && ($config['require_activation'] == USER_ACTIVATION_SELF || $config['require_activation'] == USER_ACTIVATION_ADMIN))
@@ -128,7 +128,7 @@ class ucp_profile extends module
$admin_ary = $auth->acl_get_list(false, 'a_user', false);
$sql = 'SELECT user_id, username, user_email, user_jabber, user_notify_type
- FROM ' . USERS_TABLE . '
+ FROM ' . USERS_TABLE . '
WHERE user_id IN (' . implode(', ', $admin_ary[0]['a_user']) .')';
$result = $db->sql_query($sql);
@@ -159,8 +159,8 @@ class ucp_profile extends module
);
}
- $sql = 'UPDATE ' . USERS_TABLE . '
- SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -181,17 +181,17 @@ class ucp_profile extends module
$template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'USERNAME' => (isset($username)) ? $username : $user->data['username'],
- 'EMAIL' => (isset($email)) ? $email : $user->data['user_email'],
- 'PASSWORD_CONFIRM' => (isset($password_confirm)) ? $password_confirm : '',
- 'NEW_PASSWORD' => (isset($new_password)) ? $new_password : '',
- 'CUR_PASSWORD' => '',
-
- 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
- 'L_CHANGE_PASSWORD_EXPLAIN' => sprintf($user->lang['CHANGE_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
-
- 'S_FORCE_PASSWORD' => ($config['chg_passforce'] && $this->data['user_passchg'] < time() - $config['chg_passforce']) ? true : false,
- 'S_CHANGE_USERNAME' => ($config['allow_namechange'] && $auth->acl_get('u_chgname')) ? true : false,
+ 'USERNAME' => (isset($username)) ? $username : $user->data['username'],
+ 'EMAIL' => (isset($email)) ? $email : $user->data['user_email'],
+ 'PASSWORD_CONFIRM' => (isset($password_confirm)) ? $password_confirm : '',
+ 'NEW_PASSWORD' => (isset($new_password)) ? $new_password : '',
+ 'CUR_PASSWORD' => '',
+
+ 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
+ 'L_CHANGE_PASSWORD_EXPLAIN' => sprintf($user->lang['CHANGE_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
+
+ 'S_FORCE_PASSWORD' => ($config['chg_passforce'] && $this->data['user_passchg'] < time() - $config['chg_passforce']) ? true : false,
+ 'S_CHANGE_USERNAME' => ($config['allow_namechange'] && $auth->acl_get('u_chgname')) ? true : false,
'S_CHANGE_EMAIL' => ($auth->acl_get('u_chgemail')) ? true : false,
'S_CHANGE_PASSWORD' => ($auth->acl_get('u_chgpasswd')) ? true : false)
);
@@ -207,12 +207,12 @@ class ucp_profile extends module
if ($submit)
{
$var_ary = array(
- 'icq' => (string) '',
- 'aim' => (string) '',
- 'msn' => (string) '',
- 'yim' => (string) '',
- 'jabber' => (string) '',
- 'website' => (string) '',
+ 'icq' => (string) '',
+ 'aim' => (string) '',
+ 'msn' => (string) '',
+ 'yim' => (string) '',
+ 'jabber' => (string) '',
+ 'website' => (string) '',
'location' => (string) '',
'occupation' => (string) '',
'interests' => (string) '',
@@ -228,20 +228,20 @@ class ucp_profile extends module
$var_ary = array(
'icq' => array(
- array('string', true, 3, 15),
- array('match', true, '#^[0-9]+$#i')),
- 'aim' => array('string', true, 5, 255),
- 'msn' => array('string', true, 5, 255),
+ array('string', true, 3, 15),
+ array('match', true, '#^[0-9]+$#i')),
+ 'aim' => array('string', true, 5, 255),
+ 'msn' => array('string', true, 5, 255),
'jabber' => array(
- array('string', true, 5, 255),
+ array('string', true, 5, 255),
array('match', true, '#^[a-z0-9\.\-_\+]+?@(.*?\.)*?[a-z0-9\-_]+?\.[a-z]{2,4}(/.*)?$#i')),
- 'yim' => array('string', true, 5, 255),
+ 'yim' => array('string', true, 5, 255),
'website' => array(
- array('string', true, 12, 255),
- array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),
- 'location' => array('string', true, 2, 255),
- 'occupation' => array('string', true, 2, 500),
- 'interests' => array('string', true, 2, 500),
+ array('string', true, 12, 255),
+ array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),
+ 'location' => array('string', true, 2, 255),
+ 'occupation' => array('string', true, 2, 500),
+ 'interests' => array('string', true, 2, 500),
'bday_day' => array('num', true, 1, 31),
'bday_month' => array('num', true, 1, 12),
'bday_year' => array('num', true, 1901, gmdate('Y', time())),
@@ -269,7 +269,7 @@ class ucp_profile extends module
'user_birthday' => sprintf('%2d-%2d-%4d', $bday_day, $bday_month, $bday_year),
);
- $sql = 'UPDATE ' . USERS_TABLE . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -277,7 +277,7 @@ class ucp_profile extends module
// Update Custom Fields
if (sizeof($cp_data))
{
- $sql = 'UPDATE ' . PROFILE_DATA_TABLE . '
+ $sql = 'UPDATE ' . PROFILE_DATA_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $cp_data) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -333,21 +333,21 @@ class ucp_profile extends module
$template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'ICQ' => (isset($icq)) ? $icq : $user->data['user_icq'],
- 'YIM' => (isset($yim)) ? $yim : $user->data['user_yim'],
- 'AIM' => (isset($aim)) ? $aim : $user->data['user_aim'],
- 'MSN' => (isset($msn)) ? $msn : $user->data['user_msnm'],
- 'JABBER' => (isset($jabber)) ? $jabber : $user->data['user_jabber'],
- 'WEBSITE' => (isset($website)) ? $website : $user->data['user_website'],
- 'LOCATION' => (isset($location)) ? $location : $user->data['user_from'],
- 'OCCUPATION'=> (isset($occupation)) ? $occupation : $user->data['user_occ'],
- 'INTERESTS' => (isset($interests)) ? $interests : $user->data['user_interests'],
-
- 'S_BIRTHDAY_DAY_OPTIONS' => $s_birthday_day_options,
- 'S_BIRTHDAY_MONTH_OPTIONS' => $s_birthday_month_options,
+ 'ICQ' => (isset($icq)) ? $icq : $user->data['user_icq'],
+ 'YIM' => (isset($yim)) ? $yim : $user->data['user_yim'],
+ 'AIM' => (isset($aim)) ? $aim : $user->data['user_aim'],
+ 'MSN' => (isset($msn)) ? $msn : $user->data['user_msnm'],
+ 'JABBER' => (isset($jabber)) ? $jabber : $user->data['user_jabber'],
+ 'WEBSITE' => (isset($website)) ? $website : $user->data['user_website'],
+ 'LOCATION' => (isset($location)) ? $location : $user->data['user_from'],
+ 'OCCUPATION'=> (isset($occupation)) ? $occupation : $user->data['user_occ'],
+ 'INTERESTS' => (isset($interests)) ? $interests : $user->data['user_interests'],
+
+ 'S_BIRTHDAY_DAY_OPTIONS' => $s_birthday_day_options,
+ 'S_BIRTHDAY_MONTH_OPTIONS' => $s_birthday_month_options,
'S_BIRTHDAY_YEAR_OPTIONS' => $s_birthday_year_options,)
);
-
+
// Get additional profile fields and assign them to the template block var 'profile_fields'
$user->get_profile_fields($user->data['user_id']);
@@ -360,11 +360,11 @@ class ucp_profile extends module
include($phpbb_root_path . 'includes/functions_posting.'.$phpEx);
$var_ary = array(
- 'enable_html' => (bool) $config['allow_html'],
- 'enable_bbcode' => (bool) $config['allow_bbcode'],
+ 'enable_html' => (bool) $config['allow_html'],
+ 'enable_bbcode' => (bool) $config['allow_bbcode'],
'enable_smilies' => (bool) $config['allow_smilies'],
- 'enable_urls' => true,
- 'signature' => (string) $user->data['user_sig'],
+ 'enable_urls' => true,
+ 'signature' => (string) $user->data['user_sig'],
);
@@ -388,13 +388,13 @@ class ucp_profile extends module
$message_parser->parse($enable_html, $enable_bbcode, $enable_urls, $enable_smilies);
$sql_ary = array(
- 'user_sig' => (string) $message_parser->message,
- 'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid,
+ 'user_sig' => (string) $message_parser->message,
+ 'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid,
'user_sig_bbcode_bitfield' => (int) $message_parser->bbcode_bitfield
);
- $sql = 'UPDATE ' . USERS_TABLE . '
- SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -430,21 +430,20 @@ class ucp_profile extends module
$signature_preview = str_replace("\n", '<br />', censor_text($signature_preview));
}
- $html_status = ($config['allow_html']) ? true : false;
- $bbcode_status = ($config['allow_bbcode']) ? true : false;
- $smilies_status = ($config['allow_smilies']) ? true : false;
-
+ $html_status = ($config['allow_html']) ? true : false;
+ $bbcode_status = ($config['allow_bbcode']) ? true : false;
+ $smilies_status = ($config['allow_smilies']) ? true : false;
// NOTE: allow_img and allow_flash do not exist in config table
- $img_status = ($config['allow_img']) ? true : false;
- $flash_status = ($config['allow_flash']) ? true : false;
+ $img_status = ($config['allow_img']) ? true : false;
+ $flash_status = ($config['allow_flash']) ? true : false;
decode_text($signature, $user->data['user_sig_bbcode_uid']);
$template->assign_vars(array(
- 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
+ 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'SIGNATURE' => $signature,
- 'SIGNATURE_PREVIEW' => $signature_preview,
-
+ 'SIGNATURE_PREVIEW' => $signature_preview,
+
'S_HTML_CHECKED' => (!$enable_html) ? 'checked="checked"' : '',
'S_BBCODE_CHECKED' => (!$enable_bbcode) ? 'checked="checked"' : '',
'S_SMILIES_CHECKED' => (!$enable_smilies) ? 'checked="checked"' : '',
@@ -456,10 +455,10 @@ class ucp_profile extends module
'IMG_STATUS' => ($img_status) ? $user->lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF'],
'FLASH_STATUS' => ($flash_status) ? $user->lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF'],
- 'L_SIGNATURE_EXPLAIN' => sprintf($user->lang['SIGNATURE_EXPLAIN'], $config['max_sig_chars']),
+ 'L_SIGNATURE_EXPLAIN' => sprintf($user->lang['SIGNATURE_EXPLAIN'], $config['max_sig_chars']),
- 'S_HTML_ALLOWED' => $config['allow_html'],
- 'S_BBCODE_ALLOWED' => $config['allow_bbcode'],
+ 'S_HTML_ALLOWED' => $config['allow_html'],
+ 'S_BBCODE_ALLOWED' => $config['allow_bbcode'],
'S_SMILIES_ALLOWED' => $config['allow_smilies'],)
);
break;
@@ -469,16 +468,16 @@ class ucp_profile extends module
$display_gallery = (isset($_POST['displaygallery'])) ? true : false;
$avatar_category = request_var('category', '');
- // Can we upload?
+ // Can we upload?
$can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && is_writeable($phpbb_root_path . $config['avatar_path']) && $auth->acl_get('u_chgavatar') && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
if ($submit)
{
$var_ary = array(
- 'uploadurl' => (string) '',
- 'remotelink' => (string) '',
+ 'uploadurl' => (string) '',
+ 'remotelink' => (string) '',
'width' => (string) '',
- 'height' => (string) '',
+ 'height' => (string) '',
);
foreach ($var_ary as $var => $default)
@@ -487,10 +486,10 @@ class ucp_profile extends module
}
$var_ary = array(
- 'uploadurl' => array('string', true, 5, 255),
- 'remotelink' => array('string', true, 5, 255),
- 'width' => array('string', true, 1, 3),
- 'height' => array('string', true, 1, 3),
+ 'uploadurl' => array('string', true, 5, 255),
+ 'remotelink' => array('string', true, 5, 255),
+ 'width' => array('string', true, 1, 3),
+ 'height' => array('string', true, 1, 3),
);
$error = validate_data($data, $var_ary);
@@ -519,14 +518,14 @@ class ucp_profile extends module
if (sizeof($data))
{
$sql_ary = array(
- 'user_avatar' => $filename,
- 'user_avatar_type' => $type,
- 'user_avatar_width' => $width,
- 'user_avatar_height' => $height,
+ 'user_avatar' => $filename,
+ 'user_avatar_type' => $type,
+ 'user_avatar_width' => $width,
+ 'user_avatar_height' => $height,
);
- $sql = 'UPDATE ' . USERS_TABLE . '
- SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
@@ -565,11 +564,11 @@ class ucp_profile extends module
}
$template->assign_vars(array(
- 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'AVATAR' => $avatar_img,
- 'AVATAR_SIZE' => $config['avatar_filesize'],
+ 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
+ 'AVATAR' => $avatar_img,
+ 'AVATAR_SIZE' => $config['avatar_filesize'],
- 'S_FORM_ENCTYPE' => ($can_upload) ? ' enctype="multipart/form-data"' : '',
+ 'S_FORM_ENCTYPE' => ($can_upload) ? ' enctype="multipart/form-data"' : '',
'L_AVATAR_EXPLAIN' => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)),)
);
@@ -611,16 +610,16 @@ class ucp_profile extends module
else
{
$template->assign_vars(array(
- 'AVATAR' => $avatar_img,
- 'AVATAR_SIZE' => $config['avatar_filesize'],
- 'WIDTH' => (isset($width)) ? $width : $user->data['user_avatar_width'],
- 'HEIGHT' => (isset($height)) ? $height : $user->data['user_avatar_height'],
+ 'AVATAR' => $avatar_img,
+ 'AVATAR_SIZE' => $config['avatar_filesize'],
+ 'WIDTH' => (isset($width)) ? $width : $user->data['user_avatar_width'],
+ 'HEIGHT' => (isset($height)) ? $height : $user->data['user_avatar_height'],
'S_UPLOAD_AVATAR_FILE' => $can_upload,
- 'S_UPLOAD_AVATAR_URL' => $can_upload,
- 'S_LINK_AVATAR' => ($auth->acl_get('u_chgavatar') && $config['allow_avatar_remote']) ? true : false,
+ 'S_UPLOAD_AVATAR_URL' => $can_upload,
+ 'S_LINK_AVATAR' => ($auth->acl_get('u_chgavatar') && $config['allow_avatar_remote']) ? true : false,
'S_GALLERY_AVATAR' => ($auth->acl_get('u_chgavatar') && $config['allow_avatar_local']) ? true : false,
- 'S_AVATAR_CAT_OPTIONS' => $s_categories,
+ 'S_AVATAR_CAT_OPTIONS' => $s_categories,
'S_AVATAR_PAGE_OPTIONS' => $s_pages,)
);
}
diff --git a/phpBB/install/schemas/mysql_schema.sql b/phpBB/install/schemas/mysql_schema.sql
index 00e12f2657..18733cc6ea 100644
--- a/phpBB/install/schemas/mysql_schema.sql
+++ b/phpBB/install/schemas/mysql_schema.sql
@@ -602,7 +602,8 @@ CREATE TABLE phpbb_sessions (
session_ip varchar(40) DEFAULT '0' NOT NULL,
session_browser varchar(100) DEFAULT '' NULL,
session_page varchar(100) DEFAULT '' NOT NULL,
- session_allow_viewonline tinyint(1) DEFAULT '1' NOT NULL,
+ session_viewonline tinyint(1) DEFAULT '1' NOT NULL,
+ session_admin tinyint(1) DEFAULT '0' NOT NULL,
PRIMARY KEY (session_id),
KEY session_time (session_time),
KEY session_user_id (session_user_id)
diff --git a/phpBB/language/en/admin.php b/phpBB/language/en/admin.php
index 5a8b0e912f..bf2bdb4092 100644
--- a/phpBB/language/en/admin.php
+++ b/phpBB/language/en/admin.php
@@ -7,8 +7,8 @@
// STARTED : Sat Dec 16, 2000
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
// DO NOT CHANGE
@@ -17,7 +17,7 @@ if (empty($lang) || !is_array($lang))
$lang = array();
}
-// DEVELOPERS PLEASE NOTE
+// DEVELOPERS PLEASE NOTE
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
@@ -28,9 +28,11 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang += array(
- 'LOGIN_ADMIN' => 'You must be a registered, logged in user before attempting to administer the board.',
- 'NO_ADMIN' => 'You are not authorised to administer this board.',
- 'NO_FRAMES' => 'Sorry, your browser does not support frames.',
+ 'LOGIN_ADMIN' => 'To administer the board you must be an authenticated user.',
+ 'LOGIN_ADMIN_CONFIRM' => 'To administer the board you must re-authenticate yourself.',
+ 'LOGIN_ADMIN_SUCCESS' => 'You have successfully authenticated and will now be redirected to the Administration Control Panel',
+ 'NO_ADMIN' => 'You are not authorised to administer this board.',
+ 'NO_FRAMES' => 'Sorry, your browser does not support frames.',
'ADMIN_TITLE' => 'Administration Panel',
'ADMIN' => 'Administration',
@@ -39,11 +41,11 @@ $lang += array(
'FORUM_INDEX' => 'Forum Index',
'ADMIN_INDEX' => 'Admin Index',
- 'DB_CAT' => 'Database',
+ 'DB_CAT' => 'Database',
'DB_BACKUP' => 'Backup Database',
'DB_RESTORE' => 'Restore Database',
- 'SEARCH_INDEX' => 'Search Indexing',
- 'DB_UTILS' => 'Database Utilities',
+ 'SEARCH_INDEX' => 'Search Indexing',
+ 'DB_UTILS' => 'Database Utilities',
'FORUM_CAT' => 'Forums',
'PRUNE' => 'Pruning',
@@ -58,21 +60,21 @@ $lang += array(
'MESSAGE_SETTINGS' => 'Message Settings',
'EMAIL_SETTINGS' => 'Email Settings',
'MASS_EMAIL' => 'Mass Email',
- 'SERVER_SETTINGS' => 'Server Settings',
- 'LOAD_SETTINGS' => 'Load Settings',
- 'EVENTS' => 'Events',
- 'CRON' => 'Cronjobs',
- 'PHP_INFO' => 'PHP Information',
- 'IM' => 'Jabber Settings',
+ 'SERVER_SETTINGS' => 'Server Settings',
+ 'LOAD_SETTINGS' => 'Load Settings',
+ 'EVENTS' => 'Events',
+ 'CRON' => 'Cronjobs',
+ 'PHP_INFO' => 'PHP Information',
+ 'IM' => 'Jabber Settings',
'LOG_CAT' => 'Logging',
'ADMIN_LOGS' => 'Admin Log',
'MOD_LOGS' => 'Moderator Log',
'CRITICAL_LOGS' => 'Error Log',
- 'PERM_CAT' => 'Permissions',
- 'USER_PERMS' => 'User permissions',
- 'GROUP_PERMS' => 'Group permissions',
+ 'PERM_CAT' => 'Permissions',
+ 'USER_PERMS' => 'User permissions',
+ 'GROUP_PERMS' => 'Group permissions',
'POST_CAT' => 'Posting',
'SMILE' => 'Smilies',
@@ -80,47 +82,47 @@ $lang += array(
'WORD_CENSOR' => 'Word Censors',
'STYLE_CAT' => 'Styles',
- 'MANAGE_STYLE' => 'Styles',
- 'MANAGE_TEMPLATE' => 'Templates',
- 'MANAGE_THEME' => 'Themes',
- 'MANAGE_IMAGESET' => 'Imagesets',
+ 'MANAGE_STYLE' => 'Styles',
+ 'MANAGE_TEMPLATE' => 'Templates',
+ 'MANAGE_THEME' => 'Themes',
+ 'MANAGE_IMAGESET' => 'Imagesets',
- 'USER_CAT' => 'Users / Groups',
- 'MANAGE_USERS' => 'Manage Users',
+ 'USER_CAT' => 'Users / Groups',
+ 'MANAGE_USERS' => 'Manage Users',
'BAN_EMAILS' => 'Ban Emails',
'BAN_IPS' => 'Ban IPs',
'BAN_USERS' => 'Ban Usernames',
'DISALLOW' => 'Disallow names',
'RANKS' => 'Ranks',
- 'PRUNE_USERS' => 'Prune users',
- 'BOTS' => 'Manage Bots',
- 'GROUP_MANAGE' => 'Manage groups',
- 'CUSTOM_PROFILE_FIELDS' => 'Profile fields',
+ 'PRUNE_USERS' => 'Prune users',
+ 'BOTS' => 'Manage Bots',
+ 'GROUP_MANAGE' => 'Manage groups',
+ 'CUSTOM_PROFILE_FIELDS' => 'Profile fields',
'ADMINISTRATORS' => 'Administrators',
- 'USERNAMES_EXPLAIN' => 'Place each username on a seperate line',
+ 'USERNAMES_EXPLAIN' => 'Place each username on a seperate line',
'LOOK_UP_FORUM' => 'Select a Forum',
'MANAGE' => 'Manage',
- 'ADD' => 'Add',
- 'PERMISSIONS' => 'Permissions',
+ 'ADD' => 'Add',
+ 'PERMISSIONS' => 'Permissions',
'UPDATE' => 'Update',
- 'EXPORT_STORE' => 'Store',
- 'EXPORT_DOWNLOAD' => 'Download',
- 'CONFIG_UPDATED' => 'Configuration updated successfully',
- 'DOWNLOAD_STORE' => 'Download or Store file',
- 'DOWNLOAD_STORE_EXPLAIN'=> 'You may directly download the file or save it in your store/ folder.',
- 'COLOUR_SWATCH' => 'Web-safe colour swatch',
+ 'EXPORT_STORE' => 'Store',
+ 'EXPORT_DOWNLOAD' => 'Download',
+ 'CONFIG_UPDATED' => 'Configuration updated successfully',
+ 'DOWNLOAD_STORE' => 'Download or Store file',
+ 'DOWNLOAD_STORE_EXPLAIN'=> 'You may directly download the file or save it in your store/ folder.',
+ 'COLOUR_SWATCH' => 'Web-safe colour swatch',
'UPDATE_MARKED' => 'Update Marked',
- 'UPDATE_ALL' => 'Update All',
+ 'UPDATE_ALL' => 'Update All',
- 'CONFIRM_OPERATION' => 'Are you sure you wish to carry out this operation?',
+ 'CONFIRM_OPERATION' => 'Are you sure you wish to carry out this operation?',
'log_index_activate' => '<b>Activated inactive users</b><br />&#187; %s users',
'log_index_delete' => '<b>Deleted inactive users</b><br />&#187; %s',
'LOG_INDEX_REMIND' => '<b>Sent reminder emails to inactive users</b><br />&#187; %s',
- 'LOG_USER_INACTIVE' => '<b>User deactivated</b><br />&#187; %s',
- 'LOG_USER_ACTIVE' => '<b>User activated</b><br />&#187; %s',
+ 'LOG_USER_INACTIVE' => '<b>User deactivated</b><br />&#187; %s',
+ 'LOG_USER_ACTIVE' => '<b>User activated</b><br />&#187; %s',
'LOG_MASS_EMAIL' => '<b>Sent mass email</b><br />&#187; %s',
@@ -155,7 +157,7 @@ $lang += array(
'LOG_DOWNLOAD_EXCLUDE_IP' => '<b>Exluded ip/hostname from download list</b><br />&#187; %s',
'LOG_DOWNLOAD_IP' => '<b>Added ip/hostname to download list</b><br />&#187; %s',
'LOG_DOWNLOAD_REMOVE_IP' => '<b>Removed ip/hostname from download list</b><br />&#187; %s',
-
+
'LOG_SERVER_CONFIG' => '<b>Altered server settings</b>',
'LOG_DEFAULT_CONFIG' => '<b>Altered board defaults</b>',
'LOG_SETTING_CONFIG' => '<b>Altered board settings</b>',
@@ -163,7 +165,7 @@ $lang += array(
'LOG_EMAIL_CONFIG' => '<b>Altered email settings</b>',
'LOG_AVATAR_CONFIG' => '<b>Altered avatar settings</b>',
'LOG_AUTH_CONFIG' => '<b>Altered authentication settings</b>',
- 'LOG_LOAD_CONFIG' => '<b>Altered load settings</b>',
+ 'LOG_LOAD_CONFIG' => '<b>Altered load settings</b>',
'LOG_MESSAGE_CONFIG' => '<b>Altered private message settings</b>',
'LOG_ATTACH_CONFIG' => '<b>Altered attachment settings</b>',
@@ -180,89 +182,89 @@ $lang += array(
'log_prune_user_del_del'=> '<b>Users Pruned and Posts Deleted</b><br />%s',
'log_prune_user_del_anon'=> '<b>Users Pruned and Posts Retained</b><br />%s',
- 'LOG_RESYNC_STATS' => '<b>Post, topic and user stats reset</b>',
- 'LOG_RESET_DATE' => '<b>Board start date reset</b>',
+ 'LOG_RESYNC_STATS' => '<b>Post, topic and user stats reset</b>',
+ 'LOG_RESET_DATE' => '<b>Board start date reset</b>',
'LOG_RESET_ONLINE' => '<b>Most users online reset</b>',
- 'LOG_ACL_MOD_DEL' => '<b>Removed Moderators</b> from %s<br />&#187; %s',
- 'LOG_ACL_MOD_ADD' => '<b>Added or edited Moderators</b> from %s<br />&#187; %s',
- 'LOG_ACL_SUPERMOD_DEL' => '<b>Removed Super Moderators</b><br />&#187; %s',
- 'LOG_ACL_SUPERMOD_ADD' => '<b>Added or edited Super Moderators</b><br />&#187; %s',
- 'LOG_ACL_ADMIN_DEL' => '<b>Removed Administrators</b><br />&#187; %s',
- 'LOG_ACL_ADMIN_ADD' => '<b>Added or edited Administrators</b><br />&#187; %s',
- 'LOG_ACL_FORUM_DEL' => '<b>Removed Forum access</b> from %s<br />&#187; %s',
- 'LOG_ACL_FORUM_ADD' => '<b>Added or edited Forum access</b> from %s<br />&#187; %s',
- 'LOG_ACL_USER_ADD' => '<b>Edited User permissions</b><br />&#187; %s',
- 'LOG_ACL_GROUP_ADD' => '<b>Edited Group permissions</b><br />&#187; %s',
- 'LOG_ACL_PRESET_ADD' => '<b>Added or edited permission preset</b><br />&#187; %s',
- 'LOG_ACL_PRESET_DEL' => '<b>Deleted permission preset</b><br />&#187; %s',
+ 'LOG_ACL_MOD_DEL' => '<b>Removed Moderators</b> from %s<br />&#187; %s',
+ 'LOG_ACL_MOD_ADD' => '<b>Added or edited Moderators</b> from %s<br />&#187; %s',
+ 'LOG_ACL_SUPERMOD_DEL' => '<b>Removed Super Moderators</b><br />&#187; %s',
+ 'LOG_ACL_SUPERMOD_ADD' => '<b>Added or edited Super Moderators</b><br />&#187; %s',
+ 'LOG_ACL_ADMIN_DEL' => '<b>Removed Administrators</b><br />&#187; %s',
+ 'LOG_ACL_ADMIN_ADD' => '<b>Added or edited Administrators</b><br />&#187; %s',
+ 'LOG_ACL_FORUM_DEL' => '<b>Removed Forum access</b> from %s<br />&#187; %s',
+ 'LOG_ACL_FORUM_ADD' => '<b>Added or edited Forum access</b> from %s<br />&#187; %s',
+ 'LOG_ACL_USER_ADD' => '<b>Edited User permissions</b><br />&#187; %s',
+ 'LOG_ACL_GROUP_ADD' => '<b>Edited Group permissions</b><br />&#187; %s',
+ 'LOG_ACL_PRESET_ADD' => '<b>Added or edited permission preset</b><br />&#187; %s',
+ 'LOG_ACL_PRESET_DEL' => '<b>Deleted permission preset</b><br />&#187; %s',
'LOG_FORUM_ADD' => '<b>Created new forum</b><br />&#187; %s',
- 'LOG_FORUM_MOVE_UP' => '<b>Moved forum</b> %s <b>above</b> %s',
- 'LOG_FORUM_MOVE_DOWN' => '<b>Moved forum</b> %s <b>below</b> %s',
- 'LOG_FORUM_EDIT' => '<b>Edited forum details</b><br />&#187; %s',
- 'LOG_FORUM_SYNC' => '<b>Re-synchronised forum</b><br />&#187; %s',
- 'LOG_FORUM_DEL_POSTS' => '<b>Deleted forum and its messages</b><br />&#187; %s',
- 'LOG_FORUM_DEL_FORUMS' => '<b>Deleted forum and its subforums</b><br />&#187; %s',
- 'LOG_FORUM_DEL_POSTS_MOVE_FORUMS' => '<b>Deleted forum and its messages, moved subforums</b> to %s<br />&#187; %s',
- 'LOG_FORUM_DEL_MOVE_POSTS_FORUMS' => '<b>Deleted forum and its subforums, moved messages</b> to %s<br />&#187; %s',
- 'LOG_FORUM_DEL_MOVE_POSTS' => '<b>Deleted forum and moved posts </b> to %s<br />&#187; %s',
- 'LOG_FORUM_DEL_MOVE_FORUMS' => '<b>Deleted forum and moved subforums</b> to %s<br />&#187; %s',
- 'LOG_FORUM_DEL_POSTS_FORUMS'=> '<b>Deleted forum, its messages and subforums</b><br />&#187; %s',
- 'LOG_FORUM_DEL_MOVE_POSTS_MOVE_FORUMS' => '<b>Deleted forum, moved posts</b> to %s <b>and subforums</b> to %s<br />&#187; %s',
+ 'LOG_FORUM_MOVE_UP' => '<b>Moved forum</b> %s <b>above</b> %s',
+ 'LOG_FORUM_MOVE_DOWN' => '<b>Moved forum</b> %s <b>below</b> %s',
+ 'LOG_FORUM_EDIT' => '<b>Edited forum details</b><br />&#187; %s',
+ 'LOG_FORUM_SYNC' => '<b>Re-synchronised forum</b><br />&#187; %s',
+ 'LOG_FORUM_DEL_POSTS' => '<b>Deleted forum and its messages</b><br />&#187; %s',
+ 'LOG_FORUM_DEL_FORUMS' => '<b>Deleted forum and its subforums</b><br />&#187; %s',
+ 'LOG_FORUM_DEL_POSTS_MOVE_FORUMS' => '<b>Deleted forum and its messages, moved subforums</b> to %s<br />&#187; %s',
+ 'LOG_FORUM_DEL_MOVE_POSTS_FORUMS' => '<b>Deleted forum and its subforums, moved messages</b> to %s<br />&#187; %s',
+ 'LOG_FORUM_DEL_MOVE_POSTS' => '<b>Deleted forum and moved posts </b> to %s<br />&#187; %s',
+ 'LOG_FORUM_DEL_MOVE_FORUMS' => '<b>Deleted forum and moved subforums</b> to %s<br />&#187; %s',
+ 'LOG_FORUM_DEL_POSTS_FORUMS'=> '<b>Deleted forum, its messages and subforums</b><br />&#187; %s',
+ 'LOG_FORUM_DEL_MOVE_POSTS_MOVE_FORUMS' => '<b>Deleted forum, moved posts</b> to %s <b>and subforums</b> to %s<br />&#187; %s',
'LOG_GROUP_UPDATED' => '<b>Usergroup details updated</b><br />&#187; %s',
'LOG_GROUP_CREATED' => '<b>New usergroup created</b><br />&#187; %s',
- 'LOG_MODS_ADDED' => '<b>Added new leaders to usergroup</b> %s<br />&#187; %s',
- 'LOG_USERS_ADDED' => '<b>Added new members to usergroup</b> %s<br />&#187; %s',
- 'LOG_GROUP_DEFAULTS' => '<b>Group made default for members</b><br />&#187; %s',
- 'LOG_USERS_APPROVED' => '<b>Users approved in usergroup</b> %s<br />&#187; %s',
- 'LOG_GROUP_DEMOTED' => '<b>Leaders demoted in usergroup</b> %s<br />&#187; %s',
- 'LOG_GROUP_PROMOTED' => '<b>Members promoted to leader in usergroup</b> %s<br />&#187; %s',
- 'LOG_GROUP_REMOVE' => '<b>Members removed from usergroup</b> %s<br />&#187; %s',
- 'LOG_GROUP_DELETE' => '<b>Usergroup deleted</b><br />&#187; %s',
-
- 'LOG_ADD_STYLE' => '<b>Added new style</b><br />&#187; %s',
- 'LOG_EDIT_STYLE' => '<b>Edited style</b><br />&#187; %s',
- 'LOG_EXPORT_STYLE' => '<b>Exported style</b><br />&#187; %s',
- 'LOG_DELETE_STYLE' => '<b>Deleted style</b><br />&#187; %s',
-
- 'LOG_ADD_THEME_FS' => '<b>Add new theme on filesystem</b><br />&#187; %s',
- 'LOG_ADD_THEME_DB' => '<b>Added new theme to database</b><br />&#187; %s',
- 'LOG_EDIT_THEME' => '<b>Edited theme</b><br />&#187; %s',
- 'LOG_EDIT_THEME_DETAILS'=> '<b>Edited theme details</b><br />&#187; %s',
- 'LOG_EXPORT_THEME' => '<b>Exported theme</b><br />&#187; %s',
- 'LOG_DELETE_THEME' => '<b>Theme deleted</b><br />&#187; %s',
-
- 'LOG_ADD_TEMPLATE_FS' => '<b>Add new template set on filesystem</b><br />&#187; %s',
- 'LOG_ADD_TEMPLATE_DB' => '<b>Added new template set to database</b><br />&#187; %s',
- 'LOG_EDIT_TEMPLATE' => '<b>Edited template set</b><br />&#187; %s',
- 'LOG_EDIT_TEMPLATE_DETAILS' => '<b>Edited template details</b><br />&#187; %s',
- 'LOG_EXPORT_TEMPLATE' => '<b>Exported template set</b><br />&#187; %s',
- 'LOG_DELETE_TEMPLATE' => '<b>Deleted template set</b><br />&#187; %s',
- 'LOG_EDIT_TEMPLATE' => '<b>Edited template</b><br />&#187; %s [%s]',
- 'LOG_CLEAR_TPLCACHE' => '<b>Cleared template cache</b><br />&#187; %s',
-
- 'LOG_ADD_IMAGESET' => '<b>Added new imageset</b><br />&#187; %s',
- 'LOG_EDIT_IMAGESET' => '<b>Edited imageset</b><br />&#187; %s',
- 'LOG_EDIT_IMAGESET_DETAILS' => '<b>Edited imageset details</b><br />&#187; %s',
- 'LOG_EXPORT_IMAGESET' => '<b>Exported imageset</b><br />&#187; %s',
+ 'LOG_MODS_ADDED' => '<b>Added new leaders to usergroup</b> %s<br />&#187; %s',
+ 'LOG_USERS_ADDED' => '<b>Added new members to usergroup</b> %s<br />&#187; %s',
+ 'LOG_GROUP_DEFAULTS' => '<b>Group made default for members</b><br />&#187; %s',
+ 'LOG_USERS_APPROVED' => '<b>Users approved in usergroup</b> %s<br />&#187; %s',
+ 'LOG_GROUP_DEMOTED' => '<b>Leaders demoted in usergroup</b> %s<br />&#187; %s',
+ 'LOG_GROUP_PROMOTED' => '<b>Members promoted to leader in usergroup</b> %s<br />&#187; %s',
+ 'LOG_GROUP_REMOVE' => '<b>Members removed from usergroup</b> %s<br />&#187; %s',
+ 'LOG_GROUP_DELETE' => '<b>Usergroup deleted</b><br />&#187; %s',
+
+ 'LOG_ADD_STYLE' => '<b>Added new style</b><br />&#187; %s',
+ 'LOG_EDIT_STYLE' => '<b>Edited style</b><br />&#187; %s',
+ 'LOG_EXPORT_STYLE' => '<b>Exported style</b><br />&#187; %s',
+ 'LOG_DELETE_STYLE' => '<b>Deleted style</b><br />&#187; %s',
+
+ 'LOG_ADD_THEME_FS' => '<b>Add new theme on filesystem</b><br />&#187; %s',
+ 'LOG_ADD_THEME_DB' => '<b>Added new theme to database</b><br />&#187; %s',
+ 'LOG_EDIT_THEME' => '<b>Edited theme</b><br />&#187; %s',
+ 'LOG_EDIT_THEME_DETAILS'=> '<b>Edited theme details</b><br />&#187; %s',
+ 'LOG_EXPORT_THEME' => '<b>Exported theme</b><br />&#187; %s',
+ 'LOG_DELETE_THEME' => '<b>Theme deleted</b><br />&#187; %s',
+
+ 'LOG_ADD_TEMPLATE_FS' => '<b>Add new template set on filesystem</b><br />&#187; %s',
+ 'LOG_ADD_TEMPLATE_DB' => '<b>Added new template set to database</b><br />&#187; %s',
+ 'LOG_EDIT_TEMPLATE' => '<b>Edited template set</b><br />&#187; %s',
+ 'LOG_EDIT_TEMPLATE_DETAILS' => '<b>Edited template details</b><br />&#187; %s',
+ 'LOG_EXPORT_TEMPLATE' => '<b>Exported template set</b><br />&#187; %s',
+ 'LOG_DELETE_TEMPLATE' => '<b>Deleted template set</b><br />&#187; %s',
+ 'LOG_EDIT_TEMPLATE' => '<b>Edited template</b><br />&#187; %s [%s]',
+ 'LOG_CLEAR_TPLCACHE' => '<b>Cleared template cache</b><br />&#187; %s',
+
+ 'LOG_ADD_IMAGESET' => '<b>Added new imageset</b><br />&#187; %s',
+ 'LOG_EDIT_IMAGESET' => '<b>Edited imageset</b><br />&#187; %s',
+ 'LOG_EDIT_IMAGESET_DETAILS' => '<b>Edited imageset details</b><br />&#187; %s',
+ 'LOG_EXPORT_IMAGESET' => '<b>Exported imageset</b><br />&#187; %s',
'LOG_DELETE_IMAGESET' => '<b>Deleted imageset</b><br />&#187; %s',
-
+
'LOG_BBCODE_ADD' => '<b>Added new BBCode</b><br />&#187; %s',
'LOG_BBCODE_EDIT' => '<b>Edited BBCode</b><br />&#187; %s',
'LOG_BBCODE_DELETE' => '<b>Deleted BBCode</b><br />&#187; %s',
- 'LOG_JAB_PASSCHG' => '<b>Jabber password changed</b>',
- 'LOG_JAB_REGISTER' => '<b>Jabber account registered</b>',
- 'LOG_JAB_CHANGED' => '<b>Jabber account changed</b>',
+ 'LOG_JAB_PASSCHG' => '<b>Jabber password changed</b>',
+ 'LOG_JAB_REGISTER' => '<b>Jabber account registered</b>',
+ 'LOG_JAB_CHANGED' => '<b>Jabber account changed</b>',
- 'LOG_EMAIL_ERROR' => '%s',
- 'LOG_JABBER_ERROR' => '%s',
+ 'LOG_EMAIL_ERROR' => '%s',
+ 'LOG_JABBER_ERROR' => '%s',
'LOG_BOT_ADDED' => '<b>New bot added</b><br />&#187; %s',
'LOG_BOT_UPDATED' => '<b>Existing bot updated</b><br />&#187; %s',
- 'LOG_BOT_DELETE' => '<b>Deleted bot</b><br />&#187; %s',
+ 'LOG_BOT_DELETE' => '<b>Deleted bot</b><br />&#187; %s',
);
// Index page
@@ -289,15 +291,15 @@ $lang += array(
'NOT_AVAILABLE' => 'Not available',
'ON' => 'ON',
'OFF' => 'OFF',
- 'RESET_ONLINE' => 'Reset Online',
- 'RESET_DATE' => 'Reset Date',
- 'RESYNC_STATS' => 'Resync Stats',
+ 'RESET_ONLINE' => 'Reset Online',
+ 'RESET_DATE' => 'Reset Date',
+ 'RESYNC_STATS' => 'Resync Stats',
'INACTIVE_USERS' => 'Inactive Users',
'INACTIVE_USERS_EXPLAIN'=> 'This is a list of users who have registered but whos accounts are inactive. You can activate, delete or remind (by sending an email) these users if you wish.',
'NO_INACTIVE_USERS' => 'No inactive users',
- 'ACTIVATE' => 'Activate',
- 'REMIND' => 'Remind',
+ 'ACTIVATE' => 'Activate',
+ 'REMIND' => 'Remind',
'ADMIN_LOG' => 'Logged administrator actions',
'ADMIN_LOG_INDEX_EXPLAIN' => 'This gives an overview of the last five actions carried out by board administrators. A full copy of the log can be viewed from the appropriate menu item to the left.',
@@ -352,14 +354,14 @@ $lang += array(
'SUPER_MODERATORS' => 'Super Moderators',
'SUPER_MODERATORS_EXPLAIN' => 'Here you can assign users and groups as super moderators. Super Moderators are like ordinary moderators accept they have access to every forum on your board. To assign users access to forums or define administrators please use the appropriate page (see left hand side menu). If you are permitted you can also set permissions for forum options from this page. Use the select box to change views.',
'ADMINISTRATORS_EXPLAIN' => 'Here you can assign administrator rights to users or groups. All users with admin permissions can view the administration panel. If you are permitted you can also change permissions for forums, super moderator and moderator options from this page. Use the select box to change views.',
- 'USER_PERMISSIONS' => 'User Permissions',
- 'USER_PERMISSIONS_EXPLAIN' => 'Here you can set user based permissions. These include capabilities such as the use of avatars, sending private messages, etc. To alter these settings for large numbers of users the Group permissions system is the prefered method.',
- 'GROUP_PERMISSIONS' => 'Group Permissions',
- 'GROUP_PERMISSIONS_EXPLAIN' => 'Here you can set usergroup based permissions. These include capabilities such as the use of avatars, sending private messages, etc. To alter these settings for single users the User permissions system is the prefered method.',
- 'DEPENDENCIES' => 'Dependencies',
- 'DEPENDENCIES_EXPLAIN' => 'Here you can define relationships between administrator or moderator permission options and forum options. Using this you can automatically update forum permissions based on setting admin or moderator options. While this can save time care should be taken in defining these dependencies. Remember, these settings apply to all users and all groups.',
-
- 'LOOK_UP_GROUP' => 'Look up Usergroup',
+ 'USER_PERMISSIONS' => 'User Permissions',
+ 'USER_PERMISSIONS_EXPLAIN' => 'Here you can set user based permissions. These include capabilities such as the use of avatars, sending private messages, etc. To alter these settings for large numbers of users the Group permissions system is the prefered method.',
+ 'GROUP_PERMISSIONS' => 'Group Permissions',
+ 'GROUP_PERMISSIONS_EXPLAIN' => 'Here you can set usergroup based permissions. These include capabilities such as the use of avatars, sending private messages, etc. To alter these settings for single users the User permissions system is the prefered method.',
+ 'DEPENDENCIES' => 'Dependencies',
+ 'DEPENDENCIES_EXPLAIN' => 'Here you can define relationships between administrator or moderator permission options and forum options. Using this you can automatically update forum permissions based on setting admin or moderator options. While this can save time care should be taken in defining these dependencies. Remember, these settings apply to all users and all groups.',
+
+ 'LOOK_UP_GROUP' => 'Look up Usergroup',
'MANAGE_USERS' => 'Manage Users',
'ADD_USERS' => 'Add Users',
'MANAGE_GROUPS' => 'Manage Groups',
@@ -373,39 +375,39 @@ $lang += array(
'OPTION' => 'Option',
'YES' => 'Yes',
'NO' => 'No',
- 'UNSET' => 'Unset',
- 'IGNORE' => 'Ignore',
- 'PRESETS' => 'Presets',
+ 'UNSET' => 'Unset',
+ 'IGNORE' => 'Ignore',
+ 'PRESETS' => 'Presets',
'ALL_YES' => 'All Yes',
'ALL_NO' => 'All No',
- 'ALL_UNSET' => 'All Unset',
- 'ALL_IGNORE' => 'All Ignore',
- 'USER_PRESETS' => 'User presets',
- 'FROM_PARENT' => 'From Parent',
- 'SELECT_VIEW' => 'Select view',
+ 'ALL_UNSET' => 'All Unset',
+ 'ALL_IGNORE' => 'All Ignore',
+ 'USER_PRESETS' => 'User presets',
+ 'FROM_PARENT' => 'From Parent',
+ 'SELECT_VIEW' => 'Select view',
'ACL_SUBFORUMS' => 'Assign to sub-forums',
'ACL_SUBFORUMS_EXPLAIN' => 'Select the subforums (if any) you want to inherit these permissions',
- 'PRESETS_EXPLAIN' => 'To update or delete an existing preset select it from the list.',
- 'SELECT_PRESET' => 'Select preset',
- 'PRESET_NAME' => 'Preset name',
+ 'PRESETS_EXPLAIN' => 'To update or delete an existing preset select it from the list.',
+ 'SELECT_PRESET' => 'Select preset',
+ 'PRESET_NAME' => 'Preset name',
'EMPTY' => 'Empty',
- 'WARNING' => 'Warning',
- 'WARNING_EXPLAIN' => 'You have altered settings for one or alternative views. Be sure to verify these settings before updating',
+ 'WARNING' => 'Warning',
+ 'WARNING_EXPLAIN' => 'You have altered settings for one or alternative views. Be sure to verify these settings before updating',
'NOTIFY' => 'Notification',
- 'SELECTED_USER' => 'Selected User',
- 'SELECTED_USERS' => 'Selected Users',
- 'SELECTED_GROUP' => 'Selected Group',
- 'SELECTED_GROUPS' => 'Selected Groups',
- 'SELECTED_FORUM' => 'Selected Forum',
- 'SELECTED_FORUMS' => 'Selected Forums',
- 'WILL_SET_OPTIONS' => 'Will set options in',
+ 'SELECTED_USER' => 'Selected User',
+ 'SELECTED_USERS' => 'Selected Users',
+ 'SELECTED_GROUP' => 'Selected Group',
+ 'SELECTED_GROUPS' => 'Selected Groups',
+ 'SELECTED_FORUM' => 'Selected Forum',
+ 'SELECTED_FORUMS' => 'Selected Forums',
+ 'WILL_SET_OPTIONS' => 'Will set options in',
'INHERIT_PARENT' => 'Inherit Parent',
'SAVE' => 'Save',
- 'ACL_VIEW_FORUM' => 'Forum Options',
- 'ACL_VIEW_MOD' => 'Moderator Options',
- 'ACL_VIEW_SUPERMOD' => 'Supermod Options',
- 'ACL_VIEW_ADMIN' => 'Admin Options',
+ 'ACL_VIEW_FORUM' => 'Forum Options',
+ 'ACL_VIEW_MOD' => 'Moderator Options',
+ 'ACL_VIEW_SUPERMOD' => 'Supermod Options',
+ 'ACL_VIEW_ADMIN' => 'Admin Options',
'AUTH_UPDATED' => 'Permissions have been updated',
@@ -443,7 +445,7 @@ $lang += array(
'acl_a_clearlogs' => 'Can clear admin and mod logs',
'acl_a_events' => 'Can use event system',
'acl_a_cron' => 'Can use cron system',
- 'acl_a_authdeps' => 'Can set dependencies',
+ 'acl_a_authdeps' => 'Can set dependencies',
'acl_m_edit' => 'Can edit posts',
'acl_m_delete' => 'Can delete posts',
@@ -454,8 +456,8 @@ $lang += array(
'acl_m_approve' => 'Can approve posts',
'acl_m_unrate' => 'Can un-rate posts',
'acl_m_auth' => 'Can set permissions',
- 'acl_m_ip' => 'Can view IP\'s',
- 'acl_m_info' => 'Can alter forum info',
+ 'acl_m_ip' => 'Can view IP\'s',
+ 'acl_m_info' => 'Can alter forum info',
'acl_f_list' => 'Can see forum',
'acl_f_read' => 'Can read forum',
@@ -489,11 +491,11 @@ $lang += array(
'acl_f_bump' => 'Can bump topics',
'acl_f_subscribe' => 'Can subscribe forum',
- 'acl_u_hideonline' => 'Can hide online status',
+ 'acl_u_hideonline' => 'Can hide online status',
'acl_u_viewonline' => 'Can view all online',
'acl_u_viewprofile' => 'Can view profiles',
'acl_u_sendemail' => 'Can send emails',
- 'acl_u_sendim' => 'Can send instant messages',
+ 'acl_u_sendim' => 'Can send instant messages',
'acl_u_sendpm' => 'Can send private messages',
'acl_u_readpm' => 'Can read private messages',
'acl_u_chgavatar' => 'Can change avatar',
@@ -532,10 +534,10 @@ $lang += array(
'JOINED_EXPLAIN' => 'Enter a date in yyyy-mm-dd format.',
'DELETE_USER_POSTS' => 'Delete pruned user posts',
'DELETE_USER_POSTS_EXPLAIN' => 'Removes posts made by deleted users, has no effect if users are deactivated.',
- 'DEACTIVATE_DELETE' => 'Deactivate or delete',
- 'DEACTIVATE_DELETE_EXPLAIN' => 'Choose whether to deactivate users or delete them entirely, note there is no undo!',
+ 'DEACTIVATE_DELETE' => 'Deactivate or delete',
+ 'DEACTIVATE_DELETE_EXPLAIN' => 'Choose whether to deactivate users or delete them entirely, note there is no undo!',
'DEACTIVATE' => 'Deactivate',
- 'DELETE_USERS' => 'Delete',
+ 'DELETE_USERS' => 'Delete',
'USER_DEACTIVATE_SUCCESS' => 'The selected users have been deactivated successfully',
'USER_DELETE_SUCCESS' => 'The selected users have been deleted successfully',
@@ -544,7 +546,7 @@ $lang += array(
// Banning
$lang += array(
'BAN_EXPLAIN' => 'Here you can control the banning of users by name, IP or email address. These methods prevent a user reaching any part of the board. You can give a short (255 character) reason for the ban if you wish. This will be displayed in the admin log. The length of a ban can also be specified. If you want the ban to end on a specific date rather than after a set time period select <u>Until</u> for the ban length and enter a date in yyyy-mm-dd format.',
- 'BAN_EXCLUDE' => 'Exclude from banning',
+ 'BAN_EXCLUDE' => 'Exclude from banning',
'BAN_REASON' => 'Reason for ban',
'BAN_LENGTH' => 'Length of ban',
@@ -552,62 +554,62 @@ $lang += array(
'30_MINS' => '30 Minutes',
'1_HOUR' => '1 Hour',
'6_HOURS' => '6 Hours',
- 'OTHER' => 'Until',
+ 'OTHER' => 'Until',
'BAN_USERNAME_EXPLAIN' => 'You can ban multiple users in one go by entering each name on a new line. Use the <u>Find a Username</u> facility to look up and add one or more users automatically.',
'UNBAN_USERNAME' => 'Un-ban or Un-exclude usernames',
'UNBAN_USERNAME_EXPLAIN' => 'You can unban (or un-exclude) multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser. Excluded users have a grey background.',
- 'BAN_USER_EXCLUDE_EXPLAIN' => 'Enable this to exclude the entered users from all current bans.',
+ 'BAN_USER_EXCLUDE_EXPLAIN' => 'Enable this to exclude the entered users from all current bans.',
'NO_BANNED_USERS' => 'No banned usernames',
'IP_HOSTNAME' => 'IP addresses or hostnames',
'BAN_IP_EXPLAIN' => 'To specify several different IP\'s or hostnames enter each on a new line. To specify a range of IP addresses separate the start and end with a hyphen (-), to specify a wildcard use *',
'UNBAN_IP' => 'Un-ban or Un-exclude IPs',
'UNBAN_IP_EXPLAIN' => 'You can unban (or un-exclude) multiple IP addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser. Excluded IP\'s have a grey background.',
- 'BAN_IP_EXCLUDE_EXPLAIN'=> 'Enable this to exclude the entered IP from all current bans.',
+ 'BAN_IP_EXCLUDE_EXPLAIN'=> 'Enable this to exclude the entered IP from all current bans.',
'NO_BANNED_IP' => 'No banned IP addresses',
'BAN_EMAIL' => 'Ban one or more email addresses',
'BAN_EMAIL_EXPLAIN' => 'To specify more than one email address enter each on a new line. To match partial addresses use * as the wildcard, e.g. *@hotmail.com, *@*.domain.tld, etc.',
'UNBAN_EMAIL' => 'Un-ban or Un-exclude Emails',
'UNBAN_EMAIL_EXPLAIN' => 'You can unban (or un-exclude) multiple email addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser. Excluded email addresses have a grey background.',
- 'BAN_EMAIL_EXCLUDE_EXPLAIN' => 'Enable this to exclude the entered email address from all current bans.',
+ 'BAN_EMAIL_EXCLUDE_EXPLAIN' => 'Enable this to exclude the entered email address from all current bans.',
'NO_BANNED_EMAIL' => 'No banned email addresses',
- 'BAN_UPDATE_SUCESSFUL' => 'The banlist has been updated successfully',
+ 'BAN_UPDATE_SUCESSFUL' => 'The banlist has been updated successfully',
);
// Jabber settings
$lang += array(
- 'IM_EXPLAIN' => 'Here you can enable and control the use Jabber for instant messaging and board notices. Jabber is an opensource protocol and therefore available for use by anyone. Some Jabber servers include gateways or transports which allow you to contact users on other networks. Not all servers offer all transports and changes in protocols can prevent transports from operating. Note that it may take several seconds to update Jabber account details, do not stop the script till completed!',
-
- 'JAB_ENABLE' => 'Enable Jabber',
- 'JAB_ENABLE_EXPLAIN' => 'Enables use of jabber messaging and notifications',
-
- 'JAB_SERVER' => 'Jabber server',
- 'JAB_SERVER_EXPLAIN' => 'See %sjabber.org%s for a list of servers',
- 'JAB_PORT' => 'Jabber port',
- 'JAB_PORT_EXPLAIN' => 'Leave blank unless you know it is not 5222',
- 'JAB_USERNAME' => 'Jabber username',
- 'JAB_USERNAME_EXPLAIN' => 'If this user is not registered it will be created if possible.',
- 'JAB_PASSWORD' => 'Jabber password',
- 'JAB_RESOURCE' => 'Jabber resource',
- 'JAB_RESOURCE_EXPLAIN' => 'The resource locates this particular connection, e.g. board, home, etc.',
-
- 'JAB_PASS_CHANGED' => 'Jabber password changed successfully',
- 'JAB_REGISTERED' => 'New account registered successfully',
- 'JAB_CHANGED' => 'Jabber account changed successfully',
-
- 'ERR_JAB_USERNAME' => 'The username specified already exists, please choose an alternative.',
- 'ERR_JAB_REGISTER' => 'An error occured trying to register this account, %s',
- 'ERR_JAB_PASSCHG' => 'Could not change password',
- 'ERR_JAB_PASSFAIL' => 'Password update failed, %s',
+ 'IM_EXPLAIN' => 'Here you can enable and control the use Jabber for instant messaging and board notices. Jabber is an opensource protocol and therefore available for use by anyone. Some Jabber servers include gateways or transports which allow you to contact users on other networks. Not all servers offer all transports and changes in protocols can prevent transports from operating. Note that it may take several seconds to update Jabber account details, do not stop the script till completed!',
+
+ 'JAB_ENABLE' => 'Enable Jabber',
+ 'JAB_ENABLE_EXPLAIN' => 'Enables use of jabber messaging and notifications',
+
+ 'JAB_SERVER' => 'Jabber server',
+ 'JAB_SERVER_EXPLAIN' => 'See %sjabber.org%s for a list of servers',
+ 'JAB_PORT' => 'Jabber port',
+ 'JAB_PORT_EXPLAIN' => 'Leave blank unless you know it is not 5222',
+ 'JAB_USERNAME' => 'Jabber username',
+ 'JAB_USERNAME_EXPLAIN' => 'If this user is not registered it will be created if possible.',
+ 'JAB_PASSWORD' => 'Jabber password',
+ 'JAB_RESOURCE' => 'Jabber resource',
+ 'JAB_RESOURCE_EXPLAIN' => 'The resource locates this particular connection, e.g. board, home, etc.',
+
+ 'JAB_PASS_CHANGED' => 'Jabber password changed successfully',
+ 'JAB_REGISTERED' => 'New account registered successfully',
+ 'JAB_CHANGED' => 'Jabber account changed successfully',
+
+ 'ERR_JAB_USERNAME' => 'The username specified already exists, please choose an alternative.',
+ 'ERR_JAB_REGISTER' => 'An error occured trying to register this account, %s',
+ 'ERR_JAB_PASSCHG' => 'Could not change password',
+ 'ERR_JAB_PASSFAIL' => 'Password update failed, %s',
);
// Message Settings
$lang += array(
'MESSAGE_SETTINGS_EXPLAIN' => 'Here you can set all default settings for private messaging',
-
+
'BOXES_MAX' => 'Max private message folders',
'BOXES_MAX_EXPLAIN' => 'By default users may create this many personal folders for private messages..',
'BOXES_LIMIT' => 'Max private messages per box',
@@ -677,9 +679,9 @@ $lang += array(
'IP_VALID_EXPLAIN' => 'Determines how much of the users IP is used to validate a session; All compares the complete address, A.B.C the first x.x.x, A.B the first x.x, None disables checking.',
'ALL' => 'All',
'CLASS_C' => 'A.B.C',
- 'CLASS_B' => 'A.B',
- 'BROWSER_VALID' => 'Validate browser',
- 'BROWSER_VALID_EXPLAIN' => 'Enables browser validation for each session inproving security.',
+ 'CLASS_B' => 'A.B',
+ 'BROWSER_VALID' => 'Validate browser',
+ 'BROWSER_VALID_EXPLAIN' => 'Enables browser validation for each session inproving security.',
'ENABLE_GZIP' => 'Enable GZip Compression',
'SMILIES_PATH' => 'Smilies storage path',
'SMILIES_PATH_EXPLAIN' => 'Path under your phpBB root dir, e.g. images/smiles',
@@ -693,34 +695,34 @@ $lang += array(
// Load settings
$lang += array(
- 'LOAD_SETTINGS_EXPLAIN' => 'Here you can enable and disable certain board functions to reduce the amount of processing required. On most servers there is no need to disable any functions. However on certain systems or in shared hosting environments it may be beneficial to disable capabilities you do not really need. You can also specify limits for system load and active sessions beyond which the board will go offline.',
+ 'LOAD_SETTINGS_EXPLAIN' => 'Here you can enable and disable certain board functions to reduce the amount of processing required. On most servers there is no need to disable any functions. However on certain systems or in shared hosting environments it may be beneficial to disable capabilities you do not really need. You can also specify limits for system load and active sessions beyond which the board will go offline.',
'LIMIT_LOAD' => 'Limit system load',
'LIMIT_LOAD_EXPLAIN' => 'If the 1 minute system load exceeds this value the board will go offline, 1.0 equals ~100% utilisation of one processor. This only functions on UNIX based servers.',
'LIMIT_SESSIONS' => 'Limit sessions',
'LIMIT_SESSIONS_EXPLAIN' => 'If the number of sessions exceeds this value within a one minute period the board will go offline. Set to 0 for unlimited sessions.',
- 'SESSION_LENGTH' => 'Session length',
- 'SESSION_LENGTH_EXPLAIN' => 'Sessions will expire after this time, in seconds.',
- 'YES_POST_MARKING' => 'Enable dotted topics',
- 'YES_POST_MARKING_EXPLAIN' => 'Indicates whether user has posted to a topic.',
- 'YES_READ_MARKING' => 'Enable server-side topic marking',
- 'YES_READ_MARKING_EXPLAIN' => 'Stores read/unread status information in the database rather than a cookie.',
- 'ONLINE_LENGTH' => 'View online time span',
- 'ONLINE_LENGTH_EXPLAIN' => 'Time in minutes after which inactive users will not appear in viewonline listings, lower equals less processing.',
- 'YES_ONLINE' => 'Enable online user listings',
- 'YES_ONLINE_EXPLAIN' => 'Display online user information on index, forum and topic pages.',
- 'YES_ONLINE_TRACK' => 'Enable display of user online img',
- 'YES_ONLINE_TRACK_EXPLAIN' => 'Display online information for user in profiles and viewtopic.',
- 'YES_BIRTHDAYS' => 'Enable birthday listing',
- 'YES_MODERATORS' => 'Enable display of Moderators',
- 'YES_JUMPBOX' => 'Enable display of Jumpbox',
- 'YES_SEARCH' => 'Enable search facilities',
- 'YES_SEARCH_EXPLAIN' => 'User and backend search functions including fulltext updates when posting.',
- 'YES_SEARCH_UPDATE' => 'Enable fulltext updating',
- 'YES_SEARCH_UPDATE_EXPLAIN' => 'Updating of fulltext indexes when posting, overriden if search is disabled.',
- 'YES_SEARCH_PHRASE' => 'Enable phrase searching',
- 'YES_SEARCH_PHRASE_EXPLAIN' => 'Searching for phrases requires additional processing.',
- 'RECOMPILE_TEMPLATES' => 'Recompile stale templates',
- 'RECOMPILE_TEMPLATES_EXPLAIN'=> 'Check for updated template files on filesystem and recompile.',
+ 'SESSION_LENGTH' => 'Session length',
+ 'SESSION_LENGTH_EXPLAIN' => 'Sessions will expire after this time, in seconds.',
+ 'YES_POST_MARKING' => 'Enable dotted topics',
+ 'YES_POST_MARKING_EXPLAIN' => 'Indicates whether user has posted to a topic.',
+ 'YES_READ_MARKING' => 'Enable server-side topic marking',
+ 'YES_READ_MARKING_EXPLAIN' => 'Stores read/unread status information in the database rather than a cookie.',
+ 'ONLINE_LENGTH' => 'View online time span',
+ 'ONLINE_LENGTH_EXPLAIN' => 'Time in minutes after which inactive users will not appear in viewonline listings, lower equals less processing.',
+ 'YES_ONLINE' => 'Enable online user listings',
+ 'YES_ONLINE_EXPLAIN' => 'Display online user information on index, forum and topic pages.',
+ 'YES_ONLINE_TRACK' => 'Enable display of user online img',
+ 'YES_ONLINE_TRACK_EXPLAIN' => 'Display online information for user in profiles and viewtopic.',
+ 'YES_BIRTHDAYS' => 'Enable birthday listing',
+ 'YES_MODERATORS' => 'Enable display of Moderators',
+ 'YES_JUMPBOX' => 'Enable display of Jumpbox',
+ 'YES_SEARCH' => 'Enable search facilities',
+ 'YES_SEARCH_EXPLAIN' => 'User and backend search functions including fulltext updates when posting.',
+ 'YES_SEARCH_UPDATE' => 'Enable fulltext updating',
+ 'YES_SEARCH_UPDATE_EXPLAIN' => 'Updating of fulltext indexes when posting, overriden if search is disabled.',
+ 'YES_SEARCH_PHRASE' => 'Enable phrase searching',
+ 'YES_SEARCH_PHRASE_EXPLAIN' => 'Searching for phrases requires additional processing.',
+ 'RECOMPILE_TEMPLATES' => 'Recompile stale templates',
+ 'RECOMPILE_TEMPLATES_EXPLAIN'=> 'Check for updated template files on filesystem and recompile.',
);
// Email settings
@@ -735,20 +737,20 @@ $lang += array(
'EMAIL_PACKAGE_SIZE' => 'Email Package Size',
'EMAIL_PACKAGE_SIZE_EXPLAIN' => 'This is the number of emails sent in one package.',
'ADMIN_EMAIL' => 'Return Email Address',
- 'ADMIN_EMAIL_EXPLAIN' => 'This will be used as the return address on all emails.',
+ 'ADMIN_EMAIL_EXPLAIN' => 'This will be used as the return address on all emails.',
'EMAIL_SIG' => 'Email Signature',
'EMAIL_SIG_EXPLAIN' => 'This text will be attached to all emails the board sends.',
- 'CONTACT_EMAIL' => 'Contact email address',
- 'CONTACT_EMAIL_EXPLAIN' => 'This address will be used whenever a specific contact point is needed, e.g. spam, error output, etc.',
+ 'CONTACT_EMAIL' => 'Contact email address',
+ 'CONTACT_EMAIL_EXPLAIN' => 'This address will be used whenever a specific contact point is needed, e.g. spam, error output, etc.',
'USE_SMTP' => 'Use SMTP Server for email',
'USE_SMTP_EXPLAIN' => 'Say yes if you want or have to send email via a named server instead of the local mail function.',
'SMTP_SERVER' => 'SMTP Server Address',
'SMTP_PORT' => 'SMTP Server Port',
'SMTP_PORT_EXPLAIN' => 'Only change this if you know your SMTP server is on a different port.',
- 'SMTP_AUTH_METHOD' => 'Authentication method for SMTP',
- 'SMTP_AUTH_METHOD_EXPLAIN' => 'Only used if a username/password is set, ask your provider if you are unsure which method to use.',
- 'SMTP_LOGIN' => 'LOGIN',
- 'SMTP_PLAIN' => 'PLAIN',
+ 'SMTP_AUTH_METHOD' => 'Authentication method for SMTP',
+ 'SMTP_AUTH_METHOD_EXPLAIN' => 'Only used if a username/password is set, ask your provider if you are unsure which method to use.',
+ 'SMTP_LOGIN' => 'LOGIN',
+ 'SMTP_PLAIN' => 'PLAIN',
'SMTP_CRAM_MD5' => 'CRAM-MD5',
'SMTP_DIGEST_MD5' => 'DIGEST-MD5',
'SMTP_POP_BEFORE_SMTP' => 'POP-BEFORE-SMTP',
@@ -774,42 +776,42 @@ $lang += array(
'ACC_DISABLE' => 'Disable',
'VISUAL_CONFIRM' => 'Enable visual confirmation',
'VISUAL_CONFIRM_EXPLAIN' => 'Requires new users enter a random code matching an image to help prevent mass registrations.',
- 'REG_LIMIT' => 'Registration attempts',
- 'REG_LIMIT_EXPLAIN' => 'Number of attempts users can make at the confirmation code before being locked out that session.',
- 'FORCE_PASS_CHANGE' => 'Force password change',
- 'FORCE_PASS_CHANGE_EXPLAIN' => 'Require user to change their password after a set number of days or zero to disable.',
+ 'REG_LIMIT' => 'Registration attempts',
+ 'REG_LIMIT_EXPLAIN' => 'Number of attempts users can make at the confirmation code before being locked out that session.',
+ 'FORCE_PASS_CHANGE' => 'Force password change',
+ 'FORCE_PASS_CHANGE_EXPLAIN' => 'Require user to change their password after a set number of days or zero to disable.',
'CHAR_LIMIT' => 'Max characters per post',
'CHAR_LIMIT_EXPLAIN' => 'Set to 0 for unlimited characters.',
'SMILIES_LIMIT' => 'Max smilies per post',
'SMILIES_LIMIT_EXPLAIN' => 'Set to 0 for unlimited smilies.',
'QUOTE_DEPTH_LIMIT' => 'Max nested quotes per post',
'QUOTE_DEPTH_LIMIT_EXPLAIN' => 'Set to 0 for unlimited depth.',
- 'USERNAME_LENGTH' => 'Username length',
- 'USERNAME_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in usernames.',
- 'USERNAME_CHARS' => 'Limit username chars',
- 'USERNAME_CHARS_EXPLAIN' => 'Restrict type of characters that may be used in usernames, spacers are; space, -, +, _, [ and ]',
- 'PASSWORD_LENGTH' => 'Password length',
- 'PASSWORD_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in passwords.',
+ 'USERNAME_LENGTH' => 'Username length',
+ 'USERNAME_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in usernames.',
+ 'USERNAME_CHARS' => 'Limit username chars',
+ 'USERNAME_CHARS_EXPLAIN' => 'Restrict type of characters that may be used in usernames, spacers are; space, -, +, _, [ and ]',
+ 'PASSWORD_LENGTH' => 'Password length',
+ 'PASSWORD_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in passwords.',
'PASSWORD_TYPE' => 'Password complexity',
- 'PASSWORD_TYPE_EXPLAIN' => 'Determines how complex a password needs to be when set or altered, subsequent options include the previous ones.',
- 'PASS_TYPE_ANY' => 'No requirements',
- 'PASS_TYPE_CASE' => 'Must be mixed case',
- 'PASS_TYPE_ALPHA' => 'Must contain alphanumerics',
- 'PASS_TYPE_SYMBOL' => 'Must contain symbols',
- 'MIN_CHARS' => 'Min',
- 'MAX_CHARS' => 'Max',
+ 'PASSWORD_TYPE_EXPLAIN' => 'Determines how complex a password needs to be when set or altered, subsequent options include the previous ones.',
+ 'PASS_TYPE_ANY' => 'No requirements',
+ 'PASS_TYPE_CASE' => 'Must be mixed case',
+ 'PASS_TYPE_ALPHA' => 'Must contain alphanumerics',
+ 'PASS_TYPE_SYMBOL' => 'Must contain symbols',
+ 'MIN_CHARS' => 'Min',
+ 'MAX_CHARS' => 'Max',
'ALLOW_EMAIL_REUSE' => 'Allow Email address re-use',
'ALLOW_EMAIL_REUSE_EXPLAIN' => 'Different users can register with the same email address.',
- 'USERNAME_CHARS_ANY' => 'Any character',
- 'USERNAME_ALPHA_ONLY' => 'Alphanumeric only',
- 'USERNAME_ALPHA_SPACERS' => 'Alphanumeric and spacers',
+ 'USERNAME_CHARS_ANY' => 'Any character',
+ 'USERNAME_ALPHA_ONLY' => 'Alphanumeric only',
+ 'USERNAME_ALPHA_SPACERS' => 'Alphanumeric and spacers',
'ENABLE_COPPA' => 'Enable COPPA',
'ENABLE_COPPA_EXPLAIN' => 'This requires users to declare whether they are 13 or over for compliance with the U.S. COPPA act.',
'COPPA_FAX' => 'COPPA Fax Number',
'COPPA_MAIL' => 'COPPA Mailing Address',
'COPPA_MAIL_EXPLAIN' => 'This is the mailing address where parents will send COPPA registration forms',
- 'BOARD_PM' => 'Private Messaging',
- 'BOARD_PM_EXPLAIN' => 'Enable or disable private messaging for all users.',
+ 'BOARD_PM' => 'Private Messaging',
+ 'BOARD_PM_EXPLAIN' => 'Enable or disable private messaging for all users.',
'EDIT_TIME' => 'Limit editing time',
'EDIT_TIME_EXPLAIN' => 'Limits the time available to edit a new post, zero equals infinity',
'DISPLAY_LAST_EDITED' => 'Display last edited time information',
@@ -877,27 +879,27 @@ $lang += array(
// Karma settings
$lang += array(
- 'KARMA_SETTINGS' => 'Karma Settings',
- 'KARMA_SETTINGS_EXPLAIN'=> 'Here you can enable and disable the user Karma rating system. You can also modify the weighting factors used to derive each users karma.',
+ 'KARMA_SETTINGS' => 'Karma Settings',
+ 'KARMA_SETTINGS_EXPLAIN'=> 'Here you can enable and disable the user Karma rating system. You can also modify the weighting factors used to derive each users karma.',
'ENABLE_KARMA' => 'Enable Karma',
- 'KARMA_HIST_WEIGHT' => 'Historical ratings weighting',
- 'KARMA_HIST_WEIGHT_EXPLAIN' => 'Ratings made before the previous 30 days',
- 'KARMA_DAY_WEIGHT' => 'Recent ratings weighting',
- 'KARMA_DAY_WEIGHT_EXPLAIN' => 'Ratings made in past 30 days',
- 'KARMA_REG_WEIGHT' => 'Membership length weighting',
- 'KARMA_REG_WEIGHT_EXPLAIN' => 'Total length of membership',
- 'KARMA_POST_WEIGHT' => 'Total posts weighting',
+ 'KARMA_HIST_WEIGHT' => 'Historical ratings weighting',
+ 'KARMA_HIST_WEIGHT_EXPLAIN' => 'Ratings made before the previous 30 days',
+ 'KARMA_DAY_WEIGHT' => 'Recent ratings weighting',
+ 'KARMA_DAY_WEIGHT_EXPLAIN' => 'Ratings made in past 30 days',
+ 'KARMA_REG_WEIGHT' => 'Membership length weighting',
+ 'KARMA_REG_WEIGHT_EXPLAIN' => 'Total length of membership',
+ 'KARMA_POST_WEIGHT' => 'Total posts weighting',
);
// Avatars
$lang += array(
- 'AVATARS_GALLERY' => 'Avatar Gallery',
+ 'AVATARS_GALLERY' => 'Avatar Gallery',
);
// PHP info
$lang += array(
- 'PHP_INFO_EXPLAIN' => 'This page lists information on the version of PHP installed on this server. It includes details of loaded modules, available variables and default settings. This information may be useful when diagnosing problems. Please be aware that some hosting companies will limit what information is displayed here for security reasons. You are advised to not give out any details on this page except when asked by support or other Team Member on the support forums.',
+ 'PHP_INFO_EXPLAIN' => 'This page lists information on the version of PHP installed on this server. It includes details of loaded modules, available variables and default settings. This information may be useful when diagnosing problems. Please be aware that some hosting companies will limit what information is displayed here for security reasons. You are advised to not give out any details on this page except when asked by support or other Team Member on the support forums.',
);
// Forum admin
@@ -906,7 +908,7 @@ $lang += array(
'FORUM_ADMIN_EXPLAIN' => 'In phpBB 2.2 there are no categories, everything is forum based. Each forum can have an unlimited number of sub-forums and you can determine whether each may be posted to or not (i.e. whether it acts like an old category). Here you can add, edit, delete, lock, unlock individual forums as well as set certain additional controls. If your posts and topics have got out of sync you can also resynchronise a forum.',
'FORUM_EDIT_EXPLAIN' => 'The form below will allow you to customise this forum. Please note that moderation and post count controls are set via forum permissions for each user or usergroup.',
'FORUM_DELETE' => 'Delete Forum',
- 'FORUM_DELETE_EXPLAIN' => 'The form below will allow you to delete a forum and decide where you want to put all topics (or forums) it contained.',
+ 'FORUM_DELETE_EXPLAIN' => 'The form below will allow you to delete a forum and decide where you want to put all topics (or forums) it contained.',
'EDIT_FORUM' => 'Edit forum',
'CREATE_FORUM' => 'Create new forum',
@@ -917,22 +919,22 @@ $lang += array(
'RESYNC' => 'Sync',
'UPDATE' => 'Update',
- 'FORUM_SETTINGS' => 'Forum Settings',
+ 'FORUM_SETTINGS' => 'Forum Settings',
'FORUM_GENERAL' => 'General Forum Settings',
- 'FORUM_TYPE' => 'Forum Type',
- 'TYPE_FORUM' => 'Forum',
- 'TYPE_CAT' => 'Category',
- 'TYPE_LINK' => 'Link',
+ 'FORUM_TYPE' => 'Forum Type',
+ 'TYPE_FORUM' => 'Forum',
+ 'TYPE_CAT' => 'Category',
+ 'TYPE_LINK' => 'Link',
'FORUM_NAME' => 'Forum Name',
- 'FORUM_DESC' => 'Description',
- 'FORUM_DESC_EXPLAIN'=> 'Any markup entered here will displayed as is.',
+ 'FORUM_DESC' => 'Description',
+ 'FORUM_DESC_EXPLAIN'=> 'Any markup entered here will displayed as is.',
'FORUM_LINK' => 'Forum Link',
'FORUM_LINK_EXPLAIN'=> 'Full URL to location clicking this forum will take the user.',
- 'FORUM_LINK_TRACK' => 'Track Link Redirects',
- 'FORUM_LINK_TRACK_EXPLAIN' => 'Records the number of times a forum link was clicked.',
+ 'FORUM_LINK_TRACK' => 'Track Link Redirects',
+ 'FORUM_LINK_TRACK_EXPLAIN' => 'Records the number of times a forum link was clicked.',
'FORUM_STATUS' => 'Forum Status',
- 'FORUM_STYLE' => 'Forum Style',
- 'FORUM_IMAGE' => 'Forum Image',
+ 'FORUM_STYLE' => 'Forum Style',
+ 'FORUM_IMAGE' => 'Forum Image',
'FORUM_IMAGE_EXPLAIN'=> 'Location, relative to the phpBB root directory, of an image to associate with this forum.',
'FORUM_PARENT' => 'Parent Forum',
@@ -948,16 +950,16 @@ $lang += array(
'NO_PARENT' => 'No Parent',
'LINK' => 'Link',
'LOCKED' => 'Locked',
- 'UNLOCKED' => 'Unlocked',
- 'ENABLE_NEWS' => 'Set as news forum',
+ 'UNLOCKED' => 'Unlocked',
+ 'ENABLE_NEWS' => 'Set as news forum',
'ENABLE_NEWS_EXPLAIN' => 'If set to yes posts in this forum will be displayed as news items.',
- 'ENABLE_RECENT' => 'Display active topics',
- 'ENABLE_RECENT_EXPLAIN' => 'If set to yes topics made to this forum will be shown in the active topics list.',
- 'DISPLAY_ACTIVE_TOPICS' => 'Enable active topics',
- 'DISPLAY_ACTIVE_TOPICS_EXPLAIN' => 'If set to yes active topics in selected subforums will be displayed under this category.',
- 'ENABLE_INDEXING' => 'Enable search indexing',
- 'ENABLE_INDEXING_EXPLAIN' => 'If set to yes posts made to this forum will be indexed for searching.',
- 'ENABLE_TOPIC_ICONS'=> 'Enable Topic Icons',
+ 'ENABLE_RECENT' => 'Display active topics',
+ 'ENABLE_RECENT_EXPLAIN' => 'If set to yes topics made to this forum will be shown in the active topics list.',
+ 'DISPLAY_ACTIVE_TOPICS' => 'Enable active topics',
+ 'DISPLAY_ACTIVE_TOPICS_EXPLAIN' => 'If set to yes active topics in selected subforums will be displayed under this category.',
+ 'ENABLE_INDEXING' => 'Enable search indexing',
+ 'ENABLE_INDEXING_EXPLAIN' => 'If set to yes posts made to this forum will be indexed for searching.',
+ 'ENABLE_TOPIC_ICONS'=> 'Enable Topic Icons',
'LIST_INDEX' => 'List Forum On Index',
'LIST_INDEX_EXPLAIN'=> 'Displays a link to this forum under the root parent forum on the index.',
'FORUM_AUTO_PRUNE' => 'Enable Auto-Pruning',
@@ -965,7 +967,7 @@ $lang += array(
'AUTO_PRUNE_FREQ' => 'Auto-prune Frequency',
'AUTO_PRUNE_FREQ_EXPLAIN' => 'Time in days between pruning events.',
'AUTO_PRUNE_DAYS' => 'Auto-prune Post Age',
- 'AUTO_PRUNE_DAYS_EXPLAIN' => 'Number of days since last post after which topic is removed.',
+ 'AUTO_PRUNE_DAYS_EXPLAIN' => 'Number of days since last post after which topic is removed.',
'AUTO_PRUNE_VIEWED' => 'Auto-prune Post Viewed Age',
'AUTO_PRUNE_VIEWED_EXPLAIN' => 'Number of days since topic was viewed after which topic is removed.',
'PRUNE_OLD_POLLS' => 'Prune Old Polls',
@@ -974,14 +976,14 @@ $lang += array(
'PRUNE_FINISHED_POLLS_EXPLAIN'=> 'Removes topics with polls which have ended.',
'PRUNE_ANNOUNCEMENTS' => 'Prune Announcements',
'PRUNE_STICKY' => 'Prune Stickies',
- 'FORUM_TOPICS_PAGE' => 'Topics Per Page',
- 'FORUM_TOPICS_PAGE_EXPLAIN' => 'If non-zero this value will override the default topics per page setting.',
- 'ACTIVE_TOPICS_PAGE' => 'Number of active topics',
- 'ACTIVE_TOPICS_PAGE_EXPLAIN' => 'If non-zero this value will override the default topics per page setting.',
- 'FORUM_PASSWORD' => 'Forum Password',
- 'FORUM_PASSWORD_EXPLAIN' => 'Defines a password for this forum, use the permission system in preference.',
- 'FORUM_PASSWORD_CONFIRM' => 'Confirm Forum Password',
- 'FORUM_PASSWORD_CONFIRM_EXPLAIN' => 'Only needs to be set if a forum password is entered.',
+ 'FORUM_TOPICS_PAGE' => 'Topics Per Page',
+ 'FORUM_TOPICS_PAGE_EXPLAIN' => 'If non-zero this value will override the default topics per page setting.',
+ 'ACTIVE_TOPICS_PAGE' => 'Number of active topics',
+ 'ACTIVE_TOPICS_PAGE_EXPLAIN' => 'If non-zero this value will override the default topics per page setting.',
+ 'FORUM_PASSWORD' => 'Forum Password',
+ 'FORUM_PASSWORD_EXPLAIN' => 'Defines a password for this forum, use the permission system in preference.',
+ 'FORUM_PASSWORD_CONFIRM' => 'Confirm Forum Password',
+ 'FORUM_PASSWORD_CONFIRM_EXPLAIN' => 'Only needs to be set if a forum password is entered.',
'MOVE_POSTS_TO' => 'Move posts',
'MOVE_SUBFORUMS_TO' => 'Move subforums',
@@ -990,11 +992,11 @@ $lang += array(
'NO_DESTINATION_FORUM' => 'You have not specified a forum to move content to',
'FORUM_PASSWORD_MISMATCH' => 'The passwords you entered did not match.',
- 'FORUM_NAME_EMPTY' => 'You must enter a name for this forum.',
- 'FORUM_DATA_NEGATIVE' => 'Pruning parameters cannot be negative.',
+ 'FORUM_NAME_EMPTY' => 'You must enter a name for this forum.',
+ 'FORUM_DATA_NEGATIVE' => 'Pruning parameters cannot be negative.',
'FORUM_CREATED' => 'Forum created successfully.',
- 'FORUM_UPDATED' => 'Forum informations updated successfully.',
- 'REDIRECT_ACL' => 'To set permissions for this forum click %sHERE%s.',
+ 'FORUM_UPDATED' => 'Forum informations updated successfully.',
+ 'REDIRECT_ACL' => 'To set permissions for this forum click %sHERE%s.',
'FORUM_DELETED' => 'Forum successfully deleted',
'FORUM_RESYNCED' => 'Forum successfully resynced',
);
@@ -1023,7 +1025,7 @@ $lang += array(
'AFTER_SMILE' => 'After %s',
'AFTER_ICONS' => 'After %s',
'SMILE_CONFIG' => 'Smilie configuration',
- 'SMILE_IMAGE' => 'Smilie image',
+ 'SMILE_IMAGE' => 'Smilie image',
'SMILE_CODE' => 'Smilie code',
'SMILE_URL' => 'Smilie image file',
'SMILE_ORDER' => 'Smilie order',
@@ -1032,16 +1034,16 @@ $lang += array(
'SMILE_EDIT' => 'Edit Smilie',
'SMILE_LOCATION'=> 'Smilie location',
'ICONS_CONFIG' => 'Icon configuration',
- 'ICONS_IMAGE' => 'Icon image',
+ 'ICONS_IMAGE' => 'Icon image',
'ICONS_ORDER' => 'Icon order',
'ICONS_LOCATION'=> 'Icon location',
'ICONS_ADD' => 'Add a new Icon',
'ICONS_EDIT' => 'Edit Icon',
'EXPORT_SMILE_EXPLAIN' => 'To create a package of your currently installed smilies, click %sHERE%s to download the emoticons.pak file. Once downloaded create a zip or tgz file containing all of your smilies plus this .pak configuration file.',
'EXPORT_ICONS_EXPLAIN' => 'To create a package of your currently installed icons, click %sHERE%s to download the icons package file. Once downloaded create a zip or tgz file containing all of your icons plus this .pak configuration file.',
- 'NO_SMILE_EXPORT' => 'You have no smilies with which to create a package.',
- 'NO_ICONS_EXPORT' => 'You have no icons with which to create a package.',
- 'WRONG_PAK_TYPE' => 'The specified package does not contain the appropriate data.',
+ 'NO_SMILE_EXPORT' => 'You have no smilies with which to create a package.',
+ 'NO_ICONS_EXPORT' => 'You have no icons with which to create a package.',
+ 'WRONG_PAK_TYPE' => 'The specified package does not contain the appropriate data.',
'SELECT_PACKAGE' => 'Select a package file',
'DELETE_ALL' => 'Delete all',
'KEEP_ALL' => 'Keep all',
@@ -1105,132 +1107,132 @@ $lang += array(
$lang += array(
'USER_ADMIN' => 'User Administration',
'USER_ADMIN_EXPLAIN' => 'Here you can change your users information and certain specific options. To modify the users permissions please use the user and group permissions system.',
- 'SELECT_USER' => 'Select User',
+ 'SELECT_USER' => 'Select User',
- 'SELECT_FORM' => 'Select form',
+ 'SELECT_FORM' => 'Select form',
'USER_ADMIN_OVERVIEW' => 'Overview',
- 'USER_ADMIN_FEEDBACK' => 'Feedback',
- 'USER_ADMIN_PROFILE' => 'Profile',
- 'USER_ADMIN_PREFS' => 'Preferences',
- 'USER_ADMIN_AVATAR' => 'Avatar',
- 'USER_ADMIN_SIG' => 'Signature',
- 'USER_ADMIN_GROUP' => 'Groups',
- 'USER_ADMIN_PERM' => 'Permissions',
+ 'USER_ADMIN_FEEDBACK' => 'Feedback',
+ 'USER_ADMIN_PROFILE' => 'Profile',
+ 'USER_ADMIN_PREFS' => 'Preferences',
+ 'USER_ADMIN_AVATAR' => 'Avatar',
+ 'USER_ADMIN_SIG' => 'Signature',
+ 'USER_ADMIN_GROUP' => 'Groups',
+ 'USER_ADMIN_PERM' => 'Permissions',
'USER_ADMIN_ATTACH' => 'Attachments',
- 'FOUNDER' => 'Founder',
- 'FOUNDER_EXPLAIN' => 'Founders can never be banned, deleted or altered by non-founder members',
- 'USER_INFO' => 'Basic information',
- 'REGISTERED' => 'Registered',
- 'REGISTERED_IP' => 'Registered from IP',
- 'LAST_ACTIVE' => 'Last active',
- 'WARNINGS' => 'Warnings',
- 'WARNINGS_EXPLAIN' => 'You can directly alter the warnings this users has received.',
- 'USER_TOOLS' => 'Basic tools',
- 'QUICK_TOOLS' => 'Quick tools',
- 'DELETE_USER' => 'Delete users',
- 'DELETE_USER_EXPLAIN' => 'Please note that deleting a user is final, they cannot be recovered',
- 'RETAIN_POSTS' => 'Retain posts',
- 'DELETE_POSTS' => 'Delete posts',
- 'USER_ADMIN_BAN_USER' => 'Ban by username',
- 'USER_ADMIN_BAN_EMAIL' => 'Ban by email',
- 'USER_ADMIN_BAN_IP' => 'Ban by IP',
- 'USER_ADMIN_FORCE' => 'Force re-activation',
- 'USER_ADMIN_DEACTIVATE' => 'Deactivate account',
- 'USER_ADMIN_ACTIVATE' => 'Activate account',
- 'USER_ADMIN_MOVE_POSTS' => 'Move all posts',
- 'MOVE_POSTS_EXPLAIN' => 'Please select the forum to which you wish to move all the posts this user has made.',
-
- 'USER_POSTING_PREFS' => 'Posting preferences',
-
- 'ADMIN_SIGNATURE_PREVIEW' => 'Users signature will appear like this',
-
- 'USER_ADMIN_BAN_NAME_REASON' => 'Username banned via user management',
- 'USER_ADMIN_BAN_IP_REASON' => 'IP banned via user management',
- 'USER_ADMIN_BAN_EMAIL_REASON' => 'Email address banned via user management',
+ 'FOUNDER' => 'Founder',
+ 'FOUNDER_EXPLAIN' => 'Founders can never be banned, deleted or altered by non-founder members',
+ 'USER_INFO' => 'Basic information',
+ 'REGISTERED' => 'Registered',
+ 'REGISTERED_IP' => 'Registered from IP',
+ 'LAST_ACTIVE' => 'Last active',
+ 'WARNINGS' => 'Warnings',
+ 'WARNINGS_EXPLAIN' => 'You can directly alter the warnings this users has received.',
+ 'USER_TOOLS' => 'Basic tools',
+ 'QUICK_TOOLS' => 'Quick tools',
+ 'DELETE_USER' => 'Delete users',
+ 'DELETE_USER_EXPLAIN' => 'Please note that deleting a user is final, they cannot be recovered',
+ 'RETAIN_POSTS' => 'Retain posts',
+ 'DELETE_POSTS' => 'Delete posts',
+ 'USER_ADMIN_BAN_USER' => 'Ban by username',
+ 'USER_ADMIN_BAN_EMAIL' => 'Ban by email',
+ 'USER_ADMIN_BAN_IP' => 'Ban by IP',
+ 'USER_ADMIN_FORCE' => 'Force re-activation',
+ 'USER_ADMIN_DEACTIVATE' => 'Deactivate account',
+ 'USER_ADMIN_ACTIVATE' => 'Activate account',
+ 'USER_ADMIN_MOVE_POSTS' => 'Move all posts',
+ 'MOVE_POSTS_EXPLAIN' => 'Please select the forum to which you wish to move all the posts this user has made.',
+
+ 'USER_POSTING_PREFS' => 'Posting preferences',
+
+ 'ADMIN_SIGNATURE_PREVIEW' => 'Users signature will appear like this',
+
+ 'USER_ADMIN_BAN_NAME_REASON' => 'Username banned via user management',
+ 'USER_ADMIN_BAN_IP_REASON' => 'IP banned via user management',
+ 'USER_ADMIN_BAN_EMAIL_REASON' => 'Email address banned via user management',
'USER_DELETED' => 'User deleted successfully',
- 'USER_OVERVIEW_UPDATED' => 'User details updated',
- 'USER_PROFILE_UPDATED' => 'User profile updated',
- 'USER_PREFS_UPDATED' => 'User preferences updated',
- 'USER_ADMIN_INACTIVE' => 'User deactivated successfully',
- 'USER_ADMIN_ACTIVE' => 'User activated successfully',
+ 'USER_OVERVIEW_UPDATED' => 'User details updated',
+ 'USER_PROFILE_UPDATED' => 'User profile updated',
+ 'USER_PREFS_UPDATED' => 'User preferences updated',
+ 'USER_ADMIN_INACTIVE' => 'User deactivated successfully',
+ 'USER_ADMIN_ACTIVE' => 'User activated successfully',
);
// Group admin
$lang += array(
'GROUP_MANAGE_EXPLAIN' => 'From this panel you can administer all your usergroups, you can; delete, create and edit existing groups. You may choose moderators, toggle open/closed group status and set the group name and description.',
- 'USER_DEF_GROUPS' => 'User defined groups',
- 'USER_DEF_GROUPS_EXPLAIN' => 'These are groups created by you or another admin on this board. You can manage memberships as well as edit group properties or even delete the group. By clicking "Default" you can set the relevant group to the default for all its members.',
+ 'USER_DEF_GROUPS' => 'User defined groups',
+ 'USER_DEF_GROUPS_EXPLAIN' => 'These are groups created by you or another admin on this board. You can manage memberships as well as edit group properties or even delete the group. By clicking "Default" you can set the relevant group to the default for all its members.',
'SPECIAL_GROUPS' => 'Predefined groups',
'SPECIAL_GROUPS_EXPLAIN' => 'Pre-defined groups are special groups, they cannot be deleted or directly modified. However you can still add users and alter basic settings. By clicking "Default" you can set the relevant group to the default for all its members.',
- 'TOTAL_MEMBERS' => 'Members',
- 'GROUP_DEFS_UPDATED' => 'Default group set for all members',
- 'CREATE_GROUP' => 'Create new group',
-
- 'GROUP_LIST' => 'Current members',
- 'GROUP_LIST_EXPLAIN' => 'This is a complete list of all the current users with membership of this group. You can delete members (except in certain special groups) or add new ones as you see fit.',
- 'GROUP_MEMBERS' => 'Group members',
- 'GROUP_MEMBERS_EXPLAIN' => 'This is a complete listing of all the members of this usergroup. It includes seperate sections for leaders, pending and existing members. From here you can manage all aspects of who has membership of this group and what their role is. To remove a leader but keep them in the group use Demote rather than delete. Similarly use Promote to make an existing member a leader.',
- 'GROUP_LEAD' => 'Group leaders',
- 'GROUP_APPROVED' => 'Approved Members',
- 'GROUP_PENDING' => 'Pending Members',
- 'GROUPS_NO_MEMBERS' => 'This group has no members',
- 'GROUPS_NO_MODS' => 'No group leaders defined',
- 'SELECT_OPTION' => 'Select option',
+ 'TOTAL_MEMBERS' => 'Members',
+ 'GROUP_DEFS_UPDATED' => 'Default group set for all members',
+ 'CREATE_GROUP' => 'Create new group',
+
+ 'GROUP_LIST' => 'Current members',
+ 'GROUP_LIST_EXPLAIN' => 'This is a complete list of all the current users with membership of this group. You can delete members (except in certain special groups) or add new ones as you see fit.',
+ 'GROUP_MEMBERS' => 'Group members',
+ 'GROUP_MEMBERS_EXPLAIN' => 'This is a complete listing of all the members of this usergroup. It includes seperate sections for leaders, pending and existing members. From here you can manage all aspects of who has membership of this group and what their role is. To remove a leader but keep them in the group use Demote rather than delete. Similarly use Promote to make an existing member a leader.',
+ 'GROUP_LEAD' => 'Group leaders',
+ 'GROUP_APPROVED' => 'Approved Members',
+ 'GROUP_PENDING' => 'Pending Members',
+ 'GROUPS_NO_MEMBERS' => 'This group has no members',
+ 'GROUPS_NO_MODS' => 'No group leaders defined',
+ 'SELECT_OPTION' => 'Select option',
'GROUP_DEFAULT' => 'Default',
'GROUP_APPROVE' => 'Approve',
'GROUP_PROMOTE' => 'Promote',
- 'GROUP_DEMOTE' => 'Demote',
- 'GROUP_DELETE' => 'Delete',
-
- 'ADD_USERS_EXPLAIN' => 'Here you can add new users to the group. You may select whether this group becomes the new default for the selected users. Additionally you can define them as group leaders. Please enter each username on a seperate line.',
- 'USER_DEFAULT' => 'User default',
- 'USER_GROUP_DEFAULT' => 'Set as default group',
- 'USER_GROUP_DEFAULT_EXPLAIN' => 'Saying yes here will set this group as the default group for the added users',
- 'USER_GROUP_LEADER' => 'Set as group leader',
+ 'GROUP_DEMOTE' => 'Demote',
+ 'GROUP_DELETE' => 'Delete',
+
+ 'ADD_USERS_EXPLAIN' => 'Here you can add new users to the group. You may select whether this group becomes the new default for the selected users. Additionally you can define them as group leaders. Please enter each username on a seperate line.',
+ 'USER_DEFAULT' => 'User default',
+ 'USER_GROUP_DEFAULT' => 'Set as default group',
+ 'USER_GROUP_DEFAULT_EXPLAIN' => 'Saying yes here will set this group as the default group for the added users',
+ 'USER_GROUP_LEADER' => 'Set as group leader',
'GROUP_USERS_EXIST' => 'The selected users are already members.',
- 'GROUP_USERS_ADDED' => 'New users added to group successfully.',
- 'GROUP_MODS_ADDED' => 'New group moderators added successfully.',
- 'USERS_APPROVED' => 'Users approved successfully.',
+ 'GROUP_USERS_ADDED' => 'New users added to group successfully.',
+ 'GROUP_MODS_ADDED' => 'New group moderators added successfully.',
+ 'USERS_APPROVED' => 'Users approved successfully.',
- 'GROUP_EDIT_EXPLAIN' => 'Here you can edit an existing group. You can change its name, description and type (open, closed, etc.). You can also set certain groupwide options such as colouration, rank, etc. Changes made here override users current settings. Please note that group members can alter their avatar unless you set appropriate user permissions.',
- 'GROUP_DETAILS' => 'Group details',
+ 'GROUP_EDIT_EXPLAIN' => 'Here you can edit an existing group. You can change its name, description and type (open, closed, etc.). You can also set certain groupwide options such as colouration, rank, etc. Changes made here override users current settings. Please note that group members can alter their avatar unless you set appropriate user permissions.',
+ 'GROUP_DETAILS' => 'Group details',
'GROUP_NAME' => 'Group name',
'GROUP_DESC' => 'Group description',
- 'GROUP_TYPE' => 'Group type',
- 'GROUP_TYPE_EXPLAIN' => 'This determines which users can join or view this group.',
+ 'GROUP_TYPE' => 'Group type',
+ 'GROUP_TYPE_EXPLAIN' => 'This determines which users can join or view this group.',
'GROUP_OPEN' => 'Open',
'GROUP_REQUEST' => 'Request',
'GROUP_CLOSED' => 'Closed',
'GROUP_HIDDEN' => 'Hidden',
- 'GROUP_COLOR' => 'Group colour',
- 'GROUP_COLOR_EXPLAIN' => 'Defines the colour members usernames will appear in, leave blank for user default.',
- 'FORCE_COLOR' => 'Force update',
- 'GROUP_RANK' => 'Group rank',
- 'GROUP_AVATAR' => 'Group avatar',
- 'GROUP_AVATAR_EXPLAIN' => 'This image will be displayed in the Group Control Panel.',
- 'GROUP_UPDATED' => 'Group preferences updated successfully.',
- 'GROUP_CREATED' => 'Group has been created successfully',
-
- 'GROUP_SETTINGS_SAVE' => 'Groupwide settings',
- 'GROUP_SETTINGS' => 'Set user preferences',
- 'GROUP_SETTINGS_EXPLAIN' => 'Here you can force changes in users current preferences. Please note these settings are not saved for the group itself. They are intended as a quick method of altering the preferences of all users in this group.',
- 'GROUP_LANG' => 'Group language',
- 'GROUP_TIMEZONE' => 'Group timezone',
- 'GROUP_DST' => 'Group daylight savings',
-
- 'GROUP_MODS_DEMOTED' => 'Group leaders demoted successfully',
- 'GROUP_MODS_PROMOTED' => 'Group members promoted successfully',
- 'GROUP_USERS_REMOVE' => 'Users removed from group and new defaults set successfully',
- 'GROUP_DELETED' => 'Group deleted and user default groups set successfully',
+ 'GROUP_COLOR' => 'Group colour',
+ 'GROUP_COLOR_EXPLAIN' => 'Defines the colour members usernames will appear in, leave blank for user default.',
+ 'FORCE_COLOR' => 'Force update',
+ 'GROUP_RANK' => 'Group rank',
+ 'GROUP_AVATAR' => 'Group avatar',
+ 'GROUP_AVATAR_EXPLAIN' => 'This image will be displayed in the Group Control Panel.',
+ 'GROUP_UPDATED' => 'Group preferences updated successfully.',
+ 'GROUP_CREATED' => 'Group has been created successfully',
+
+ 'GROUP_SETTINGS_SAVE' => 'Groupwide settings',
+ 'GROUP_SETTINGS' => 'Set user preferences',
+ 'GROUP_SETTINGS_EXPLAIN' => 'Here you can force changes in users current preferences. Please note these settings are not saved for the group itself. They are intended as a quick method of altering the preferences of all users in this group.',
+ 'GROUP_LANG' => 'Group language',
+ 'GROUP_TIMEZONE' => 'Group timezone',
+ 'GROUP_DST' => 'Group daylight savings',
+
+ 'GROUP_MODS_DEMOTED' => 'Group leaders demoted successfully',
+ 'GROUP_MODS_PROMOTED' => 'Group members promoted successfully',
+ 'GROUP_USERS_REMOVE' => 'Users removed from group and new defaults set successfully',
+ 'GROUP_DELETED' => 'Group deleted and user default groups set successfully',
'GROUP_ERR_USERNAME' => 'No group name specified.',
'GROUP_ERR_USER_LONG' => 'Group name too long.',
'GROUP_ERR_DESC_LONG' => 'Group description too long.',
- 'GROUP_ERR_TYPE' => 'Inappropriate group type specified.',
- 'GROUP_ERR_USERS_EXIST' => 'The specified users are already members of this group',
+ 'GROUP_ERR_TYPE' => 'Inappropriate group type specified.',
+ 'GROUP_ERR_USERS_EXIST' => 'The specified users are already members of this group',
);
// Forum Pruning
@@ -1257,7 +1259,7 @@ $lang += array(
'NO_WORD' => 'No word selected for editing',
'WORD_UPDATED' => 'The selected word censor has been successfully updated',
'WORD_ADDED' => 'The word censor has been successfully added',
- 'WORD_REMOVED' => 'The selected word censor has been successfully removed',
+ 'WORD_REMOVED' => 'The selected word censor has been successfully removed',
);
// Mass email
@@ -1266,12 +1268,12 @@ $lang += array(
'COMPOSE' => 'Compose',
'SEND_TO_GROUP' => 'Send to group',
'SEND_TO_USERS' => 'Send to users',
- 'SEND_TO_USERS_EXPLAIN' => 'Entering names here will override any group selected above. Enter each username on a new line.',
- 'MASS_MESSAGE' => 'Your message',
- 'MASS_MESSAGE_EXPLAIN' => 'Please note that you may enter only plain text. All markup will be removed before sending.',
+ 'SEND_TO_USERS_EXPLAIN' => 'Entering names here will override any group selected above. Enter each username on a new line.',
+ 'MASS_MESSAGE' => 'Your message',
+ 'MASS_MESSAGE_EXPLAIN' => 'Please note that you may enter only plain text. All markup will be removed before sending.',
'ALL_USERS' => 'All Users',
- 'NO_EMAIL_SUBJECT' => 'You must specify a subject for your message.',
- 'NO_EMAIL_MESSAGE' => 'You must enter a message.',
+ 'NO_EMAIL_SUBJECT' => 'You must specify a subject for your message.',
+ 'NO_EMAIL_MESSAGE' => 'You must enter a message.',
'EMAIL_SENT' => 'Your message has been queued for sending.',
'EMAIL_SEND_ERROR' => 'There were one or more errors while sending the email. Please check the %sError Log%s for detailed error messages.',
'SEND_IMMEDIATLY' => 'Send immediatly',
@@ -1317,420 +1319,420 @@ $lang += array(
// Styling
$lang += array(
- 'STYLES' => 'Styles',
- 'STYLES_EXPLAIN' => 'Here you can manage the available styles on your board. A style consists off a template, theme and imageset. You may alter existing styles, delete, deactivate, reactivate, create or import new ones. You can also see what a style will look like using the preview function. The current default style is noted by the presence of an asterix, * Also listed is the total user count for each style, note that overriding user styles will not be reflected here.',
- 'STYLE_NAME' => 'Style name',
- 'STYLE_USED_BY' => 'Used by',
- 'STYLE_ACTIVATE' => 'Activate',
- 'STYLE_DEACTIVATE' => 'Deactivate',
- 'CREATE_STYLE' => 'Create new style',
- 'INSTALLED_STYLE' => 'Installed styles',
- 'UNINSTALLED_STYLE' => 'Uninstalled styles',
- 'NO_UNINSTALLED_STYLE' => 'No uninstalled styles detected',
- 'DEACTIVATE_DEFAULT' => 'You cannot deactivate the default style.',
-
- 'EDIT_DETAILS_STYLE' => 'Edit Style',
- 'EDIT_DETAILS_STYLE_EXPLAIN'=> 'Using the form below you can modify this existing style. You may alter the combination of template, theme and imageset which define the style itself. You may also deactivate the style and alter its name.',
- 'STYLE_ACTIVE' => 'Active',
- 'STYLE_DEFAULT' => 'Make default style',
- 'STYLE_IMAGESET' => 'Imageset',
- 'STYLE_THEME' => 'Theme',
- 'STYLE_TEMPLATE' => 'Template',
- 'STYLE_ADDED' => 'Style added successfully',
- 'STYLE_EDITED' => 'Style edited successfully',
-
- 'ADD_STYLE' => 'Create Style',
- 'ADD_STYLE_EXPLAIN' => 'Here you can create a new style. Depending on your server configuration and file permissions you may have additional options. For example you may be able to base this style on an existing one. You may also be able to upload or import (from the store directory) a style archive. If you upload or import an archive the style name will be determined automatically.',
- 'INSTALL_STYLE' => 'Install Style',
- 'INSTALL_STYLE_EXPLAIN' => 'Here you can install a new style and if appropriate the corresponding style elements. If you already have the relevant style elements installed they will not be overwritten. Some styles require existing style elements to already be installed. If you try installing such a style and do not have the required elements you will be notified.',
- 'STYLE_BASIS' => 'Style based on',
- 'SELECT_STYLE' => 'Select style',
- 'STYLE_UPLOAD_BASIS' => 'Upload a style',
- 'STYLE_IMPORT_BASIS' => 'Import style from store',
-
- 'STYLE_EXPORT' => 'Export Style',
- 'STYLE_EXPORT_EXPLAIN' => 'Here you can export a style in the form of an archive. A style does not need to contain all elements but it must contain at least one. For example if you have created a new theme and imageset for a commonly used template you could simply export the theme and imageset and ommit the template. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
- 'INCLUDE_TEMPLATE' => 'Include template',
- 'INCLUDE_THEME' => 'Include theme',
- 'INCLUDE_IMAGESET' => 'Include imageset',
- 'STYLE_EXPORTED' => 'Style exported succesfully and stored in %s',
-
- 'DELETE_STYLE' => 'Delete style',
- 'DELETE_STYLE_EXPLAIN' => 'Here you can remove the selected style. You cannot remove all the style elements from here. These must be deleted individually via their respective forms. Take care in deleting styles there is no undo facility.',
- 'REPLACE_STYLE' => 'Replace style with',
- 'REPLACE_STYLE_EXPLAIN' => 'This style will replace the one being deleted for members that use it.',
+ 'STYLES' => 'Styles',
+ 'STYLES_EXPLAIN' => 'Here you can manage the available styles on your board. A style consists off a template, theme and imageset. You may alter existing styles, delete, deactivate, reactivate, create or import new ones. You can also see what a style will look like using the preview function. The current default style is noted by the presence of an asterix, * Also listed is the total user count for each style, note that overriding user styles will not be reflected here.',
+ 'STYLE_NAME' => 'Style name',
+ 'STYLE_USED_BY' => 'Used by',
+ 'STYLE_ACTIVATE' => 'Activate',
+ 'STYLE_DEACTIVATE' => 'Deactivate',
+ 'CREATE_STYLE' => 'Create new style',
+ 'INSTALLED_STYLE' => 'Installed styles',
+ 'UNINSTALLED_STYLE' => 'Uninstalled styles',
+ 'NO_UNINSTALLED_STYLE' => 'No uninstalled styles detected',
+ 'DEACTIVATE_DEFAULT' => 'You cannot deactivate the default style.',
+
+ 'EDIT_DETAILS_STYLE' => 'Edit Style',
+ 'EDIT_DETAILS_STYLE_EXPLAIN'=> 'Using the form below you can modify this existing style. You may alter the combination of template, theme and imageset which define the style itself. You may also deactivate the style and alter its name.',
+ 'STYLE_ACTIVE' => 'Active',
+ 'STYLE_DEFAULT' => 'Make default style',
+ 'STYLE_IMAGESET' => 'Imageset',
+ 'STYLE_THEME' => 'Theme',
+ 'STYLE_TEMPLATE' => 'Template',
+ 'STYLE_ADDED' => 'Style added successfully',
+ 'STYLE_EDITED' => 'Style edited successfully',
+
+ 'ADD_STYLE' => 'Create Style',
+ 'ADD_STYLE_EXPLAIN' => 'Here you can create a new style. Depending on your server configuration and file permissions you may have additional options. For example you may be able to base this style on an existing one. You may also be able to upload or import (from the store directory) a style archive. If you upload or import an archive the style name will be determined automatically.',
+ 'INSTALL_STYLE' => 'Install Style',
+ 'INSTALL_STYLE_EXPLAIN' => 'Here you can install a new style and if appropriate the corresponding style elements. If you already have the relevant style elements installed they will not be overwritten. Some styles require existing style elements to already be installed. If you try installing such a style and do not have the required elements you will be notified.',
+ 'STYLE_BASIS' => 'Style based on',
+ 'SELECT_STYLE' => 'Select style',
+ 'STYLE_UPLOAD_BASIS' => 'Upload a style',
+ 'STYLE_IMPORT_BASIS' => 'Import style from store',
+
+ 'STYLE_EXPORT' => 'Export Style',
+ 'STYLE_EXPORT_EXPLAIN' => 'Here you can export a style in the form of an archive. A style does not need to contain all elements but it must contain at least one. For example if you have created a new theme and imageset for a commonly used template you could simply export the theme and imageset and ommit the template. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
+ 'INCLUDE_TEMPLATE' => 'Include template',
+ 'INCLUDE_THEME' => 'Include theme',
+ 'INCLUDE_IMAGESET' => 'Include imageset',
+ 'STYLE_EXPORTED' => 'Style exported succesfully and stored in %s',
+
+ 'DELETE_STYLE' => 'Delete style',
+ 'DELETE_STYLE_EXPLAIN' => 'Here you can remove the selected style. You cannot remove all the style elements from here. These must be deleted individually via their respective forms. Take care in deleting styles there is no undo facility.',
+ 'REPLACE_STYLE' => 'Replace style with',
+ 'REPLACE_STYLE_EXPLAIN' => 'This style will replace the one being deleted for members that use it.',
'ONLY_STYLE' => 'This is the only remaining style, you cannot delete it',
- 'STYLE_DELETED' => 'Style deleted successfully',
+ 'STYLE_DELETED' => 'Style deleted successfully',
- 'TEMPLATES' => 'Templates',
- 'TEMPLATES_EXPLAIN' => 'A Template set comprises all the markup used to generate the layout of your board. Here you can edit existing template sets, delete, export, import and preview sets. You can also modify the templating code used to generate BBCode.',
- 'CREATE_TEMPLATE' => 'Create new template set',
- 'INSTALLED_TEMPLATE' => 'Installed templates',
- 'UNINSTALLED_TEMPLATE' => 'Uninstalled templates',
- 'NO_UNINSTALLED_TEMPLATE' => 'No uninstalled templates detected',
+ 'TEMPLATES' => 'Templates',
+ 'TEMPLATES_EXPLAIN' => 'A Template set comprises all the markup used to generate the layout of your board. Here you can edit existing template sets, delete, export, import and preview sets. You can also modify the templating code used to generate BBCode.',
+ 'CREATE_TEMPLATE' => 'Create new template set',
+ 'INSTALLED_TEMPLATE' => 'Installed templates',
+ 'UNINSTALLED_TEMPLATE' => 'Uninstalled templates',
+ 'NO_UNINSTALLED_TEMPLATE' => 'No uninstalled templates detected',
'EDIT_TEMPLATE' => 'Edit Template',
- 'EDIT_TEMPLATE_EXPLAIN' => 'Here you can edit your template set directly. Please remember that these edits are permanent and cannot be undone once submitted. If PHP can write to the template files in your styles directory any changes here will be written directly to those files. If PHP cannot write to those files they will be copied into the database and all changes will only be reflected there. Please take care when editing your template set, remember to close all replacement variable terms {XXXX} and conditional statements.',
- 'SELECTED_TEMPLATE' => 'Selected template set:',
- 'RAW_HTML' => 'Raw HTML',
- 'TEMPLATE_UPDATED' => 'Template updated successfully',
-
- 'EDIT_DETAILS_TEMPLATE' => 'Edit template details',
- 'EDIT_DETAILS_TEMPLATE_EXPLAIN' => 'Here you can edit certain templates details such as its name. You may also have the option to switch storage of the stylesheet from the filesystem to the database and vice versa. This option depends on your PHP configuration and whether your template set can be written to by the webserver.',
- 'ADD_TEMPLATE' => 'Create Template',
- 'ADD_TEMPLATE_EXPLAIN' => 'Here you can add a new template. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this template set on an existing one. You may also be able to upload or import (from the store directory) a template archive. If you upload or import an archive the template name can be optionally taken from the archive name (to do this leave the template name blank).',
- 'INSTALL_TEMPLATE' => 'Install Template',
- 'INSTALL_TEMPLATE_EXPLAIN' => 'Here you can install a new template set. Depending on your server configuration you may have a number of options here.',
- 'TEMPLATE_NAME' => 'Template name',
- 'SELECT_TEMPLATE' => 'Select template',
- 'TEMPLATE_BASIS' => 'Template set based on',
- 'TEMPLATE_UPLOAD_BASIS' => 'Upload a template',
- 'TEMPLATE_IMPORT_BASIS' => 'Import template from store',
- 'TEMPLATE_LOCATION' => 'Store templates in',
- 'TEMPLATE_LOCATION_EXPLAIN' => 'Images are always stored on the filesystem.',
- 'TEMPLATE_ADDED' => 'Template set added and stored on filesystem',
- 'TEMPLATE_ADDED_DB' => 'Template set added and stored in database',
-
- 'TEMPLATE_CACHE' => 'Template Cache',
- 'TEMPLATE_CACHE_EXPLAIN'=> 'By default phpBB caches the compiled version of its templates. This decreases the load on the server each time a page is viewed and thus may reduce the page generation time. Here you can view the cache status of each file and delete individual files or the entire cache.',
- 'CACHE_FILENAME' => 'Template file',
- 'CACHE_FILESIZE' => 'Filesize',
- 'CACHE_CACHED' => 'Cached',
- 'CACHE_MODIFIED' => 'Modified',
- 'NO_CACHED_TPL_FILES' => 'No cached files for this template',
- 'TEMPLATE_CACHE_CLEARED'=> 'Cached templates deleted',
-
- 'TEMPLATE_EXPORT' => 'Export Templates',
- 'TEMPLATE_EXPORT_EXPLAIN' => 'Here you can export a template set in the form of an archive. This archive will contain all the files necessary to install the templates on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
- 'TEMPLATE_EXPORTED' => 'Templates exported succesfully and stored in %s',
-
- 'DELETE_TEMPLATE' => 'Delete Template',
- 'DELETE_TEMPLATE_EXPLAIN' => 'Here you can remove the selected template set from the database. Additionally, if you have permission you can elect to remove the set from the filesystem. Please note that there is no undo capability. When the templates are deleted they are gone for good. It is recommended that you first export your set for possible future use.',
- 'REPLACE_TEMPLATE' => 'Replate template with',
- 'REPLACE_TEMPLATE_EXPLAIN' => 'This template set will replace the one you are deleting in any styles that use it.',
- 'TEMPLATE_DELETED' => 'Template set deleted successfully',
- 'TEMPLATE_DELETED_FS' => 'Template set removed from database but some files may remain on the filesystem',
+ 'EDIT_TEMPLATE_EXPLAIN' => 'Here you can edit your template set directly. Please remember that these edits are permanent and cannot be undone once submitted. If PHP can write to the template files in your styles directory any changes here will be written directly to those files. If PHP cannot write to those files they will be copied into the database and all changes will only be reflected there. Please take care when editing your template set, remember to close all replacement variable terms {XXXX} and conditional statements.',
+ 'SELECTED_TEMPLATE' => 'Selected template set:',
+ 'RAW_HTML' => 'Raw HTML',
+ 'TEMPLATE_UPDATED' => 'Template updated successfully',
+
+ 'EDIT_DETAILS_TEMPLATE' => 'Edit template details',
+ 'EDIT_DETAILS_TEMPLATE_EXPLAIN' => 'Here you can edit certain templates details such as its name. You may also have the option to switch storage of the stylesheet from the filesystem to the database and vice versa. This option depends on your PHP configuration and whether your template set can be written to by the webserver.',
+ 'ADD_TEMPLATE' => 'Create Template',
+ 'ADD_TEMPLATE_EXPLAIN' => 'Here you can add a new template. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this template set on an existing one. You may also be able to upload or import (from the store directory) a template archive. If you upload or import an archive the template name can be optionally taken from the archive name (to do this leave the template name blank).',
+ 'INSTALL_TEMPLATE' => 'Install Template',
+ 'INSTALL_TEMPLATE_EXPLAIN' => 'Here you can install a new template set. Depending on your server configuration you may have a number of options here.',
+ 'TEMPLATE_NAME' => 'Template name',
+ 'SELECT_TEMPLATE' => 'Select template',
+ 'TEMPLATE_BASIS' => 'Template set based on',
+ 'TEMPLATE_UPLOAD_BASIS' => 'Upload a template',
+ 'TEMPLATE_IMPORT_BASIS' => 'Import template from store',
+ 'TEMPLATE_LOCATION' => 'Store templates in',
+ 'TEMPLATE_LOCATION_EXPLAIN' => 'Images are always stored on the filesystem.',
+ 'TEMPLATE_ADDED' => 'Template set added and stored on filesystem',
+ 'TEMPLATE_ADDED_DB' => 'Template set added and stored in database',
+
+ 'TEMPLATE_CACHE' => 'Template Cache',
+ 'TEMPLATE_CACHE_EXPLAIN'=> 'By default phpBB caches the compiled version of its templates. This decreases the load on the server each time a page is viewed and thus may reduce the page generation time. Here you can view the cache status of each file and delete individual files or the entire cache.',
+ 'CACHE_FILENAME' => 'Template file',
+ 'CACHE_FILESIZE' => 'Filesize',
+ 'CACHE_CACHED' => 'Cached',
+ 'CACHE_MODIFIED' => 'Modified',
+ 'NO_CACHED_TPL_FILES' => 'No cached files for this template',
+ 'TEMPLATE_CACHE_CLEARED'=> 'Cached templates deleted',
+
+ 'TEMPLATE_EXPORT' => 'Export Templates',
+ 'TEMPLATE_EXPORT_EXPLAIN' => 'Here you can export a template set in the form of an archive. This archive will contain all the files necessary to install the templates on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
+ 'TEMPLATE_EXPORTED' => 'Templates exported succesfully and stored in %s',
+
+ 'DELETE_TEMPLATE' => 'Delete Template',
+ 'DELETE_TEMPLATE_EXPLAIN' => 'Here you can remove the selected template set from the database. Additionally, if you have permission you can elect to remove the set from the filesystem. Please note that there is no undo capability. When the templates are deleted they are gone for good. It is recommended that you first export your set for possible future use.',
+ 'REPLACE_TEMPLATE' => 'Replate template with',
+ 'REPLACE_TEMPLATE_EXPLAIN' => 'This template set will replace the one you are deleting in any styles that use it.',
+ 'TEMPLATE_DELETED' => 'Template set deleted successfully',
+ 'TEMPLATE_DELETED_FS' => 'Template set removed from database but some files may remain on the filesystem',
'ONLY_TEMPLATE' => 'This is the only remaining template set, you cannot delete it',
- 'THEMES' => 'Themes',
- 'THEMES_EXPLAIN' => 'From here you can create, install, edit, delete and export themes. A theme is the combination of colours and images that are applied to your templates to define the basic look of your forum. The range of options open to you depends on the configuration of your server and phpBB installation, see the Manual for further details. Please note that when creating new themes the use of an existing theme as a basis is optional.',
- 'SELECT_THEME_BASIS' => 'Select optional basis',
- 'THEME_VERSION_DIFF' => 'This theme was designed for a version of phpBB 2.2 different from that installed you may encounter some issues in its use.',
- 'CREATE_THEME' => 'Create new theme',
- 'INSTALLED_THEME' => 'Installed themes',
- 'UNINSTALLED_THEME' => 'Uninstalled themes',
- 'NO_UNINSTALLED_THEME' => 'No uninstalled themes detected',
-
- 'DELETE_THEME' => 'Delete theme',
- 'DELETE_THEME_EXPLAIN' => 'Here you can remove the selected theme from the database. Additionally, if you have permission you can elect to remove the theme from the filesystem. Please note that there is no undo capability. When the theme is deleted it is gone for good. It is recommended that you first export your theme for possible future use.',
- 'REPLACE_THEME' => 'Replace theme with',
- 'REPLACE_THEME_EXPLAIN' => 'This theme will replace the one you are deleting in any styles that use it.',
- 'THEME_DELETED' => 'Theme deleted successfully',
- 'THEME_DELETED_FS' => 'Theme removed from database but files remain on the filesystem',
+ 'THEMES' => 'Themes',
+ 'THEMES_EXPLAIN' => 'From here you can create, install, edit, delete and export themes. A theme is the combination of colours and images that are applied to your templates to define the basic look of your forum. The range of options open to you depends on the configuration of your server and phpBB installation, see the Manual for further details. Please note that when creating new themes the use of an existing theme as a basis is optional.',
+ 'SELECT_THEME_BASIS' => 'Select optional basis',
+ 'THEME_VERSION_DIFF' => 'This theme was designed for a version of phpBB 2.2 different from that installed you may encounter some issues in its use.',
+ 'CREATE_THEME' => 'Create new theme',
+ 'INSTALLED_THEME' => 'Installed themes',
+ 'UNINSTALLED_THEME' => 'Uninstalled themes',
+ 'NO_UNINSTALLED_THEME' => 'No uninstalled themes detected',
+
+ 'DELETE_THEME' => 'Delete theme',
+ 'DELETE_THEME_EXPLAIN' => 'Here you can remove the selected theme from the database. Additionally, if you have permission you can elect to remove the theme from the filesystem. Please note that there is no undo capability. When the theme is deleted it is gone for good. It is recommended that you first export your theme for possible future use.',
+ 'REPLACE_THEME' => 'Replace theme with',
+ 'REPLACE_THEME_EXPLAIN' => 'This theme will replace the one you are deleting in any styles that use it.',
+ 'THEME_DELETED' => 'Theme deleted successfully',
+ 'THEME_DELETED_FS' => 'Theme removed from database but files remain on the filesystem',
'ONLY_THEME' => 'This is the only remaining theme, you cannot delete it',
- 'EDIT_DETAILS_THEME' => 'Edit theme details',
- 'EDIT_DETAILS_THEME_EXPLAIN'=> 'Here you can edit certain theme details such as its name. You may also have the option to switch storage of the stylesheet from the filesystem to the database and vice versa. This option depends on your PHP configuration and whether your stylesheet can be written to by the webserver.',
- 'ADD_THEME' => 'Create Theme',
- 'ADD_THEME_EXPLAIN' => 'Here you can add a new theme. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this theme on an existing one. You may also be able to upload or import (from the store directory) a theme archive. If you upload or import an archive the theme name can be optionally taken from the archive name (to do this leave the theme name blank).',
- 'INSTALL_THEME' => 'Install Theme',
- 'INSTALL_THEME_EXPLAIN' => 'Here you can install your selected theme. You can edit certain details if you wish or use the installation defaults.',
- 'THEME_NAME' => 'Theme Name',
- 'THEME_BASIS' => 'Theme Basis',
- 'THEME_BASIS' => 'Theme based on',
- 'THEME_UPLOAD_BASIS' => 'Upload a theme',
- 'THEME_IMPORT_BASIS' => 'Import theme from store',
- 'THEME_LOCATION' => 'Store stylesheet in',
- 'THEME_LOCATION_EXPLAIN'=> 'Images are always stored on the filesystem.',
-
- 'EDIT_THEME' => 'Edit theme',
- 'EDIT_THEME_EXPLAIN' => 'Here you can edit the selected theme, changing colours, images, etc. You can switch between a simplified interface where you can set basic colours, etc. and a more advanced "raw CSS" mode. The raw mode allows you add additional parameters such as borders, etc. Only set parameters you need else leave them blank or unset. Default classes used by this theme are coloured red in the select box. You may also add additional "custom" classes should your template or style make use of them.',
- 'SELECTED_THEME' => 'Selected theme',
- 'SELECT_CLASS' => 'Select class',
- 'SHOW_RAW_CSS' => 'Show CSS',
- 'HIDE_RAW_CSS' => 'Hide CSS',
- 'SHOW_RAW_CSS_NOTE' => 'Note',
- 'SHOW_RAW_CSS_EXPLAIN' => 'Enter each element on a new line, ending with a ; Expand the data for each element, e.g. do not use font: use font-family:, font-weight:, etc.',
- 'CSS_CAT_LAYOUT' => 'Layout',
- 'CSS_#HEADER' => 'Header',
- 'CSS_#LOGO' => 'Header logo',
- 'CSS_#MENU' => 'Menu container',
- 'CSS_#INFO' => 'Info container',
- 'CSS_#FOOTER' => 'Footer',
- 'CSS_CAT_TEXT' => 'Text Classes',
+ 'EDIT_DETAILS_THEME' => 'Edit theme details',
+ 'EDIT_DETAILS_THEME_EXPLAIN'=> 'Here you can edit certain theme details such as its name. You may also have the option to switch storage of the stylesheet from the filesystem to the database and vice versa. This option depends on your PHP configuration and whether your stylesheet can be written to by the webserver.',
+ 'ADD_THEME' => 'Create Theme',
+ 'ADD_THEME_EXPLAIN' => 'Here you can add a new theme. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this theme on an existing one. You may also be able to upload or import (from the store directory) a theme archive. If you upload or import an archive the theme name can be optionally taken from the archive name (to do this leave the theme name blank).',
+ 'INSTALL_THEME' => 'Install Theme',
+ 'INSTALL_THEME_EXPLAIN' => 'Here you can install your selected theme. You can edit certain details if you wish or use the installation defaults.',
+ 'THEME_NAME' => 'Theme Name',
+ 'THEME_BASIS' => 'Theme Basis',
+ 'THEME_BASIS' => 'Theme based on',
+ 'THEME_UPLOAD_BASIS' => 'Upload a theme',
+ 'THEME_IMPORT_BASIS' => 'Import theme from store',
+ 'THEME_LOCATION' => 'Store stylesheet in',
+ 'THEME_LOCATION_EXPLAIN'=> 'Images are always stored on the filesystem.',
+
+ 'EDIT_THEME' => 'Edit theme',
+ 'EDIT_THEME_EXPLAIN' => 'Here you can edit the selected theme, changing colours, images, etc. You can switch between a simplified interface where you can set basic colours, etc. and a more advanced "raw CSS" mode. The raw mode allows you add additional parameters such as borders, etc. Only set parameters you need else leave them blank or unset. Default classes used by this theme are coloured red in the select box. You may also add additional "custom" classes should your template or style make use of them.',
+ 'SELECTED_THEME' => 'Selected theme',
+ 'SELECT_CLASS' => 'Select class',
+ 'SHOW_RAW_CSS' => 'Show CSS',
+ 'HIDE_RAW_CSS' => 'Hide CSS',
+ 'SHOW_RAW_CSS_NOTE' => 'Note',
+ 'SHOW_RAW_CSS_EXPLAIN' => 'Enter each element on a new line, ending with a ; Expand the data for each element, e.g. do not use font: use font-family:, font-weight:, etc.',
+ 'CSS_CAT_LAYOUT' => 'Layout',
+ 'CSS_#HEADER' => 'Header',
+ 'CSS_#LOGO' => 'Header logo',
+ 'CSS_#MENU' => 'Menu container',
+ 'CSS_#INFO' => 'Info container',
+ 'CSS_#FOOTER' => 'Footer',
+ 'CSS_CAT_TEXT' => 'Text Classes',
'CSS_BODY' => 'Body',
- 'CSS_P' => 'Paragraph',
- 'CSS_H1' => 'Header 1',
- 'CSS_H2' => 'Header 2',
- 'CSS_H3' => 'Header 3',
- 'CSS_TABLETITLE' => 'Table Title',
- 'CSS_CATTITLE' => 'Category Title',
- 'CSS_TOPICTITLE' => 'Topic Titles',
- 'CSS_TOPICAUTHOR' => 'Topic Author',
- 'CSS_TOPICDETAILS' => 'Topic Details',
- 'CSS_POSTBODY' => 'Post Text',
- 'CSS_POSTHILIT' => 'Post Highlight',
- 'CSS_POSTAUTHOR' => 'Post Author',
+ 'CSS_P' => 'Paragraph',
+ 'CSS_H1' => 'Header 1',
+ 'CSS_H2' => 'Header 2',
+ 'CSS_H3' => 'Header 3',
+ 'CSS_TABLETITLE' => 'Table Title',
+ 'CSS_CATTITLE' => 'Category Title',
+ 'CSS_TOPICTITLE' => 'Topic Titles',
+ 'CSS_TOPICAUTHOR' => 'Topic Author',
+ 'CSS_TOPICDETAILS' => 'Topic Details',
+ 'CSS_POSTBODY' => 'Post Text',
+ 'CSS_POSTHILIT' => 'Post Highlight',
+ 'CSS_POSTAUTHOR' => 'Post Author',
'CSS_POSTDETAILS' => 'Post Details',
- 'CSS_MAINMENU' => 'Main Menu',
+ 'CSS_MAINMENU' => 'Main Menu',
'CSS_NAV' => 'Navigation',
- 'CSS_GENMED' => 'General Medium',
+ 'CSS_GENMED' => 'General Medium',
'CSS_GENSMALL' => 'General Small',
- 'CSS_COPYRIGHT' => 'Copyright',
- 'CSS_CAT_TABLES' => 'Tabular Classes',
- 'CSS_TABLE' => 'Table',
+ 'CSS_COPYRIGHT' => 'Copyright',
+ 'CSS_CAT_TABLES' => 'Tabular Classes',
+ 'CSS_TABLE' => 'Table',
'CSS_TH' => 'Table Header',
'CSS_TD' => 'Table Data',
- 'CSS_CAT' => 'Category Header',
- 'CSS_CATDIV' => 'Category Fade',
- 'CSS_ROW1' => 'Alternate Row 1',
- 'CSS_ROW2' => 'Alternate Row 2',
- 'CSS_ROW3' => 'Alternate Row 3',
- 'CSS_SPACER' => 'Spacer Row',
- 'CSS_HR' => 'Horizontal Rule',
- 'CSS_CAT_FORMS' => 'Form Classes',
- 'CSS_FORM' => 'Form',
- 'CSS_INPUT' => 'Input',
- 'CSS_SELECT' => 'Select',
- 'CSS_TEXTAREA' => 'Textarea',
- 'CSS_POST' => 'Text Input',
+ 'CSS_CAT' => 'Category Header',
+ 'CSS_CATDIV' => 'Category Fade',
+ 'CSS_ROW1' => 'Alternate Row 1',
+ 'CSS_ROW2' => 'Alternate Row 2',
+ 'CSS_ROW3' => 'Alternate Row 3',
+ 'CSS_SPACER' => 'Spacer Row',
+ 'CSS_HR' => 'Horizontal Rule',
+ 'CSS_CAT_FORMS' => 'Form Classes',
+ 'CSS_FORM' => 'Form',
+ 'CSS_INPUT' => 'Input',
+ 'CSS_SELECT' => 'Select',
+ 'CSS_TEXTAREA' => 'Textarea',
+ 'CSS_POST' => 'Text Input',
'CSS_BTNMAIN' => 'Primary Buttons',
'CSS_BTNLITE' => 'Secondary Buttons',
- 'CSS_BTNBBCODE' => 'BBCode Buttons',
- 'CSS_CAT_BBCODE' => 'BBCode Classes',
+ 'CSS_BTNBBCODE' => 'BBCode Buttons',
+ 'CSS_CAT_BBCODE' => 'BBCode Classes',
'CSS_B' => 'Bold',
'CSS_U' => 'Underline',
'CSS_I' => 'Italics',
'CSS_COLOR' => 'Colour',
- 'CSS_SIZE' => 'Size',
+ 'CSS_SIZE' => 'Size',
'CSS_CODE' => 'Code',
'CSS_QUOTE' => 'Quote',
'CSS_FLASH' => 'Flash',
- 'CSS_SYNTAXBG' => 'Syntax Background',
+ 'CSS_SYNTAXBG' => 'Syntax Background',
'CSS_SYNTAXCOMMENT' => 'Syntax Comments',
'CSS_SYNTAXDEFAULT' => 'Syntax Default',
'CSS_SYNTAXHTML' => 'Syntax HTML',
'CSS_SYNTAXKEYWORD' => 'Syntax Keyword',
'CSS_SYNTAXSTRING' => 'Syntax String',
- 'CSS_CAT_CUSTOM' => 'Custom Classes',
+ 'CSS_CAT_CUSTOM' => 'Custom Classes',
'CSS_ANCHOR_LINK' => 'Link',
'CSS_ANCHOR_ACTIVE' => 'Active',
'CSS_ANCHOR_VISITED'=> 'Visited',
- 'CSS_ANCHOR_HOVER' => 'Hover',
-
- 'CSS_PARAMETER' => 'Parameter',
- 'CSS_VALUE' => 'Value',
- 'RAW_CSS' => 'Raw CSS',
- 'BACKGROUND' => 'Background',
- 'BACKGROUND_COLOUR' => 'Background colour',
- 'BACKGROUND_IMAGE' => 'Background image',
- 'BACKGROUND_REPEAT' => 'Repeat background',
- 'REPEAT_NO' => 'None',
- 'REPEAT_X' => 'Only horizontally',
- 'REPEAT_Y' => 'Only vertically',
- 'REPEAT_ALL' => 'Both directions',
- 'FOREGROUND' => 'Foreground',
- 'COLOUR_EXPLAIN' => 'This is a hex-triplet of the form #RRGGBB or colour name',
- 'FONT_COLOUR' => 'Font colour',
- 'FONT_FACE' => 'Font face',
- 'FONT_FACE_EXPLAIN' => 'You can specify multiple fonts seperated by commas.',
- 'FONT_SIZE' => 'Font size',
- 'UNDERLINE' => 'Underline',
- 'ITALIC' => 'Italic',
- 'BOLD' => 'Bold',
- 'LINE_SPACING' => 'Line spacing',
- 'CUSTOM_CLASS' => 'Custom Class',
- 'CUSTOM_CLASS_EXPLAIN' => 'You can add additional classes to this theme if you wish. You must provide the actual CSS class name below, it must be the same as that you have or will use in your template. Please remember that class names may contain only alphanumeric characters, periods (.), colons (:) and number/hash/pound (#). The new class will be added to the Custom Class category in the select box above.',
- 'CSS_CLASS_NAME' => 'CSS class name',
- 'CUSTOM_CLASS' => 'Custom Class',
-
- 'THEME_CLASS_ADDED' => 'Custom class added successfully',
+ 'CSS_ANCHOR_HOVER' => 'Hover',
+
+ 'CSS_PARAMETER' => 'Parameter',
+ 'CSS_VALUE' => 'Value',
+ 'RAW_CSS' => 'Raw CSS',
+ 'BACKGROUND' => 'Background',
+ 'BACKGROUND_COLOUR' => 'Background colour',
+ 'BACKGROUND_IMAGE' => 'Background image',
+ 'BACKGROUND_REPEAT' => 'Repeat background',
+ 'REPEAT_NO' => 'None',
+ 'REPEAT_X' => 'Only horizontally',
+ 'REPEAT_Y' => 'Only vertically',
+ 'REPEAT_ALL' => 'Both directions',
+ 'FOREGROUND' => 'Foreground',
+ 'COLOUR_EXPLAIN' => 'This is a hex-triplet of the form #RRGGBB or colour name',
+ 'FONT_COLOUR' => 'Font colour',
+ 'FONT_FACE' => 'Font face',
+ 'FONT_FACE_EXPLAIN' => 'You can specify multiple fonts seperated by commas.',
+ 'FONT_SIZE' => 'Font size',
+ 'UNDERLINE' => 'Underline',
+ 'ITALIC' => 'Italic',
+ 'BOLD' => 'Bold',
+ 'LINE_SPACING' => 'Line spacing',
+ 'CUSTOM_CLASS' => 'Custom Class',
+ 'CUSTOM_CLASS_EXPLAIN' => 'You can add additional classes to this theme if you wish. You must provide the actual CSS class name below, it must be the same as that you have or will use in your template. Please remember that class names may contain only alphanumeric characters, periods (.), colons (:) and number/hash/pound (#). The new class will be added to the Custom Class category in the select box above.',
+ 'CSS_CLASS_NAME' => 'CSS class name',
+ 'CUSTOM_CLASS' => 'Custom Class',
+
+ 'THEME_CLASS_ADDED' => 'Custom class added successfully',
'THEME_UPDATED' => 'Class updated successfully',
- 'THEME_ADDED_DB' => 'New theme added to database',
- 'THEME_ADDED' => 'New theme added on filesystem',
- 'THEME_DETAILS_UPDATE' => 'Theme details updated',
-
- 'THEME_EXPORT' => 'Export Theme',
- 'THEME_EXPORT_EXPLAIN' => 'Here you can export a theme in the form of an archive. This archive will contain all the data necessary to install the theme on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
- 'THEME_EXPORTED' => 'Theme exported succesfully and stored in %s',
-
- 'IMAGESETS' => 'Imagesets',
- 'IMAGESETS_EXPLAIN' => 'Imagesets comprise all the button, forum, folder, etc. and other non-style specific images used by the board. Here you can edit, export or delete existing imagesets and import or activate new sets.',
- 'CREATE_IMAGESET' => 'Create new imageset',
- 'INSTALLED_IMAGESET' => 'Installed imagesets',
- 'UNINSTALLED_IMAGESET' => 'Uninstalled imagesets',
- 'NO_UNINSTALLED_IMAGESET' => 'No uninstalled imagesets detected',
-
- 'EDIT_IMAGESET' => 'Edit Imageset',
- 'EDIT_IMAGESET_EXPLAIN' => 'Here you can edit the individual images which define the imageset. You can also specify dimensions for the image. Dimensions are optional, specifying them can overcome certain rendering issues with some browsers. By not specifying them you reduce the size of the database record a little.',
- 'SELECTED_IMAGESET' => 'Selected imageset',
- 'SELECT_IMAGE' => 'Select image',
- 'IMAGE' => 'Image',
- 'CURRENT_IMAGE' => 'Current Image',
- 'SELECTED_IMAGE' => 'Selected Image',
- 'DIMENSIONS' => 'Include dimensions',
- 'DIMENSIONS_EXPLAIN' => 'Selecting yes here will include width/height parameters.',
- 'IMAGE_PARAMETER' => 'Parameter',
- 'IMAGE_VALUE' => 'Value',
- 'LOCALISED_IMAGES' => 'Localised',
- 'GLOBAL_IMAGES' => 'Global',
+ 'THEME_ADDED_DB' => 'New theme added to database',
+ 'THEME_ADDED' => 'New theme added on filesystem',
+ 'THEME_DETAILS_UPDATE' => 'Theme details updated',
+
+ 'THEME_EXPORT' => 'Export Theme',
+ 'THEME_EXPORT_EXPLAIN' => 'Here you can export a theme in the form of an archive. This archive will contain all the data necessary to install the theme on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
+ 'THEME_EXPORTED' => 'Theme exported succesfully and stored in %s',
+
+ 'IMAGESETS' => 'Imagesets',
+ 'IMAGESETS_EXPLAIN' => 'Imagesets comprise all the button, forum, folder, etc. and other non-style specific images used by the board. Here you can edit, export or delete existing imagesets and import or activate new sets.',
+ 'CREATE_IMAGESET' => 'Create new imageset',
+ 'INSTALLED_IMAGESET' => 'Installed imagesets',
+ 'UNINSTALLED_IMAGESET' => 'Uninstalled imagesets',
+ 'NO_UNINSTALLED_IMAGESET' => 'No uninstalled imagesets detected',
+
+ 'EDIT_IMAGESET' => 'Edit Imageset',
+ 'EDIT_IMAGESET_EXPLAIN' => 'Here you can edit the individual images which define the imageset. You can also specify dimensions for the image. Dimensions are optional, specifying them can overcome certain rendering issues with some browsers. By not specifying them you reduce the size of the database record a little.',
+ 'SELECTED_IMAGESET' => 'Selected imageset',
+ 'SELECT_IMAGE' => 'Select image',
+ 'IMAGE' => 'Image',
+ 'CURRENT_IMAGE' => 'Current Image',
+ 'SELECTED_IMAGE' => 'Selected Image',
+ 'DIMENSIONS' => 'Include dimensions',
+ 'DIMENSIONS_EXPLAIN' => 'Selecting yes here will include width/height parameters.',
+ 'IMAGE_PARAMETER' => 'Parameter',
+ 'IMAGE_VALUE' => 'Value',
+ 'LOCALISED_IMAGES' => 'Localised',
+ 'GLOBAL_IMAGES' => 'Global',
'IMG_CAT_BUTTONS' => 'Localised buttons',
- 'IMG_BTN_POST' => 'New topic',
- 'IMG_BTN_REPLY' => 'Reply topic',
- 'IMG_BTN_LOCKED' => 'Topic locked',
- 'IMG_BTN_POST_PM' => 'New message',
- 'IMG_BTN_REPLY_PM' => 'Reply message',
- 'IMG_BTN_DELETE' => 'Delete post',
- 'IMG_BTN_QUOTE' => 'Quote post',
- 'IMG_BTN_PROFILE' => 'Show profile',
- 'IMG_BTN_EMAIL' => 'Send email',
- 'IMG_BTN_SEARCH' => 'Search posts',
- 'IMG_BTN_WWW' => 'Website',
- 'IMG_BTN_IP' => 'Show IP',
- 'IMG_BTN_EDIT' => 'Edit post',
- 'IMG_BTN_AIM' => 'AIM',
- 'IMG_BTN_ICQ' => 'ICQ',
- 'IMG_BTN_JABBER' => 'Jabber',
- 'IMG_BTN_YIM' => 'YIM',
- 'IMG_BTN_MSNM' => 'MSNM',
- 'IMG_BTN_ONLINE' => 'User online',
- 'IMG_BTN_OFFLINE' => 'User offline',
- 'IMG_BTN_REPORT' => 'Report post',
- 'IMG_BTN_PM' => 'Send message',
- 'IMG_BTN_FRIEND' => 'Add as friend',
- 'IMG_BTN_FOE' => 'Add as foe',
+ 'IMG_BTN_POST' => 'New topic',
+ 'IMG_BTN_REPLY' => 'Reply topic',
+ 'IMG_BTN_LOCKED' => 'Topic locked',
+ 'IMG_BTN_POST_PM' => 'New message',
+ 'IMG_BTN_REPLY_PM' => 'Reply message',
+ 'IMG_BTN_DELETE' => 'Delete post',
+ 'IMG_BTN_QUOTE' => 'Quote post',
+ 'IMG_BTN_PROFILE' => 'Show profile',
+ 'IMG_BTN_EMAIL' => 'Send email',
+ 'IMG_BTN_SEARCH' => 'Search posts',
+ 'IMG_BTN_WWW' => 'Website',
+ 'IMG_BTN_IP' => 'Show IP',
+ 'IMG_BTN_EDIT' => 'Edit post',
+ 'IMG_BTN_AIM' => 'AIM',
+ 'IMG_BTN_ICQ' => 'ICQ',
+ 'IMG_BTN_JABBER' => 'Jabber',
+ 'IMG_BTN_YIM' => 'YIM',
+ 'IMG_BTN_MSNM' => 'MSNM',
+ 'IMG_BTN_ONLINE' => 'User online',
+ 'IMG_BTN_OFFLINE' => 'User offline',
+ 'IMG_BTN_REPORT' => 'Report post',
+ 'IMG_BTN_PM' => 'Send message',
+ 'IMG_BTN_FRIEND' => 'Add as friend',
+ 'IMG_BTN_FOE' => 'Add as foe',
'IMG_CAT_ICONS' => 'General icons',
- 'IMG_ICON_UNAPPROVED' => 'Post unapproved',
- 'IMG_ICON_REPORTED' => 'Post reported',
- 'IMG_ICON_ATTACH' => 'Attachment',
- 'IMG_ICON_POST' => 'Minipost',
- 'IMG_ICON_POST_NEW' => 'New minipost',
- 'IMG_ICON_POST_LATEST' => 'Last post',
- 'IMG_ICON_POST_NEWEST' => 'Newest post',
+ 'IMG_ICON_UNAPPROVED' => 'Post unapproved',
+ 'IMG_ICON_REPORTED' => 'Post reported',
+ 'IMG_ICON_ATTACH' => 'Attachment',
+ 'IMG_ICON_POST' => 'Minipost',
+ 'IMG_ICON_POST_NEW' => 'New minipost',
+ 'IMG_ICON_POST_LATEST' => 'Last post',
+ 'IMG_ICON_POST_NEWEST' => 'Newest post',
'IMG_CAT_FORUMS' => 'Forum icons',
- 'IMG_FORUM' => 'Forum',
- 'IMG_FORUM_NEW' => 'Forum new posts',
- 'IMG_FORUM_LOCKED' => 'Forum locked',
- 'IMG_FORUM_LINK' => 'Forum link',
+ 'IMG_FORUM' => 'Forum',
+ 'IMG_FORUM_NEW' => 'Forum new posts',
+ 'IMG_FORUM_LOCKED' => 'Forum locked',
+ 'IMG_FORUM_LINK' => 'Forum link',
'IMG_SUB_FORUM' => 'Subforum',
'IMG_SUB_FORUM_NEW' => 'Subforum new posts',
'IMG_CAT_FOLDERS' => 'Topic icons',
- 'IMG_FOLDER' => 'Topic',
+ 'IMG_FOLDER' => 'Topic',
'IMG_FOLDER_NEW' => 'Topic new posts',
- 'IMG_FOLDER_LOCKED' => 'Topic locked',
+ 'IMG_FOLDER_LOCKED' => 'Topic locked',
'IMG_FOLDER_POSTED' => 'Topic posted to',
- 'IMG_FOLDER_NEW_POSTED' => 'Topic posted to new',
- 'IMG_FOLDER_LOCKED_NEW' => 'Topic locked new',
- 'IMG_FOLDER_LOCKED_POSTED' => 'Topic locked posted to',
- 'IMG_FOLDER_LOCKED_NEW_POSTED' => 'Topic locked posted to new',
- 'IMG_FOLDER_HOT' => 'Topic hot',
- 'IMG_FOLDER_HOT_NEW' => 'Topic hot new posts',
+ 'IMG_FOLDER_NEW_POSTED' => 'Topic posted to new',
+ 'IMG_FOLDER_LOCKED_NEW' => 'Topic locked new',
+ 'IMG_FOLDER_LOCKED_POSTED' => 'Topic locked posted to',
+ 'IMG_FOLDER_LOCKED_NEW_POSTED' => 'Topic locked posted to new',
+ 'IMG_FOLDER_HOT' => 'Topic hot',
+ 'IMG_FOLDER_HOT_NEW' => 'Topic hot new posts',
'IMG_FOLDER_HOT_POSTED' => 'Topic hot posted to',
'IMG_FOLDER_HOT_NEW_POSTED' => 'Topic hot posted to new',
- 'IMG_FOLDER_STICKY' => 'Sticky topic',
- 'IMG_FOLDER_STICKY_POSTED' => 'Sticky topic posted to',
+ 'IMG_FOLDER_STICKY' => 'Sticky topic',
+ 'IMG_FOLDER_STICKY_POSTED' => 'Sticky topic posted to',
'IMG_FOLDER_STICKY_NEW' => 'Sticky topic new posts',
- 'IMG_FOLDER_STICKY_NEW_POSTED' => 'Sticky topic posted to new',
- 'IMG_FOLDER_ANNOUNCE' => 'Announcement',
- 'IMG_FOLDER_ANNOUNCE_NEW' => 'Announcement new posts',
- 'IMG_FOLDER_ANNOUNCE_POSTED' => 'Announcement posted to',
- 'IMG_FOLDER_ANNOUNCE_NEW_POSTED' => 'Announcement posted to new',
- 'IMG_FOLDER_GLOBAL' => 'Global',
- 'IMG_FOLDER_GLOBAL_NEW' => 'Global new posts',
- 'IMG_FOLDER_GLOBAL_POSTED' => 'Global posted to',
- 'IMG_FOLDER_GLOBAL_NEW_POSTED' => 'Global posted to new',
+ 'IMG_FOLDER_STICKY_NEW_POSTED' => 'Sticky topic posted to new',
+ 'IMG_FOLDER_ANNOUNCE' => 'Announcement',
+ 'IMG_FOLDER_ANNOUNCE_NEW' => 'Announcement new posts',
+ 'IMG_FOLDER_ANNOUNCE_POSTED' => 'Announcement posted to',
+ 'IMG_FOLDER_ANNOUNCE_NEW_POSTED' => 'Announcement posted to new',
+ 'IMG_FOLDER_GLOBAL' => 'Global',
+ 'IMG_FOLDER_GLOBAL_NEW' => 'Global new posts',
+ 'IMG_FOLDER_GLOBAL_POSTED' => 'Global posted to',
+ 'IMG_FOLDER_GLOBAL_NEW_POSTED' => 'Global posted to new',
'IMG_CAT_POLLS' => 'Polling images',
- 'IMG_POLL_LEFT' => 'Poll left end',
- 'IMG_POLL_RIGHT' => 'Poll right end',
- 'IMG_POLL_CENTER' => 'Poll centre',
- 'IMG_CAT_KARMA' => 'Karma images',
- 'IMG_KARMA_LEFT' => 'Karma left end',
- 'IMG_KARMA_CENTER' => 'Karma centre',
- 'IMG_KARMA_RIGHT' => 'Karma right end',
- 'IMG_CAT_CUSTOM' => 'Custom images',
- 'IMAGESET_UPDATED' => 'Imageset updated successfully',
-
- 'EDIT_DETAILS_IMAGESET' => 'Edit imageset details',
- 'EDIT_DETAILS_IMAGESET_EXPLAIN'=> 'Here you can edit certain imageset details such as its name.',
- 'ADD_IMAGESET' => 'Create Imageset',
- 'ADD_IMAGESET_EXPLAIN' => 'Here you can create a new imageset. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this imageset on an existing one. You may also be able to upload or import (from the store directory) a imageset archive. If you upload or import an archive the imageset name can be optionally taken from the archive name (to do this leave the imageset name blank).',
- 'INSTALL_IMAGESET' => 'Install Imageset',
- 'INSTALL_IMAGESET_EXPLAIN' => 'Here you can install your selected imageset. You can edit certain details if you wish or use the installation defaults.',
- 'IMAGESET_NAME' => 'Imageset Name',
- 'IMAGESET_BASIS' => 'Imageset Basis',
- 'IMAGESET_BASIS' => 'Imageset based on',
- 'IMAGESET_UPLOAD_BASIS' => 'Upload a imageset',
- 'IMAGESET_IMPORT_BASIS' => 'Import imageset from store',
-
- 'IMAGESET_EXPORT' => 'Export Imageset',
- 'IMAGESET_EXPORT_EXPLAIN' => 'Here you can export an imageset in the form of an archive. This archive will contain all the data necessary to install the set of images on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
- 'IMAGESET_EXPORTED' => 'Imageset exported succesfully and stored in %s',
- 'DELETE_IMAGESET' => 'Delete Imageset',
- 'DELETE_IMAGESET_EXPLAIN' => 'Here you can remove the selected imageset from the database. Additionally, if you have permission you can elect to remove the set from the filesystem. Please note that there is no undo capability. When the imageset is deleted it is gone for good. It is recommended that you first export your set for possible future use.',
- 'REPLACE_IMAGESET' => 'Replace imageset with',
- 'REPLACE_IMAGESET_EXPLAIN' => 'This imageset will replace the one you are deleting in any styles that use it.',
- 'IMAGESET_DELETED' => 'Imageset set deleted successfully',
- 'IMAGESET_DELETED_FS' => 'Imageset set removed from database but some files may remain on the filesystem',
+ 'IMG_POLL_LEFT' => 'Poll left end',
+ 'IMG_POLL_RIGHT' => 'Poll right end',
+ 'IMG_POLL_CENTER' => 'Poll centre',
+ 'IMG_CAT_KARMA' => 'Karma images',
+ 'IMG_KARMA_LEFT' => 'Karma left end',
+ 'IMG_KARMA_CENTER' => 'Karma centre',
+ 'IMG_KARMA_RIGHT' => 'Karma right end',
+ 'IMG_CAT_CUSTOM' => 'Custom images',
+ 'IMAGESET_UPDATED' => 'Imageset updated successfully',
+
+ 'EDIT_DETAILS_IMAGESET' => 'Edit imageset details',
+ 'EDIT_DETAILS_IMAGESET_EXPLAIN'=> 'Here you can edit certain imageset details such as its name.',
+ 'ADD_IMAGESET' => 'Create Imageset',
+ 'ADD_IMAGESET_EXPLAIN' => 'Here you can create a new imageset. Depending on your server configuration and file permissions you may have additional options here. For example you may be able to base this imageset on an existing one. You may also be able to upload or import (from the store directory) a imageset archive. If you upload or import an archive the imageset name can be optionally taken from the archive name (to do this leave the imageset name blank).',
+ 'INSTALL_IMAGESET' => 'Install Imageset',
+ 'INSTALL_IMAGESET_EXPLAIN' => 'Here you can install your selected imageset. You can edit certain details if you wish or use the installation defaults.',
+ 'IMAGESET_NAME' => 'Imageset Name',
+ 'IMAGESET_BASIS' => 'Imageset Basis',
+ 'IMAGESET_BASIS' => 'Imageset based on',
+ 'IMAGESET_UPLOAD_BASIS' => 'Upload a imageset',
+ 'IMAGESET_IMPORT_BASIS' => 'Import imageset from store',
+
+ 'IMAGESET_EXPORT' => 'Export Imageset',
+ 'IMAGESET_EXPORT_EXPLAIN' => 'Here you can export an imageset in the form of an archive. This archive will contain all the data necessary to install the set of images on another board. You may select whether to download the file directly or to place it in your store folder for download later or via FTP.',
+ 'IMAGESET_EXPORTED' => 'Imageset exported succesfully and stored in %s',
+ 'DELETE_IMAGESET' => 'Delete Imageset',
+ 'DELETE_IMAGESET_EXPLAIN' => 'Here you can remove the selected imageset from the database. Additionally, if you have permission you can elect to remove the set from the filesystem. Please note that there is no undo capability. When the imageset is deleted it is gone for good. It is recommended that you first export your set for possible future use.',
+ 'REPLACE_IMAGESET' => 'Replace imageset with',
+ 'REPLACE_IMAGESET_EXPLAIN' => 'This imageset will replace the one you are deleting in any styles that use it.',
+ 'IMAGESET_DELETED' => 'Imageset set deleted successfully',
+ 'IMAGESET_DELETED_FS' => 'Imageset set removed from database but some files may remain on the filesystem',
'ONLY_IMAGESET' => 'This is the only remaining imageset, you cannot delete it',
- 'STYLE_ERR_NOT_STYLE' => 'The imported or uploaded file did not contain a valid style archive.',
- 'STYLE_ERR_MORE_ELEMENTS' => 'You must select at least two style elements.',
- 'STYLE_ERR_STYLE_NAME' => 'You must supply a name for this style',
- 'STYLE_ERR_NAME_LONG' => 'The style name can be no longer than 30 characters',
- 'STYLE_ERR_NAME_EXIST' => 'A style with that name already exists',
- 'STYLE_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
- 'STYLE_ERR_NO_IDS' => 'You must select a template, theme and imageset for this style',
- 'STYLE_ERR_NAME_CHARS' => 'The style name can only contain alphanumeric characters, -, +, _ and space',
- 'REQUIRES_TEMPLATE' => 'This style requires the %s template set to be installed.',
- 'REQUIRES_THEME' => 'This style requires the %s theme to be installed.',
- 'REQUIRES_IMAGESET' => 'This style requires the %s imageset to be installed.',
- 'TEMPLATE_ERR_STYLE_NAME' => 'You must supply a name for this templates',
- 'TEMPLATE_ERR_NAME_CHARS' => 'The template name can only contain alphanumeric characters, -, +, _ and space',
- 'TEMPLATE_ERR_NAME_LONG' => 'The template name can be no longer than 30 characters',
- 'TEMPLATE_ERR_NAME_EXIST' => 'A template set with that name already exists',
- 'TEMPLATE_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
- 'TEMPLATE_ERR_ARCHIVE' => 'Please select an archive method',
- 'TEMPLATE_ERR_NOT_TEMPLATE' => 'The archive you specified does not contain a valid template set.',
- 'ERR_TPLCACHE_READ' => 'Cannot read the cache directory',
- 'THEME_ERR_STYLE_NAME' => 'You must supply a name for this theme',
- 'THEME_ERR_NAME_CHARS' => 'The theme name can only contain alphanumeric characters, -, +, _ and space',
- 'THEME_ERR_NAME_LONG' => 'The theme name can be no longer than 30 characters',
- 'THEME_ERR_NAME_EXIST' => 'A theme with that name already exists',
- 'THEME_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
- 'THEME_ERR_ARCHIVE' => 'Please select an archive method',
- 'THEME_ERR_NOT_THEME' => 'The archive you specified does not contain a valid theme.',
- 'THEME_ERR_CLASS_CHARS' => 'Only alphanumeric characters plus ., : and # are valid in class names.',
- 'IMAGESET_ERR_STYLE_NAME' => 'You must supply a name for this imageset',
- 'IMAGESET_ERR_NAME_CHARS' => 'The imageset name can only contain alphanumeric characters, -, +, _ and space',
- 'IMAGESET_ERR_NAME_LONG' => 'The imageset name can be no longer than 30 characters',
- 'IMAGESET_ERR_NAME_EXIST' => 'A imageset with that name already exists',
- 'IMAGESET_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
- 'IMAGESET_ERR_ARCHIVE' => 'Please select an archive method',
- 'IMAGESET_ERR_NOT_IMAGESET' => 'The archive you specified does not contain a valid imageset.',
-
- 'ARCHIVE_FORMAT' => 'Archive file type',
- 'ALLOWED_FILETYPES' => 'Allowed filetypes',
- 'SELECT_BASIS' => 'Select optional basis',
- 'TEXT_COLUMNS' => 'Columns',
- 'TEXT_ROWS' => 'Rows',
- 'COPYRIGHT' => 'Copyright',
- 'CACHE' => 'Cache',
- 'EXPORT' => 'Export',
- 'DETAILS' => 'Details',
- 'REFRESH' => 'Refresh',
- 'STORE_DATABASE' => 'Database',
- 'STORE_FILESYSTEM' => 'Filesystem',
- 'DELETE_FROM_FS' => 'Delete from filesystem',
- 'INSTALL' => 'Install',
+ 'STYLE_ERR_NOT_STYLE' => 'The imported or uploaded file did not contain a valid style archive.',
+ 'STYLE_ERR_MORE_ELEMENTS' => 'You must select at least two style elements.',
+ 'STYLE_ERR_STYLE_NAME' => 'You must supply a name for this style',
+ 'STYLE_ERR_NAME_LONG' => 'The style name can be no longer than 30 characters',
+ 'STYLE_ERR_NAME_EXIST' => 'A style with that name already exists',
+ 'STYLE_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
+ 'STYLE_ERR_NO_IDS' => 'You must select a template, theme and imageset for this style',
+ 'STYLE_ERR_NAME_CHARS' => 'The style name can only contain alphanumeric characters, -, +, _ and space',
+ 'REQUIRES_TEMPLATE' => 'This style requires the %s template set to be installed.',
+ 'REQUIRES_THEME' => 'This style requires the %s theme to be installed.',
+ 'REQUIRES_IMAGESET' => 'This style requires the %s imageset to be installed.',
+ 'TEMPLATE_ERR_STYLE_NAME' => 'You must supply a name for this templates',
+ 'TEMPLATE_ERR_NAME_CHARS' => 'The template name can only contain alphanumeric characters, -, +, _ and space',
+ 'TEMPLATE_ERR_NAME_LONG' => 'The template name can be no longer than 30 characters',
+ 'TEMPLATE_ERR_NAME_EXIST' => 'A template set with that name already exists',
+ 'TEMPLATE_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
+ 'TEMPLATE_ERR_ARCHIVE' => 'Please select an archive method',
+ 'TEMPLATE_ERR_NOT_TEMPLATE' => 'The archive you specified does not contain a valid template set.',
+ 'ERR_TPLCACHE_READ' => 'Cannot read the cache directory',
+ 'THEME_ERR_STYLE_NAME' => 'You must supply a name for this theme',
+ 'THEME_ERR_NAME_CHARS' => 'The theme name can only contain alphanumeric characters, -, +, _ and space',
+ 'THEME_ERR_NAME_LONG' => 'The theme name can be no longer than 30 characters',
+ 'THEME_ERR_NAME_EXIST' => 'A theme with that name already exists',
+ 'THEME_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
+ 'THEME_ERR_ARCHIVE' => 'Please select an archive method',
+ 'THEME_ERR_NOT_THEME' => 'The archive you specified does not contain a valid theme.',
+ 'THEME_ERR_CLASS_CHARS' => 'Only alphanumeric characters plus ., : and # are valid in class names.',
+ 'IMAGESET_ERR_STYLE_NAME' => 'You must supply a name for this imageset',
+ 'IMAGESET_ERR_NAME_CHARS' => 'The imageset name can only contain alphanumeric characters, -, +, _ and space',
+ 'IMAGESET_ERR_NAME_LONG' => 'The imageset name can be no longer than 30 characters',
+ 'IMAGESET_ERR_NAME_EXIST' => 'A imageset with that name already exists',
+ 'IMAGESET_ERR_COPY_LONG' => 'The copyright can be no longer than 60 characters',
+ 'IMAGESET_ERR_ARCHIVE' => 'Please select an archive method',
+ 'IMAGESET_ERR_NOT_IMAGESET' => 'The archive you specified does not contain a valid imageset.',
+
+ 'ARCHIVE_FORMAT' => 'Archive file type',
+ 'ALLOWED_FILETYPES' => 'Allowed filetypes',
+ 'SELECT_BASIS' => 'Select optional basis',
+ 'TEXT_COLUMNS' => 'Columns',
+ 'TEXT_ROWS' => 'Rows',
+ 'COPYRIGHT' => 'Copyright',
+ 'CACHE' => 'Cache',
+ 'EXPORT' => 'Export',
+ 'DETAILS' => 'Details',
+ 'REFRESH' => 'Refresh',
+ 'STORE_DATABASE' => 'Database',
+ 'STORE_FILESYSTEM' => 'Filesystem',
+ 'DELETE_FROM_FS' => 'Delete from filesystem',
+ 'INSTALL' => 'Install',
'FROM' => 'from', // "Create new style .... from ..."
- 'OPTIONAL_BASIS' => 'Optional basis',
- 'NO_IMAGESET' => 'Cannot find imageset on filesystem',
- 'NO_THEME' => 'Cannot find theme on filesystem',
- 'NO_TEMPLATE' => 'Cannot find template on filesystem',
- 'NO_STYLE' => 'Cannot find style on filesystem',
+ 'OPTIONAL_BASIS' => 'Optional basis',
+ 'NO_IMAGESET' => 'Cannot find imageset on filesystem',
+ 'NO_THEME' => 'Cannot find theme on filesystem',
+ 'NO_TEMPLATE' => 'Cannot find template on filesystem',
+ 'NO_STYLE' => 'Cannot find style on filesystem',
'NO_BASIS' => 'Do not use basis',
- 'NO_IMPORT' => 'Do not import',
- 'UPLOAD_WRONG_TYPE' => 'Only the following filetypes are accepted: %s',
+ 'NO_IMPORT' => 'Do not import',
+ 'UPLOAD_WRONG_TYPE' => 'Only the following filetypes are accepted: %s',
);
// Search indexing
@@ -1739,7 +1741,7 @@ $lang += array(
'SEARCH_INDEX_CANCEL' => 'Re-indexing of search system has been cancelled. Please note this will result in searches returning incomplete results. You can re-index the posts again at any stage.',
'SEARCH_INDEXING_COMPLETE' => 'Re-indexing of search system has been completed. You can re-index the posts again at any stage.',
'START' => 'Start',
- 'STOP' => 'Stop',
+ 'STOP' => 'Stop',
);
// Admin logs
@@ -1789,7 +1791,7 @@ $lang += array(
'MAX_IMAGE_SIZE_EXPLAIN' => 'Maximum size of image attachments, 0px by 0px disables image attachments.',
'IMAGE_LINK_SIZE' => 'Image Link Dimensions',
'IMAGE_LINK_SIZE_EXPLAIN' => 'Display image attachment as link if image is larger than this, set to 0px by 0px to disable.',
-
+
'NO_UPLOAD_DIR' => 'The upload directory you specified does not exist.',
'UPLOAD_NOT_DIR' => 'The upload location you specified does not appear to be a directory.',
'NO_WRITE_UPLOAD' => 'The upload directory you specified cannot be written to. Please alter the permissions to allow the webserver to write to it.',
@@ -1876,50 +1878,50 @@ $lang += array(
$lang += array(
'WELCOME_INSTALL' => 'Welcome to phpBB 2 Installation',
- 'INSTALL_REQUIRED' => 'Required',
- 'INSTALL_OPTIONAL' => 'Optional',
- 'UNAVAILABLE' => 'Unavailable',
- 'AVAILABLE' => 'Available',
- 'TESTS_PASSED' => 'Tests passed',
- 'TESTS_FAILED' => 'Tests failed',
-
- 'INSTALL_ADVICE' => 'Installation Compatibility',
- 'INSTALL_ADVICE_EXPLAIN'=> 'Before proceeding with full installation phpBB will carry out some tests on your server and basic install. Please ensure you read through the results thoroughly and do not proceed until all tests are passed.',
- 'PHP_AND_APPS' => 'PHP and Applications',
- 'INSTALL_REQUIRED_PHP' => 'You must be running at least PHP 4.1.0 with support for at least one compatible database. If no support modules are shown as available you should contact your hosting provider or review the relevant PHP installation documentation for advice. If "safe mode" is displayed below your PHP installation is running in that mode. This will impose limitations on remote administration and similar features.',
- 'INSTALL_OPTIONAL_PHP' => 'These modules or applications are optional, you do not need these to use phpBB 2.2. However if you do have them they will will enable greater functionality.',
+ 'INSTALL_REQUIRED' => 'Required',
+ 'INSTALL_OPTIONAL' => 'Optional',
+ 'UNAVAILABLE' => 'Unavailable',
+ 'AVAILABLE' => 'Available',
+ 'TESTS_PASSED' => 'Tests passed',
+ 'TESTS_FAILED' => 'Tests failed',
+
+ 'INSTALL_ADVICE' => 'Installation Compatibility',
+ 'INSTALL_ADVICE_EXPLAIN'=> 'Before proceeding with full installation phpBB will carry out some tests on your server and basic install. Please ensure you read through the results thoroughly and do not proceed until all tests are passed.',
+ 'PHP_AND_APPS' => 'PHP and Applications',
+ 'INSTALL_REQUIRED_PHP' => 'You must be running at least PHP 4.1.0 with support for at least one compatible database. If no support modules are shown as available you should contact your hosting provider or review the relevant PHP installation documentation for advice. If "safe mode" is displayed below your PHP installation is running in that mode. This will impose limitations on remote administration and similar features.',
+ 'INSTALL_OPTIONAL_PHP' => 'These modules or applications are optional, you do not need these to use phpBB 2.2. However if you do have them they will will enable greater functionality.',
'PHP_VERSION_REQD' => 'PHP version >= 4.1.0',
- 'PHP_SAFE_MODE' => 'Safe Mode',
- 'PHP_REQD_DB' => 'Supported Databases',
+ 'PHP_SAFE_MODE' => 'Safe Mode',
+ 'PHP_REQD_DB' => 'Supported Databases',
'DLL_FIREBIRD' => 'Firebird 1.5+',
'DLL_MYSQL' => 'MySQL 3.23.x/4.x',
'DLL_MYSQL4' => 'MySQL 4.1+',
'DLL_MSSQL' => 'MSSQL Server 2000',
'DLL_MSSQL-ODBC' => 'MSSQL Server 2000 via ODBC',
- 'DLL_MSACCESS' => 'MS Access via ODBC',
+ 'DLL_MSACCESS' => 'MS Access via ODBC',
'DLL_ORACLE' => 'Oracle',
- 'DLL_POSTGRES' => 'PostgreSQL 7.x',
- 'DLL_SQLITE' => 'SQLite',
- 'DLL_MBSTRING' => 'Multi-byte character support',
- 'DLL_ZLIB' => 'zlib Compression support [ Visual confirmation, gz, .tar.gz, .zip ]',
+ 'DLL_POSTGRES' => 'PostgreSQL 7.x',
+ 'DLL_SQLITE' => 'SQLite',
+ 'DLL_MBSTRING' => 'Multi-byte character support',
+ 'DLL_ZLIB' => 'zlib Compression support [ Visual confirmation, gz, .tar.gz, .zip ]',
'DLL_FTP' => 'Remote FTP support [ Installation ]',
- 'DLL_XML' => 'XML support [ Jabber ]',
- 'DLL_MHASH' => 'Mhash hashing support [ Jabber ]',
- 'APP_MAGICK' => 'Imagemagick support [ Attachments ]',
- 'NO_LOCATION' => 'Cannot determine location',
- 'DIRECTORIES_AND_FILES' => 'Directory and file setup',
- 'INSTALL_REQUIRED_FILES' => 'In order to function correctly phpBB needs to be able to access or write to certain files or directories. If you see "Not Found" you need to create the relevant file or directory. If you see "Unwriteable" you need to change the permissions on the file or directory to allow phpBB to write to it.',
- 'INSTALL_OPTIONAL_FILES' => 'These files, directories or permissions are optional. The installation routines will attempt to use various techniques to complete if they do not exist or cannot be written to. However, the presence of these files, directories or permissions will speed installation.',
- 'FILE_FOUND' => 'Found',
- 'FILE_NOT_FOUND' => 'Cannot find',
- 'FILE_WRITEABLE' => 'Writeable',
- 'FILE_UNWRITEABLE' => 'Unwriteable',
- 'INSTALL_NEXT' => 'Next stage',
- 'INSTALL_NEXT_PASS' => 'All the basic tests have been passed and you may proceed to the next stage of installation. If you have changed any permissions, modules, etc. and wish to re-test you can do so if you wish.',
- 'INSTALL_NEXT_FAIL' => 'Some tests failed and you should correct these problems before proceeding to the next stage. Failure to do so may result in an incomplete installation.',
+ 'DLL_XML' => 'XML support [ Jabber ]',
+ 'DLL_MHASH' => 'Mhash hashing support [ Jabber ]',
+ 'APP_MAGICK' => 'Imagemagick support [ Attachments ]',
+ 'NO_LOCATION' => 'Cannot determine location',
+ 'DIRECTORIES_AND_FILES' => 'Directory and file setup',
+ 'INSTALL_REQUIRED_FILES' => 'In order to function correctly phpBB needs to be able to access or write to certain files or directories. If you see "Not Found" you need to create the relevant file or directory. If you see "Unwriteable" you need to change the permissions on the file or directory to allow phpBB to write to it.',
+ 'INSTALL_OPTIONAL_FILES' => 'These files, directories or permissions are optional. The installation routines will attempt to use various techniques to complete if they do not exist or cannot be written to. However, the presence of these files, directories or permissions will speed installation.',
+ 'FILE_FOUND' => 'Found',
+ 'FILE_NOT_FOUND' => 'Cannot find',
+ 'FILE_WRITEABLE' => 'Writeable',
+ 'FILE_UNWRITEABLE' => 'Unwriteable',
+ 'INSTALL_NEXT' => 'Next stage',
+ 'INSTALL_NEXT_PASS' => 'All the basic tests have been passed and you may proceed to the next stage of installation. If you have changed any permissions, modules, etc. and wish to re-test you can do so if you wish.',
+ 'INSTALL_NEXT_FAIL' => 'Some tests failed and you should correct these problems before proceeding to the next stage. Failure to do so may result in an incomplete installation.',
'INITIAL_CONFIG' => 'Basic Configuration',
- 'INITIAL_CONFIG_EXPLAIN'=> 'Now that install has determined your server can run phpBB you need to supply some specific information. If you do not know how to connect to your database please contact your hosting provider (in the first instance) or use the phpBB support forums. When entering data please ensure you check it thoroughly before continuing.',
+ 'INITIAL_CONFIG_EXPLAIN'=> 'Now that install has determined your server can run phpBB you need to supply some specific information. If you do not know how to connect to your database please contact your hosting provider (in the first instance) or use the phpBB support forums. When entering data please ensure you check it thoroughly before continuing.',
'ADMIN_CONFIG' => 'Admin Configuration',
'DEFAULT_LANG' => 'Default board language',
'ADMIN_USERNAME' => 'Administrator username',
@@ -1927,97 +1929,97 @@ $lang += array(
'CONTACT_EMAIL_CONFIRM' => 'Confirm contact email',
'ADMIN_PASSWORD' => 'Administrator password',
'ADMIN_PASSWORD_CONFIRM'=> 'Confirm administrator password',
- 'DB_CONFIG' => 'Database Configuration',
+ 'DB_CONFIG' => 'Database Configuration',
'DBMS' => 'Database type',
'DB_HOST' => 'Database server hostname or DSN',
- 'DB_HOST_EXPLAIN' => 'DSN stands for Data Source Name and is relevant only for ODBC installs.',
- 'DB_PORT' => 'Database server port',
- 'DB_PORT_EXPLAIN' => 'Leave this blank unless you know the server operates on a non-standard port.',
+ 'DB_HOST_EXPLAIN' => 'DSN stands for Data Source Name and is relevant only for ODBC installs.',
+ 'DB_PORT' => 'Database server port',
+ 'DB_PORT_EXPLAIN' => 'Leave this blank unless you know the server operates on a non-standard port.',
'DB_NAME' => 'Database name',
'DB_USERNAME' => 'Database username',
'DB_PASSWORD' => 'Database password',
- 'TABLE_PREFIX' => 'Prefix for tables in database',
- 'DB_TEST' => 'Test Connection',
- 'INSTALL_DB_CONNECT'=> 'Successfull Connection',
- 'SERVER_CONFIG' => 'Server Configuration',
+ 'TABLE_PREFIX' => 'Prefix for tables in database',
+ 'DB_TEST' => 'Test Connection',
+ 'INSTALL_DB_CONNECT'=> 'Successfull Connection',
+ 'SERVER_CONFIG' => 'Server Configuration',
'SERVER_NAME' => 'Domain name',
'SERVER_NAME_EXPLAIN' => 'The domain name this board runs from',
'SCRIPT_PATH' => 'Script path',
'SCRIPT_PATH_EXPLAIN' => 'The path where phpBB2 is located relative to the domain name',
'SERVER_PORT' => 'Server port',
'SERVER_PORT_EXPLAIN' => 'The port your server is running on, usually 80, only change if different',
- 'CACHE_STORE' => 'Cache type',
- 'CACHE_STORE_EXPLAIN' => 'The physical location where data is cached, filesystem is prefered.',
- 'INSTALL_TEST' => 'Test Again',
- 'INSTALL_NEXT' => 'Next Stage',
- 'INSTALL_START' => 'Start Install',
-
- 'INSTALL_SEND_CONFIG' => 'Unfortunately phpBB could not write the configuration information directly to your config.php. This may be because the file does not exist or is not writeable. A number of options will be listed below enabling you to complete installation of config.php.',
- 'FTP_CONFIG' => 'Transfer config by FTP',
- 'FTP_CONFIG_EXPLAIN'=> 'phpBB has detected the presence of the ftp module on this server. You may attempt to install your config.php via this if you wish. You will need to supply the information listed below. Remember your username and password are those to your server! (ask your hosting provider for details if you are unsure what these are)',
+ 'CACHE_STORE' => 'Cache type',
+ 'CACHE_STORE_EXPLAIN' => 'The physical location where data is cached, filesystem is prefered.',
+ 'INSTALL_TEST' => 'Test Again',
+ 'INSTALL_NEXT' => 'Next Stage',
+ 'INSTALL_START' => 'Start Install',
+
+ 'INSTALL_SEND_CONFIG' => 'Unfortunately phpBB could not write the configuration information directly to your config.php. This may be because the file does not exist or is not writeable. A number of options will be listed below enabling you to complete installation of config.php.',
+ 'FTP_CONFIG' => 'Transfer config by FTP',
+ 'FTP_CONFIG_EXPLAIN'=> 'phpBB has detected the presence of the ftp module on this server. You may attempt to install your config.php via this if you wish. You will need to supply the information listed below. Remember your username and password are those to your server! (ask your hosting provider for details if you are unsure what these are)',
'FTP_PATH' => 'FTP Path',
'FTP_PATH_EXPLAIN' => 'This is the path from your root directory to that of phpBB2, e.g. htdocs/phpBB2/',
'FTP_USERNAME' => 'FTP Username',
'FTP_PASSWORD' => 'FTP Password',
- 'FTP_UPLOAD' => 'Upload',
- 'DL_CONFIG' => 'Download config',
- 'DL_CONFIG_EXPLAIN' => 'You may download the complete config.php to your own PC. You will then need to upload the file manually, replacing any existing config.php in your phpBB 2.2 root directory. Please remember to upload the file in ASCII format (see your FTP application documentation if you are unsure how to achieve this). When you have uploaded the config.php please click "Done" to move to the next stage.',
- 'DL_DOWNLOAD' => 'Download',
- 'DL_DONE' => 'Done',
- 'RETRY_WRITE' => 'Retry writing config',
- 'RETRY_WRITE_EXPLAIN' => 'If you wish you can change the permissions on config.php to allow phpBB to write to it. Should you wish to do that you can click Retry below to try again. Remember to return the permissions on config.php after phpBB2 has finished installation.',
- 'CONFIG_RETRY' => 'Retry',
+ 'FTP_UPLOAD' => 'Upload',
+ 'DL_CONFIG' => 'Download config',
+ 'DL_CONFIG_EXPLAIN' => 'You may download the complete config.php to your own PC. You will then need to upload the file manually, replacing any existing config.php in your phpBB 2.2 root directory. Please remember to upload the file in ASCII format (see your FTP application documentation if you are unsure how to achieve this). When you have uploaded the config.php please click "Done" to move to the next stage.',
+ 'DL_DOWNLOAD' => 'Download',
+ 'DL_DONE' => 'Done',
+ 'RETRY_WRITE' => 'Retry writing config',
+ 'RETRY_WRITE_EXPLAIN' => 'If you wish you can change the permissions on config.php to allow phpBB to write to it. Should you wish to do that you can click Retry below to try again. Remember to return the permissions on config.php after phpBB2 has finished installation.',
+ 'CONFIG_RETRY' => 'Retry',
'INSTALL_CONGRATS' => 'Congratulations',
'INSTALL_CONGRATS_EXPLAIN' => 'You have now successfully installed phpBB 2.2. Clicking the button below will take you to your Administration Control Panel (ACP). Take some time to examine the options available to you. Remember that help is available online via the Userguide and the phpBB support forums, see the %sREADME%s for further information.',
'INSTALL_LOGIN' => 'Login',
- 'INST_ERR_FATAL' => 'Fatal installation error',
- 'INST_ERR_MISSING_DATA' => 'You must fill out all fields in this block',
+ 'INST_ERR_FATAL' => 'Fatal installation error',
+ 'INST_ERR_MISSING_DATA' => 'You must fill out all fields in this block',
'INST_ERR_NO_DB' => 'Cannot load the PHP module for the selected database type',
'INST_ERR_EMAIL_MISMATCH' => 'The emails you entered did not match.',
- 'INST_ERR_PASSWORD_MISMATCH'=> 'The passwords you entered did not match.',
- 'INST_ERR_DB_CONNECT' => 'Could not connect to the database, see error message below',
- 'INST_ERR_DB_NO_ERROR' => 'No error message given',
- 'INST_ERR_PREFIX' => 'Tables with the specified prefix already exist, please choose an alternative.',
- 'INST_ERR_FATAL_DB' => 'A fatal and unrecoverable database error has occured. This may be because the specified user does not have appropriate rights to CREATE TABLES or INSERT data, etc. Further information may be given below. Please contact your hosting provider in the first instance or the support forums of phpBB for further assistance.',
- 'INST_ERR_FTP_PATH' => 'Could not change to the given directory, please check the path.',
- 'INST_ERR_FTP_LOGIN' => 'Could not login to ftp server, check your username and password',
+ 'INST_ERR_PASSWORD_MISMATCH'=> 'The passwords you entered did not match.',
+ 'INST_ERR_DB_CONNECT' => 'Could not connect to the database, see error message below',
+ 'INST_ERR_DB_NO_ERROR' => 'No error message given',
+ 'INST_ERR_PREFIX' => 'Tables with the specified prefix already exist, please choose an alternative.',
+ 'INST_ERR_FATAL_DB' => 'A fatal and unrecoverable database error has occured. This may be because the specified user does not have appropriate rights to CREATE TABLES or INSERT data, etc. Further information may be given below. Please contact your hosting provider in the first instance or the support forums of phpBB for further assistance.',
+ 'INST_ERR_FTP_PATH' => 'Could not change to the given directory, please check the path.',
+ 'INST_ERR_FTP_LOGIN' => 'Could not login to ftp server, check your username and password',
);
// Bots
$lang += array(
'BOTS_EXPLAIN' => 'Bots or crawlers are automated agents most commonly used by search engines to update their databases. Since they rarely make proper use of sessions they can distort visitor counts, increase load and sometimes fail to index sites correctly. Here you can define a special type of user to overcome these problems.',
-
+
'BOT_NAME' => 'Bot name',
- 'BOT_LAST_VISIT' => 'Last visit',
- 'BOT_NEVER' => 'Never',
- 'BOT_ACTIVATE' => 'Activate',
- 'BOT_DEACTIVATE' => 'Deactivate',
+ 'BOT_LAST_VISIT' => 'Last visit',
+ 'BOT_NEVER' => 'Never',
+ 'BOT_ACTIVATE' => 'Activate',
+ 'BOT_DEACTIVATE' => 'Deactivate',
'BOT_ADD' => 'Add bot',
- 'BOT_EDIT' => 'Edit bots',
- 'BOT_EDIT_EXPLAIN' => 'Here you can add or edit an existing bot entry. You may define an agent string and/or one or more IP addresses (or range of addresses) to match. Be careful when defining matching agent strings or addresses. You may also specify a style and language that the bot will view the board using. This may allow you to reduce bandwidth use by setting a simple style for bots. Remember to set appropriate permissions for the special Bot usergroup.',
+ 'BOT_EDIT' => 'Edit bots',
+ 'BOT_EDIT_EXPLAIN' => 'Here you can add or edit an existing bot entry. You may define an agent string and/or one or more IP addresses (or range of addresses) to match. Be careful when defining matching agent strings or addresses. You may also specify a style and language that the bot will view the board using. This may allow you to reduce bandwidth use by setting a simple style for bots. Remember to set appropriate permissions for the special Bot usergroup.',
'BOT_NAME_EXPLAIN' => 'Used only for your own information.',
- 'BOT_LANG' => 'Bot language',
- 'BOT_LANG_EXPLAIN' => 'The language presented to the bot as it browses.',
- 'BOT_STYLE' => 'Bot style',
- 'BOT_STYLE_EXPLAIN' => 'The style used for the board by the bot.',
- 'BOT_VIS' => 'Bot visible',
- 'BOT_VIS_EXPLAIN' => 'Allow bot to be seen by all users in online lists.',
- 'BOT_ACTIVE' => 'Bot active',
- 'BOT_AGENT' => 'Agent match',
- 'BOT_AGENT_EXPLAIN' => 'A string matching the bots browser agent, partial matches are allowed.',
+ 'BOT_LANG' => 'Bot language',
+ 'BOT_LANG_EXPLAIN' => 'The language presented to the bot as it browses.',
+ 'BOT_STYLE' => 'Bot style',
+ 'BOT_STYLE_EXPLAIN' => 'The style used for the board by the bot.',
+ 'BOT_VIS' => 'Bot visible',
+ 'BOT_VIS_EXPLAIN' => 'Allow bot to be seen by all users in online lists.',
+ 'BOT_ACTIVE' => 'Bot active',
+ 'BOT_AGENT' => 'Agent match',
+ 'BOT_AGENT_EXPLAIN' => 'A string matching the bots browser agent, partial matches are allowed.',
'BOT_IP' => 'Bot IP address',
'BOT_IP_EXPLAIN' => 'Partial matches are allowed, seperate addresses with an apostrophe. A single hostname may be entered instead of an IP.',
- 'BOT_ADDED' => 'New bot successfully added',
- 'BOT_UPDATED' => 'Existing bot updated successfully',
- 'BOT_DELETED' => 'Bot deleted successfully',
+ 'BOT_ADDED' => 'New bot successfully added',
+ 'BOT_UPDATED' => 'Existing bot updated successfully',
+ 'BOT_DELETED' => 'Bot deleted successfully',
- 'NO_BOT' => 'Found no bot with the specified ID',
- 'ERR_BOT_NO_MATCHES' => 'You must supply at least one of an agent or IP for this bot match.',
- 'ERR_BOT_NO_IP' => 'The IP addresses you supplied were invalid or the hostname could not be resolved.',
+ 'NO_BOT' => 'Found no bot with the specified ID',
+ 'ERR_BOT_NO_MATCHES' => 'You must supply at least one of an agent or IP for this bot match.',
+ 'ERR_BOT_NO_IP' => 'The IP addresses you supplied were invalid or the hostname could not be resolved.',
);
// Custom profile fields
@@ -2067,10 +2069,10 @@ $lang += array(
'PROFILE_FIELD_ACTIVATED' => 'Profile field successfully activated',
'PROFILE_FIELD_DEACTIVATED' => 'Profile field successfully deactivated',
- 'CHARS_ANY' => 'Any character',
+ 'CHARS_ANY' => 'Any character',
'NUMBERS_ONLY' => 'Only numbers (0-9)',
- 'ALPHA_ONLY' => 'Alphanumeric only',
- 'ALPHA_SPACERS' => 'Alphanumeric and spacers',
+ 'ALPHA_ONLY' => 'Alphanumeric only',
+ 'ALPHA_SPACERS' => 'Alphanumeric and spacers',
'FIELD_TYPE' => 'Field Type',
'FIELD_TYPE_EXPLAIN' => 'You are not able to change the field type later.',
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 3345bd7af0..1bdbe5ebbe 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -32,7 +32,7 @@ $lang += array(
'DIRECTION' => 'ltr',
'LEFT' => 'left',
'RIGHT' => 'right',
- 'DATE_FORMAT' => 'd M Y',
+ 'DATE_FORMAT' => '|d M Y|',
'1_DAY' => '1 Day',
@@ -415,6 +415,9 @@ $lang += array(
'YOU_NO_NEW_PM' => 'No new private messages are waiting for you',
'datetime' => array(
+ 'TODAY' => 'Today, ',
+ 'YESTERDAY' => 'Yesterday, ',
+
'Sunday' => 'Sunday',
'Monday' => 'Monday',
'Tuesday' => 'Tuesday',
diff --git a/phpBB/language/en/gcp.php b/phpBB/language/en/groups.php
index f5ff081f5c..0186ce0ad1 100644
--- a/phpBB/language/en/gcp.php
+++ b/phpBB/language/en/groups.php
@@ -28,17 +28,23 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang += array(
+ 'GROUP_AVATAR' => 'Group avatar',
'GROUP_CLOSED' => 'Closed',
'GROUP_DESC' => 'Group description',
'GROUP_HIDDEN' => 'Hidden',
+ 'GROUP_INFORMATION' => 'Usergroup Information',
'GROUP_MEMBERS' => 'Group members',
'GROUP_NAME' => 'Group name',
'GROUP_OPEN' => 'Open',
+ 'GROUP_RANK' => 'Group rank',
'GROUP_TYPE' => 'Group type',
+ 'GROUP_IS_CLOSED' => 'This is a closed group, new members cannot automatically join.',
+ 'GROUP_IS_OPEN' => 'This is an open group, members can apply to join.',
+ 'GROUP_IS_HIDDEN' => 'This is a hidden group, only members of this group can view its membership.',
+ 'GROUP_IS_FREE' => 'This is a freely open group, all new members are welcome.',
+ 'GROUP_IS_SPECIAL' => 'This is a special group, special groups are managed by the board administrators.',
- 'No_groups_exist' => 'No Groups Exist',
-
- 'REMOVE_SELECTED' => 'Remove selected'
+ 'REMOVE_SELECTED' => 'Remove selected',
);
?> \ No newline at end of file
diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php
index dd7bd8a8bd..a81c52248a 100644
--- a/phpBB/language/en/ucp.php
+++ b/phpBB/language/en/ucp.php
@@ -362,8 +362,27 @@ $lang += array(
'REPORTED' => 'Reported',
'TO_GROUP' => 'Usergroup',
'TO_ME' => 'Me'
- )
+ ),
+
+
+ 'UCP_GROUPS_MEMBERSHIP' => 'Memberships',
+ 'UCP_GROUPS_MANAGE' => 'Manage groups',
+ 'GROUPS_EXPLAIN' => 'Usergroups enable board admins to better administer users. By default you will be placed in a specific group, this is your default group. This group defines how you may appear to other users, for example your username colouration, avatar, rank, etc. Depending on whether the administrator allows it you may be allowed to change your default group. You may also be placed in or allowed to join other groups. Some groups may give you extra rights to view content or increase your capabilities in other areas.',
+ 'GROUP_LEADER' => 'Leaderships',
+ 'GROUP_MEMBER' => 'Memberships',
+ 'GROUP_PENDING' => 'Pending memberships',
+ 'GROUP_NONMEMBER' => 'Non-memberships',
+ 'GROUP_DETAILS' => 'Group details',
+
+ 'NO_LEADER' => 'No group leaderships',
+ 'NO_MEMBER' => 'No group memberships',
+ 'NO_PENDING' => 'No pending memberships',
+ 'NO_NONMEMBER' => 'No non-member groups',
+ 'QUIT_ALL' => 'Quit all',
+ 'QUIT_MARKED' => 'Quit marked',
+ 'JOIN_ALL' => 'Join all',
+ 'JOIN_MARKED' => 'Join marked',
);
?> \ No newline at end of file
diff --git a/phpBB/mcp.php b/phpBB/mcp.php
index 86e658b526..30cc361536 100644
--- a/phpBB/mcp.php
+++ b/phpBB/mcp.php
@@ -3,12 +3,12 @@
//
// $Id$
//
-// FILENAME : mcp.php
+// FILENAME : mcp.php
// STARTED : Mon May 5, 2003
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
define('IN_PHPBB', true);
@@ -103,7 +103,7 @@ class module
$module_lang = strtoupper($module_type) . '_' . $row['module_title'];
$template->assign_block_vars($module_type . '_section', array(
'L_TITLE' => (isset($user->lang[$module_lang])) ? $user->lang[$module_lang] : ucfirst(str_replace('_', ' ', strtolower($row['module_title']))),
- 'S_SELECTED' => $selected,
+ 'S_SELECTED' => $selected,
'U_TITLE' => $module_url . '&amp;i=' . $row['module_id'])
);
@@ -143,17 +143,17 @@ class module
}
// Only show those rows we are able to access
- if (($submodule_title == 'post_details' && !$post_id) ||
+ if (($submodule_title == 'post_details' && !$post_id) ||
($submodule_title == 'topic_view' && !$topic_id) ||
($submodule_title == 'forum_view' && !$forum_id))
{
continue;
}
-
+
$suffix = ($post_id) ? "&amp;p=$post_id" : '';
$suffix .= ($topic_id) ? "&amp;t=$topic_id" : '';
$suffix .= ($forum_id) ? "&amp;f=$forum_id" : '';
-
+
$selected = ($submodule_title == $selected_submod || (!$selected_submod && !$j)) ? true : false;
// Get the localised lang string if available, or make up our own otherwise
@@ -279,7 +279,7 @@ class module
case 'unapproved_posts':
$sql = 'SELECT COUNT(*) AS total
- FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
+ FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
WHERE p.forum_id IN (' . implode(', ', $forum_list) . ')
AND p.post_approved = 0
AND t.topic_id = p.topic_id
@@ -356,7 +356,7 @@ if ($mode == 'approve' || $mode == 'disapprove')
// Only Moderators can go beyond this point
if ($user->data['user_id'] == ANONYMOUS)
{
- login_box("{$phpbb_root_path}mcp.$phpEx$SID&amp;mode=$mode&amp;i=$module", '', $user->lang['LOGIN_EXPLAIN_MCP']);
+ login_box('', $user->lang['LOGIN_EXPLAIN_MCP']);
if ($user->data['user_id'] == ANONYMOUS)
{
@@ -442,7 +442,7 @@ switch ($mode)
function get_array($var, $default_value)
{
$ids = request_var($var, $default_value);
-
+
if (!is_array($ids))
{
if (!$ids)
@@ -502,7 +502,7 @@ function get_topic_data($topic_ids, $acl_list = false)
LEFT JOIN ' . FORUMS_TABLE . ' f ON t.forum_id = f.forum_id
WHERE t.topic_id IN (' . implode(', ', $topic_ids) . ')';
$result = $db->sql_query($sql);
-
+
while ($row = $db->sql_fetchrow($result))
{
if ($acl_list && !$auth->acl_get($acl_list, $row['forum_id']))
@@ -529,7 +529,7 @@ function get_post_data($post_ids, $acl_list = false)
AND u.user_id = p.poster_id
AND t.topic_id = p.topic_id';
$result = $db->sql_query($sql);
-
+
while ($row = $db->sql_fetchrow($result))
{
if ($acl_list && !$auth->acl_get($acl_list, $row['forum_id']))
@@ -558,7 +558,7 @@ function get_forum_data($forum_id, $acl_list = 'f_list')
FROM ' . FORUMS_TABLE . '
WHERE forum_id ' . ((is_array($forum_id)) ? 'IN (' . implode(', ', $forum_id) . ')' : "= $forum_id");
$result = $db->sql_query($sql);
-
+
while ($row = $db->sql_fetchrow($result))
{
if ($acl_list && !$auth->acl_get($acl_list, $row['forum_id']))
@@ -669,7 +669,7 @@ function mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by_sql,
$sql = 'SELECT COUNT(log_id) AS total
FROM ' . LOG_TABLE . "
$where_sql forum_id IN (" . (($forum_id) ? $forum_id : implode(', ', get_forum_list('m_'))) . ')
- AND log_time >= ' . $min_time . '
+ AND log_time >= ' . $min_time . '
AND log_type = ' . LOG_MOD;
break;
}
diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php
index 17efc5757e..67ba4fed46 100644
--- a/phpBB/memberlist.php
+++ b/phpBB/memberlist.php
@@ -3,20 +3,17 @@
//
// $Id$
//
-// FILENAME : memberlist.php
+// FILENAME : memberlist.php
// STARTED : Sat Feb 13, 2001
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
// TODO
// Add permission check for IM clients
-// Combine Jabber and email contact capabilities?
-// When registering a new jabber user the message doesn't get sent first time
-define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx);
@@ -24,12 +21,13 @@ include($phpbb_root_path . 'common.'.$phpEx);
// Start session management
$user->start();
$auth->acl($user->data);
-$user->setup('memberlist');
+$user->setup(array('memberlist', 'groups'));
// Grab data
$mode = request_var('mode', '');
$action = request_var('action', '');
$user_id = request_var('u', ANONYMOUS);
+$group_id = request_var('g', 0);
$topic_id = request_var('t', 0);
switch ($mode)
@@ -46,7 +44,7 @@ switch ($mode)
trigger_error($user->lang['NO_VIEW_USERS']);
}
- login_box($user->cur_page, '', $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)]);
+ login_box('', $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)]);
}
break;
}
@@ -68,6 +66,7 @@ obtain_ranks($ranks);
switch ($mode)
{
case 'leaders':
+ // TODO
// Display a listing of board admins, moderators?
$user_ary = $auth->acl_get_list(false, array('a_', 'm_'), false);
@@ -80,8 +79,8 @@ switch ($mode)
}
}
- $sql = 'SELECT user_id, username
- FROM ' . USERS_TABLE . '
+ $sql = 'SELECT user_id, username
+ FROM ' . USERS_TABLE . '
WHERE user_id IN (' . implode(', ', $user_id_ary) . ')';
$result = $db->sql_query($sql);
@@ -113,7 +112,7 @@ switch ($mode)
$s_select = 'S_SEND_AIM';
$s_action = '';
break;
-
+
case 'msnm':
$lang = 'MSNM';
$sql_field = 'user_msnm';
@@ -134,8 +133,8 @@ switch ($mode)
}
// Grab relevant data
- $sql = "SELECT user_id, username, user_email, user_lang, $sql_field
- FROM " . USERS_TABLE . "
+ $sql = "SELECT user_id, username, user_email, user_lang, $sql_field
+ FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
$result = $db->sql_query($sql);
@@ -186,18 +185,18 @@ switch ($mode)
// Send vars to the template
$template->assign_vars(array(
- 'IM_CONTACT' => $row[$sql_field],
- 'USERNAME' => addslashes($row['username']),
- 'EMAIL' => $row['user_email'],
- 'CONTACT_NAME' => $row[$sql_field],
+ 'IM_CONTACT' => $row[$sql_field],
+ 'USERNAME' => addslashes($row['username']),
+ 'EMAIL' => $row['user_email'],
+ 'CONTACT_NAME' => $row[$sql_field],
'SITENAME' => addslashes($config['sitename']),
- 'PRESENCE_IMG' => $presence_img,
+ 'PRESENCE_IMG' => $presence_img,
- 'L_SEND_IM_EXPLAIN' => $user->lang['IM_' . $lang],
- 'L_IM_SENT_JABBER' => sprintf($user->lang['IM_SENT_JABBER'], $row['username']),
+ 'L_SEND_IM_EXPLAIN' => $user->lang['IM_' . $lang],
+ 'L_IM_SENT_JABBER' => sprintf($user->lang['IM_SENT_JABBER'], $row['username']),
- $s_select => true,
+ $s_select => true,
'S_IM_ACTION' => $s_action)
);
@@ -207,17 +206,17 @@ switch ($mode)
// Display a profile
$page_title = sprintf($user->lang['VIEWING_PROFILE'], $row['username']);
$template_html = 'memberlist_view.html';
-
+
if ($user_id == ANONYMOUS)
{
trigger_error($user->lang['NO_USER']);
}
// Do the SQL thang
- $sql = 'SELECT g.group_id, g.group_name, g.group_type
- FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . " ug
- WHERE ug.user_id = $user_id
- AND g.group_id = ug.group_id" . (($auth->acl_get('a_groups'))? ' AND g.group_type <> ' . GROUP_HIDDEN : '') . '
+ $sql = 'SELECT g.group_id, g.group_name, g.group_type
+ FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . " ug
+ WHERE ug.user_id = $user_id
+ AND g.group_id = ug.group_id" . (($auth->acl_get('a_groups'))? ' AND g.group_type <> ' . GROUP_HIDDEN : '') . '
ORDER BY group_type, group_name';
$result = $db->sql_query($sql);
@@ -228,8 +227,8 @@ switch ($mode)
}
// We left join on the session table to see if the user is currently online
- $sql = 'SELECT username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_avatar, user_avatar_width, user_avatar_height, user_avatar_type, user_lastvisit
- FROM ' . USERS_TABLE . "
+ $sql = 'SELECT username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_avatar, user_avatar_width, user_avatar_height, user_avatar_type, user_lastvisit
+ FROM ' . USERS_TABLE . "
WHERE user_id = $user_id";
$result = $db->sql_query($sql);
@@ -239,7 +238,7 @@ switch ($mode)
}
$db->sql_freeresult($result);
- $sql = 'SELECT MAX(session_time) AS session_time
+ $sql = 'SELECT MAX(session_time) AS session_time
FROM ' . SESSIONS_TABLE . "
WHERE session_user_id = $user_id";
$result = $db->sql_query($sql);
@@ -254,7 +253,7 @@ switch ($mode)
$auth2 = new auth();
$auth2->acl($member);
$f_postcount_ary = $auth2->acl_getf('f_postcount');
-
+
$sql_forums = array();
foreach ($f_postcount_ary as $forum_id => $allow)
{
@@ -268,10 +267,10 @@ switch ($mode)
unset($sql_forums, $f_postcount_ary, $auth2);
// Grab all the relevant data
- $sql = 'SELECT COUNT(p.post_id) AS num_posts
+ $sql = 'SELECT COUNT(p.post_id) AS num_posts
FROM ' . POSTS_TABLE . ' p, ' . FORUMS_TABLE . " f
- WHERE p.poster_id = $user_id
- AND f.forum_id = p.forum_id
+ WHERE p.poster_id = $user_id
+ AND f.forum_id = p.forum_id
$post_count_sql";
$result = $db->sql_query($sql);
@@ -292,28 +291,28 @@ switch ($mode)
$post_count_sql = (sizeof($sql_forums)) ? 'AND f.forum_id IN (' . implode(', ', $sql_forums) . ')' : '';
unset($sql_forums, $f_forum_ary);
-
+
if ($post_count_sql)
{
- $sql = 'SELECT f.forum_id, f.forum_name, COUNT(post_id) AS num_posts
- FROM ' . POSTS_TABLE . ' p, ' . FORUMS_TABLE . " f
- WHERE p.poster_id = $user_id
- AND f.forum_id = p.forum_id
+ $sql = 'SELECT f.forum_id, f.forum_name, COUNT(post_id) AS num_posts
+ FROM ' . POSTS_TABLE . ' p, ' . FORUMS_TABLE . " f
+ WHERE p.poster_id = $user_id
+ AND f.forum_id = p.forum_id
$post_count_sql
- GROUP BY f.forum_id, f.forum_name
- ORDER BY num_posts DESC";
+ GROUP BY f.forum_id, f.forum_name
+ ORDER BY num_posts DESC";
$result = $db->sql_query_limit($sql, 1);
$active_f_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $sql = 'SELECT t.topic_id, t.topic_title, COUNT(p.post_id) AS num_posts
- FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
- WHERE p.poster_id = $user_id
- AND t.topic_id = p.topic_id
- AND f.forum_id = t.forum_id
+ $sql = 'SELECT t.topic_id, t.topic_title, COUNT(p.post_id) AS num_posts
+ FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
+ WHERE p.poster_id = $user_id
+ AND t.topic_id = p.topic_id
+ AND f.forum_id = t.forum_id
$post_count_sql
- GROUP BY t.topic_id, t.topic_title
+ GROUP BY t.topic_id, t.topic_title
ORDER BY num_posts DESC";
$result = $db->sql_query_limit($sql, 1);
@@ -325,7 +324,7 @@ switch ($mode)
$active_f_row = $active_t_row = array();
}
- // Do the relevant calculations
+ // Do the relevant calculations
$memberdays = max(1, round((time() - $member['user_regdate']) / 86400));
$posts_per_day = $member['user_posts'] / $memberdays;
$percentage = ($config['num_posts']) ? min(100, ($num_real_posts / $config['num_posts']) * 100) : 0;
@@ -384,16 +383,16 @@ switch ($mode)
$template->assign_vars(array(
'POSTS_DAY' => sprintf($user->lang['POST_DAY'], $posts_per_day),
'POSTS_PCT' => sprintf($user->lang['POST_PCT'], $percentage),
- 'ACTIVE_FORUM' => $active_f_name,
- 'ACTIVE_FORUM_POSTS'=> ($active_f_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_f_count),
- 'ACTIVE_FORUM_PCT' => sprintf($user->lang['POST_PCT'], $active_f_pct),
+ 'ACTIVE_FORUM' => $active_f_name,
+ 'ACTIVE_FORUM_POSTS'=> ($active_f_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_f_count),
+ 'ACTIVE_FORUM_PCT' => sprintf($user->lang['POST_PCT'], $active_f_pct),
'ACTIVE_TOPIC' => $active_t_name,
- 'ACTIVE_TOPIC_POSTS'=> ($active_t_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_t_count),
- 'ACTIVE_TOPIC_PCT' => sprintf($user->lang['POST_PCT'], $active_t_pct),
+ 'ACTIVE_TOPIC_POSTS'=> ($active_t_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_t_count),
+ 'ACTIVE_TOPIC_PCT' => sprintf($user->lang['POST_PCT'], $active_t_pct),
'OCCUPATION' => (!empty($member['user_occ'])) ? $member['user_occ'] : '',
'INTERESTS' => (!empty($member['user_interests'])) ? $member['user_interests'] : '',
- 'SIGNATURE' => (!empty($member['user_sig'])) ? str_replace("\n", '<br />', $member['user_sig']) : '',
+ 'SIGNATURE' => (!empty($member['user_sig'])) ? str_replace("\n", '<br />', $member['user_sig']) : '',
'AVATAR_IMG' => $poster_avatar,
'PM_IMG' => $user->img('btn_pm', $user->lang['MESSAGE']),
@@ -403,13 +402,13 @@ switch ($mode)
'AIM_IMG' => $user->img('btn_aim', $user->lang['AIM']),
'MSN_IMG' => $user->img('btn_msnm', $user->lang['MSNM']),
'YIM_IMG' => $user->img('btn_yim', $user->lang['YIM']),
- 'JABBER_IMG' => $user->img('btn_jabber', $user->lang['JABBER']),
- 'SEARCH_IMG' => $user->img('btn_search', $user->lang['SEARCH']),
+ 'JABBER_IMG' => $user->img('btn_jabber', $user->lang['JABBER']),
+ 'SEARCH_IMG' => $user->img('btn_search', $user->lang['SEARCH']),
- 'S_PROFILE_ACTION' => "groupcp.$phpEx$SID",
- 'S_GROUP_OPTIONS' => $group_options,
+ 'S_PROFILE_ACTION' => "memberlist.$phpEx$SID&amp;mode=group",
+ 'S_GROUP_OPTIONS' => $group_options,
- 'U_ADD_FRIEND' => "ucp.$phpEx$SID&amp;i=zebra&amp;add=" . urlencode($member['username']),
+ 'U_ADD_FRIEND' => "ucp.$phpEx$SID&amp;i=zebra&amp;add=" . urlencode($member['username']),
'U_ACTIVE_FORUM' => "viewforum.$phpEx$SID&amp;f=$active_f_id",
'U_ACTIVE_TOPIC' => "viewtopic.$phpEx$SID&amp;t=$active_t_id",)
);
@@ -453,7 +452,7 @@ switch ($mode)
if (!$topic_id)
{
// Get the appropriate username, etc.
- $sql = 'SELECT username, user_email, user_allow_viewemail, user_lang, user_jabber, user_notify_type
+ $sql = 'SELECT username, user_email, user_allow_viewemail, user_lang, user_jabber, user_notify_type
FROM ' . USERS_TABLE . "
WHERE user_id = $user_id
AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
@@ -473,7 +472,7 @@ switch ($mode)
}
else
{
- $sql = 'SELECT forum_id, topic_title
+ $sql = 'SELECT forum_id, topic_title
FROM ' . TOPICS_TABLE . "
WHERE topic_id = $topic_id";
$result = $db->sql_query($sql);
@@ -501,24 +500,24 @@ switch ($mode)
{
if (!$topic_id)
{
- if (!$subject)
+ if (!$subject)
{
$error[] = $user->lang['EMPTY_SUBJECT_EMAIL'];
}
- if (!$message)
+ if (!$message)
{
$error[] = $user->lang['EMPTY_MESSAGE_EMAIL'];
}
}
else
{
- if (!$email || !preg_match('#^.*?@(.*?\.)?[a-z0-9\-]+\.[a-z]{2,4}$#i', $email))
+ if (!$email || !preg_match('#^.*?@(.*?\.)?[a-z0-9\-]+\.[a-z]{2,4}$#i', $email))
{
$error[] = $user->lang['EMPTY_ADDRESS_EMAIL'];
}
- if (!$name)
+ if (!$name)
{
$error[] = $user->lang['EMPTY_NAME_EMAIL'];
}
@@ -565,9 +564,9 @@ switch ($mode)
'BOARD_EMAIL' => $config['board_contact'],
'FROM_USERNAME' => $user->data['username'],
'TO_USERNAME' => ($topic_id) ? $name : $row['username'],
- 'MESSAGE' => $message,
- 'TOPIC_NAME' => ($topic_id) ? strtr($row['topic_title'], array_flip(get_html_translation_table(HTML_ENTITIES))) : '',
-
+ 'MESSAGE' => $message,
+ 'TOPIC_NAME' => ($topic_id) ? strtr($row['topic_title'], array_flip(get_html_translation_table(HTML_ENTITIES))) : '',
+
'U_TOPIC' => ($topic_id) ? generate_board_url() . "/viewtopic.$phpEx?f=" . $row['forum_id'] . "&t=$topic_id" : '')
);
@@ -575,7 +574,7 @@ switch ($mode)
$messenger->queue->save();
meta_refresh(3, "index.$phpEx$SID");
- $message = (!$topic_id) ? sprintf($user->lang['RETURN_INDEX'], '<a href="' . "index.$phpEx$SID" . '">', '</a>') : sprintf($user->lang['RETURN_TOPIC'], "<a href=\"viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=" . $row['topic_id'] . '">', '</a>');
+ $message = (!$topic_id) ? sprintf($user->lang['RETURN_INDEX'], '<a href="' . "index.$phpEx$SID" . '">', '</a>') : sprintf($user->lang['RETURN_TOPIC'], "<a href=\"viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=" . $row['topic_id'] . '">', '</a>');
trigger_error($user->lang['EMAIL_SENT'] . '<br /><br />' . $message);
}
}
@@ -583,26 +582,27 @@ switch ($mode)
if ($topic_id)
{
$template->assign_vars(array(
- 'EMAIL' => htmlspecialchars($email),
- 'NAME' => htmlspecialchars($name),
- 'TOPIC_TITLE' => $row['topic_title'],
+ 'EMAIL' => htmlspecialchars($email),
+ 'NAME' => htmlspecialchars($name),
+ 'TOPIC_TITLE' => $row['topic_title'],
- 'U_TOPIC' => "viewtopic.$phpEx$SID&amp;f=" . $row['forum_id'] . "&amp;t=topic_id",
+ 'U_TOPIC' => "viewtopic.$phpEx$SID&amp;f=" . $row['forum_id'] . "&amp;t=topic_id",
'S_LANG_OPTIONS'=> ($topic_id) ? language_select($email_lang) : '')
);
}
$template->assign_vars(array(
- 'USERNAME' => (!$topic_id) ? addslashes($row['username']) : '',
- 'ERROR_MESSAGE' => (sizeof($error)) ? implode('<br />', $error) : '',
+ 'USERNAME' => (!$topic_id) ? addslashes($row['username']) : '',
+ 'ERROR_MESSAGE' => (sizeof($error)) ? implode('<br />', $error) : '',
- 'L_EMAIL_BODY_EXPLAIN' => (!$topic_id) ? $user->lang['EMAIL_BODY_EXPLAIN'] : $user->lang['EMAIL_TOPIC_EXPLAIN'],
+ 'L_EMAIL_BODY_EXPLAIN' => (!$topic_id) ? $user->lang['EMAIL_BODY_EXPLAIN'] : $user->lang['EMAIL_TOPIC_EXPLAIN'],
'S_POST_ACTION' => (!$topic_id) ? "memberlist.$phpEx$SID&amp;mode=email&amp;u=$user_id" : "memberlist.$phpEx$SID&amp;mode=email&amp;f=$forum_id&amp;t=$topic_id",
'S_SEND_USER' => (!$topic_id) ? true : false)
);
break;
+ case 'group':
default:
// The basic memberlist
$page_title = $user->lang['MEMBERLIST'];
@@ -610,7 +610,7 @@ switch ($mode)
// Sorting
$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_LOCATION'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'e' => $user->lang['SORT_EMAIL'], 'f' => $user->lang['WEBSITE'], 'g' => $user->lang['ICQ'], 'h' => $user->lang['AIM'], 'i' => $user->lang['MSNM'], 'j' => $user->lang['YIM'], 'k' => $user->lang['SORT_LAST_ACTIVE'], 'l' => $user->lang['SORT_RANK']);
- $sort_key_sql = array('a' => 'username', 'b' => 'user_from', 'c' => 'user_regdate', 'd' => 'user_posts', 'e' => 'user_email', 'f' => 'user_website', 'g' => 'user_icq', 'h' => 'user_aim', 'i' => 'user_msnm', 'j' => 'user_yim', 'k' => 'user_lastvisit', 'l' => 'user_rank DESC, user_posts');
+ $sort_key_sql = array('a' => 'u.username', 'b' => 'u.user_from', 'c' => 'u.user_regdate', 'd' => 'u.user_posts', 'e' => 'u.user_email', 'f' => 'u.user_website', 'g' => 'u.user_icq', 'h' => 'u.user_aim', 'i' => 'u.user_msnm', 'j' => 'u.user_yim', 'k' => 'u.user_lastvisit', 'l' => 'u.user_rank DESC, u.user_posts');
$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
@@ -676,22 +676,22 @@ switch ($mode)
$s_find_active_time .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
}
- $where_sql .= ($username) ? " AND username LIKE '" . str_replace('*', '%', $db->sql_escape($username)) ."'" : '';
- $where_sql .= ($email) ? " AND user_email LIKE '" . str_replace('*', '%', $db->sql_escape($email)) ."' " : '';
- $where_sql .= ($icq) ? " AND user_icq LIKE '" . str_replace('*', '%', $db->sql_escape($icq)) ."' " : '';
- $where_sql .= ($aim) ? " AND user_aim LIKE '" . str_replace('*', '%', $db->sql_escape($aim)) ."' " : '';
- $where_sql .= ($yahoo) ? " AND user_yim LIKE '" . str_replace('*', '%', $db->sql_escape($yahoo)) ."' " : '';
- $where_sql .= ($msn) ? " AND user_msnm LIKE '" . str_replace('*', '%', $db->sql_escape($msn)) ."' " : '';
- $where_sql .= ($count) ? " AND user_posts " . $find_key_match[$count_select] . " $count " : '';
- $where_sql .= (sizeof($joined) > 1) ? " AND user_regdate " . $find_key_match[$joined_select] . ' ' . gmmktime(0, 0, 0, intval($joined[1]), intval($joined[2]), intval($joined[0])) : '';
- $where_sql .= (sizeof($active) > 1) ? " AND user_lastvisit " . $find_key_match[$active_select] . ' ' . gmmktime(0, 0, 0, $active[1], intval($active[2]), intval($active[0])) : '';
+ $sql_where .= ($username) ? " AND u.username LIKE '" . str_replace('*', '%', $db->sql_escape($username)) ."'" : '';
+ $sql_where .= ($email) ? " AND u.user_email LIKE '" . str_replace('*', '%', $db->sql_escape($email)) ."' " : '';
+ $sql_where .= ($icq) ? " AND u.user_icq LIKE '" . str_replace('*', '%', $db->sql_escape($icq)) ."' " : '';
+ $sql_where .= ($aim) ? " AND u.user_aim LIKE '" . str_replace('*', '%', $db->sql_escape($aim)) ."' " : '';
+ $sql_where .= ($yahoo) ? " AND u.user_yim LIKE '" . str_replace('*', '%', $db->sql_escape($yahoo)) ."' " : '';
+ $sql_where .= ($msn) ? " AND u.user_msnm LIKE '" . str_replace('*', '%', $db->sql_escape($msn)) ."' " : '';
+ $sql_where .= ($count) ? " AND u.user_posts " . $find_key_match[$count_select] . " $count " : '';
+ $sql_where .= (sizeof($joined) > 1) ? " AND u.user_regdate " . $find_key_match[$joined_select] . ' ' . gmmktime(0, 0, 0, intval($joined[1]), intval($joined[2]), intval($joined[0])) : '';
+ $sql_where .= (sizeof($active) > 1) ? " AND u.user_lastvisit " . $find_key_match[$active_select] . ' ' . gmmktime(0, 0, 0, $active[1], intval($active[2]), intval($active[0])) : '';
if ($ipdomain)
{
$ips = (preg_match('#[a-z]#', $ipdomain)) ? implode(', ', preg_replace('#([0-9]{1,3}\.[0-9]{1,3}[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#', "'\\1'", gethostbynamel($ipdomain))) : "'" . str_replace('*', '%', $ipdomain) . "'";
- $sql = 'SELECT DISTINCT poster_id
- FROM ' . POSTS_TABLE . '
+ $sql = 'SELECT DISTINCT poster_id
+ FROM ' . POSTS_TABLE . '
WHERE poster_ip ' . ((preg_match('#%#', $ips)) ? 'LIKE' : 'IN') . " ($ips)";
$result = $db->sql_query($sql);
@@ -704,26 +704,102 @@ switch ($mode)
}
while ($row = $db->sql_fetchrow($result));
- $where_sql .= ' AND user_id IN (' . implode(', ', $ip_sql) . ')';
+ $sql_where .= ' AND u.user_id IN (' . implode(', ', $ip_sql) . ')';
}
else
{
// A minor fudge but it does the job :D
- $where_sql .= " AND user_id IN ('-1')";
+ $sql_where .= " AND u.user_id IN ('-1')";
+ }
+ }
+ }
+
+ // Are we looking at a usergroup? If so, fetch additional info
+ // and further restrict the user info query
+ $sql_from = '';
+ if ($mode == 'group')
+ {
+ $sql = 'SELECT *
+ FROM ' . GROUPS_TABLE . "
+ WHERE group_id = $group_id";
+ $result = $db->sql_query($sql);
+
+ if (!extract($db->sql_fetchrow($result)))
+ {
+ trigger_error($user->lang['NO_GROUP']);
+ }
+ $db->sql_freeresult($result);
+
+ switch ($group_type)
+ {
+ case GROUP_OPEN:
+ $group_type = 'OPEN';
+ break;
+ case GROUP_CLOSED:
+ $group_type = 'CLOSED';
+ break;
+ case GROUP_HIDDEN:
+ $group_type = 'HIDDEN';
+ break;
+ case GROUP_SPECIAL:
+ $group_type = 'SPECIAL';
+ break;
+ case GROUP_FREE:
+ $group_type = 'FREE';
+ break;
+ }
+
+ $avatar_img = '';
+ if ($group_avatar)
+ {
+ switch ($group_avatar_type)
+ {
+ case AVATAR_UPLOAD:
+ $avatar_img = $phpbb_root_path . $config['avatar_path'] . '/';
+ break;
+ case AVATAR_GALLERY:
+ $avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';
+ break;
}
+ $avatar_img .= $group_avatar;
+
+ $avatar_img = '<img src="' . $avatar_img . '" width="' . $group_avatar_width . '" height="' . $group_avatar_height . '" border="0" alt="" />';
}
+
+ $rank_title = $rank_img = '';
+ if (!empty($group_rank))
+ {
+ $rank_title = $ranks['special'][$group_rank]['rank_title'];
+ $rank_img = (!empty($ranks['special'][$group_rank]['rank_image'])) ? '<img src="' . $config['ranks_path'] . '/' . $ranks['special'][$group_rank]['rank_image'] . '" border="0" alt="' . $ranks['special'][$group_rank]['rank_title'] . '" title="' . $ranks['special'][$group_rank]['rank_title'] . '" /><br />' : '';
+ }
+
+ $template->assign_vars(array(
+ 'GROUP_DESC' => $group_description,
+ 'GROUP_NAME' => $group_name,
+ 'GROUP_COLOR' => $group_colour,
+ 'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_type],
+ 'GROUP_RANK' => $rank_title,
+
+ 'AVATAR_IMG' => $avatar_img,
+ 'RANK_IMG' => $rank_img,
+
+ 'U_PM' => ($auth->acl_get('u_sendpm')) ? "ucp.$phpEx$SID&amp;i=pm&amp;mode=compose&amp;address_list[g][$group_id]=to" : '',)
+ );
+
+ $sql_from = ', ' . USER_GROUP_TABLE . ' ug ';
+ $sql_where .= " AND u.user_id = ug.user_id AND ug.group_id = $group_id";
}
// Sorting and order
$order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC');
// Count the users ...
- if ($where_sql)
+ if ($sql_where)
{
- $sql = 'SELECT COUNT(user_id) AS total_users
- FROM ' . USERS_TABLE . '
- WHERE user_type <> ' . USER_IGNORE . "
- $where_sql";
+ $sql = 'SELECT COUNT(u.user_id) AS total_users
+ FROM ' . USERS_TABLE . " u$sql_from
+ WHERE u.user_type <> " . USER_IGNORE . "
+ $sql_where";
$result = $db->sql_query($sql);
$total_users = ($row = $db->sql_fetchrow($result)) ? $row['total_users'] : 0;
@@ -733,6 +809,10 @@ switch ($mode)
$total_users = $config['num_users'];
}
+
+
+
+
// Pagination string
$pagination_url = "memberlist.$phpEx$SID&amp;mode=$mode";
@@ -747,6 +827,9 @@ switch ($mode)
$pagination_url .= '&amp;' . $key . '=' . urlencode(htmlspecialchars($var));
}
+
+
+
// Some search user specific data
if ($mode == 'searchuser' && ($config['load_search'] || $auth->acl_get('a_')))
{
@@ -759,8 +842,8 @@ switch ($mode)
'MSNM' => $msn,
'JOINED' => implode('-', $joined),
'ACTIVE' => implode('-', $active),
- 'COUNT' => $count,
- 'IP' => $ipdomain,
+ 'COUNT' => $count,
+ 'IP' => $ipdomain,
'S_SEARCH_USER' => true,
'S_FORM_NAME' => $form,
@@ -774,10 +857,8 @@ switch ($mode)
);
}
- // TODO
- // ?????????
- $sql = 'SELECT session_user_id, MAX(session_time) AS session_time
- FROM ' . SESSIONS_TABLE . '
+ $sql = 'SELECT session_user_id, MAX(session_time) AS session_time
+ FROM ' . SESSIONS_TABLE . '
WHERE session_time >= ' . (time() - 300) . '
AND session_user_id <> ' . ANONYMOUS . '
GROUP BY session_user_id';
@@ -791,10 +872,10 @@ switch ($mode)
$db->sql_freeresult($result);
// Do the SQL thang
- $sql = 'SELECT username, user_id, user_colour, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_lastvisit
- FROM ' . USERS_TABLE . '
- WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ")
- $where_sql
+ $sql = 'SELECT u.username, u.user_id, u.user_colour, u.user_allow_viewemail, u.user_posts, u.user_regdate, u.user_rank, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar, u.user_avatar_type, u.user_lastvisit
+ FROM ' . USERS_TABLE . " u$sql_from
+ WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
+ $sql_where
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
@@ -807,6 +888,7 @@ switch ($mode)
$template->assign_block_vars('memberrow', array_merge(show_profile($row), array(
'ROW_NUMBER' => $i + ($start + 1),
+
'U_VIEWPROFILE' => "memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=" . $row['user_id']))
);
@@ -818,10 +900,10 @@ switch ($mode)
// Generate page
$template->assign_vars(array(
'PAGINATION' => generate_pagination($pagination_url, $total_users, $config['topics_per_page'], $start),
- 'PAGE_NUMBER' => on_page($total_users, $config['topics_per_page'], $start),
- 'TOTAL_USERS' => ($total_users == 1) ? $user->lang['LIST_USER'] : sprintf($user->lang['LIST_USERS'], $total_users),
+ 'PAGE_NUMBER' => on_page($total_users, $config['topics_per_page'], $start),
+ 'TOTAL_USERS' => ($total_users == 1) ? $user->lang['LIST_USER'] : sprintf($user->lang['LIST_USERS'], $total_users),
- 'PROFILE_IMG' => $user->img('btn_profile', $user->lang['PROFILE']),
+ 'PROFILE_IMG' => $user->img('btn_profile', $user->lang['PROFILE']),
'PM_IMG' => $user->img('btn_pm', $user->lang['MESSAGE']),
'EMAIL_IMG' => $user->img('btn_email', $user->lang['EMAIL']),
'WWW_IMG' => $user->img('btn_www', $user->lang['WWW']),
@@ -829,26 +911,27 @@ switch ($mode)
'AIM_IMG' => $user->img('btn_aim', $user->lang['AIM']),
'MSN_IMG' => $user->img('btn_msnm', $user->lang['MSNM']),
'YIM_IMG' => $user->img('btn_yim', $user->lang['YIM']),
- 'JABBER_IMG' => $user->img('btn_jabber', $user->lang['JABBER']),
- 'SEARCH_IMG' => $user->img('btn_search', $user->lang['SEARCH']),
-
- 'U_FIND_MEMBER' => (!empty($config['load_search']) || $auth->acl_get('a_')) ? "memberlist.$phpEx$SID&amp;mode=searchuser" : '',
- 'U_SORT_USERNAME' => "memberlist.$phpEx$SID&amp;sk=a&amp;sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_FROM' => "memberlist.$phpEx$SID&amp;sk=b&amp;sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_JOINED' => "memberlist.$phpEx$SID&amp;sk=c&amp;sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_POSTS' => "memberlist.$phpEx$SID&amp;sk=d&amp;sd=" . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_EMAIL' => "memberlist.$phpEx$SID&amp;sk=e&amp;sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_WEBSITE' => "memberlist.$phpEx$SID&amp;sk=f&amp;sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_ICQ' => "memberlist.$phpEx$SID&amp;sk=g&amp;sd=" . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_AIM' => "memberlist.$phpEx$SID&amp;sk=h&amp;sd=" . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_MSN' => "memberlist.$phpEx$SID&amp;sk=i&amp;sd=" . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_YIM' => "memberlist.$phpEx$SID&amp;sk=j&amp;sd=" . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_ACTIVE' => "memberlist.$phpEx$SID&amp;sk=k&amp;sd=" . (($sort_key == 'k' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_RANK' => "memberlist.$phpEx$SID&amp;sk=l&amp;sd=" . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
-
- 'S_MODE_SELECT' => $s_sort_key,
- 'S_ORDER_SELECT'=> $s_sort_dir,
- 'S_MODE_ACTION' => "memberlist.$phpEx$SID&amp;mode=$mode&amp;form=$form")
+ 'JABBER_IMG' => $user->img('btn_jabber', $user->lang['JABBER']),
+ 'SEARCH_IMG' => $user->img('btn_search', $user->lang['SEARCH']),
+
+ 'U_FIND_MEMBER' => (!empty($config['load_search']) || $auth->acl_get('a_')) ? "memberlist.$phpEx$SID&amp;mode=searchuser" : '',
+ 'U_SORT_USERNAME' => "memberlist.$phpEx$SID&amp;sk=a&amp;sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_FROM' => "memberlist.$phpEx$SID&amp;sk=b&amp;sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_JOINED' => "memberlist.$phpEx$SID&amp;sk=c&amp;sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_POSTS' => "memberlist.$phpEx$SID&amp;sk=d&amp;sd=" . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_EMAIL' => "memberlist.$phpEx$SID&amp;sk=e&amp;sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_WEBSITE' => "memberlist.$phpEx$SID&amp;sk=f&amp;sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_ICQ' => "memberlist.$phpEx$SID&amp;sk=g&amp;sd=" . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_AIM' => "memberlist.$phpEx$SID&amp;sk=h&amp;sd=" . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_MSN' => "memberlist.$phpEx$SID&amp;sk=i&amp;sd=" . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_YIM' => "memberlist.$phpEx$SID&amp;sk=j&amp;sd=" . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_ACTIVE' => "memberlist.$phpEx$SID&amp;sk=k&amp;sd=" . (($sort_key == 'k' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_RANK' => "memberlist.$phpEx$SID&amp;sk=l&amp;sd=" . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
+
+ 'S_SHOW_GROUP' => ($mode == 'group') ? true : false,
+ 'S_MODE_SELECT' => $s_sort_key,
+ 'S_ORDER_SELECT' => $s_sort_dir,
+ 'S_MODE_ACTION' => $pagination_url . "&amp;form=$form")
);
}
@@ -865,7 +948,7 @@ page_footer();
// ---------
-// FUNCTIONS
+// FUNCTIONS
//
function show_profile($data)
{
@@ -898,23 +981,23 @@ function show_profile($data)
$last_visit = (!empty($data['session_time'])) ? $data['session_time'] : $data['user_lastvisit'];
// Dump it out to the template
- // TODO
+ // TODO
// Add permission check for IM clients
return array(
- 'USERNAME' => $username,
- 'USER_COLOR' => (!empty($data['user_colour'])) ? $data['user_colour'] : '',
- 'RANK_TITLE' => $rank_title,
+ 'USERNAME' => $username,
+ 'USER_COLOR' => (!empty($data['user_colour'])) ? $data['user_colour'] : '',
+ 'RANK_TITLE' => $rank_title,
'JOINED' => $user->format_date($data['user_regdate'], $user->lang['DATE_FORMAT']),
'VISITED' => (empty($last_visit)) ? ' - ' : $user->format_date($last_visit, $user->lang['DATE_FORMAT']),
'POSTS' => ($data['user_posts']) ? $data['user_posts'] : 0,
- 'ONLINE_IMG' => (intval($data['session_time']) >= time() - ($config['load_online_time'] * 60)) ? $user->img('btn_online', $user->lang['USER_ONLINE']) : $user->img('btn_offline', $user->lang['USER_ONLINE']),
+ 'ONLINE_IMG' => (intval($data['session_time']) >= time() - ($config['load_online_time'] * 60)) ? $user->img('btn_online', $user->lang['USER_ONLINE']) : $user->img('btn_offline', $user->lang['USER_ONLINE']),
'RANK_IMG' => $rank_img,
'ICQ_STATUS_IMG'=> (!empty($data['user_icq'])) ? '<img src="http://web.icq.com/whitepages/online?icq=' . $data['user_icq'] . '&img=5" width="18" height="18" border="0" />' : '',
- 'U_PROFILE' => "memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=$user_id",
- 'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? "search.$phpEx$SID&amp;search_author=" . urlencode($username) . "&amp;show_results=posts" : '',
- 'U_PM' => ($auth->acl_get('u_sendpm')) ? "ucp.$phpEx$SID&amp;i=pm&amp;mode=compose&amp;u=$user_id" : '',
+ 'U_PROFILE' => "memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=$user_id",
+ 'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? "search.$phpEx$SID&amp;search_author=" . urlencode($username) . "&amp;show_results=posts" : '',
+ 'U_PM' => ($auth->acl_get('u_sendpm')) ? "ucp.$phpEx$SID&amp;mode=pm&amp;action=send&amp;u=$user_id" : '',
'U_EMAIL' => $email,
'U_WWW' => (!empty($data['user_website'])) ? $data['user_website'] : '',
'U_ICQ' => ($data['user_icq']) ? "memberlist.$phpEx$SID&amp;mode=contact&amp;action=icq&amp;u=$user_id" : '',
@@ -927,7 +1010,7 @@ function show_profile($data)
);
}
//
-// FUNCTIONS
+// FUNCTIONS
// ---------
?> \ No newline at end of file
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 3f4ae49001..71fd451565 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -7,8 +7,8 @@
// STARTED : Sat Feb 17, 2001
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
define('IN_PHPBB', true);
@@ -80,10 +80,10 @@ switch ($mode)
$sql = 'SELECT f.*, t.*
FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
WHERE t.topic_id = $topic_id
- AND (f.forum_id = t.forum_id
+ AND (f.forum_id = t.forum_id
OR f.forum_id = $forum_id)";
break;
-
+
case 'quote':
case 'edit':
case 'delete':
@@ -92,12 +92,12 @@ switch ($mode)
trigger_error('NO_POST');
}
- $sql = 'SELECT f.*, t.*, p.*, u.username, u.user_sig, u.user_sig_bbcode_uid, u.user_sig_bbcode_bitfield
+ $sql = 'SELECT f.*, t.*, p.*, u.username, u.user_sig, u.user_sig_bbcode_uid, u.user_sig_bbcode_bitfield
FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f, ' . USERS_TABLE . " u
WHERE p.post_id = $post_id
AND t.topic_id = p.topic_id
AND u.user_id = p.poster_id
- AND (f.forum_id = t.forum_id
+ AND (f.forum_id = t.forum_id
OR f.forum_id = $forum_id)";
break;
@@ -143,10 +143,10 @@ if ($sql)
if ($forum_password)
{
$forum_info = array(
- 'forum_id' => $forum_id,
+ 'forum_id' => $forum_id,
'forum_password'=> $forum_password
);
-
+
login_forum_box($forum_info);
unset($forum_info);
}
@@ -161,7 +161,7 @@ if ($sql)
// Get Poll Data
if ($poll_start)
{
- $sql = 'SELECT poll_option_text
+ $sql = 'SELECT poll_option_text
FROM ' . POLL_OPTIONS_TABLE . "
WHERE topic_id = $topic_id
ORDER BY poll_option_id";
@@ -198,10 +198,10 @@ if ($sql)
$result = $db->sql_query($sql);
$message_parser->attachment_data = array_merge($message_parser->attachment_data, $db->sql_fetchrowset($result));
-
+
$db->sql_freeresult($result);
}
-
+
if ($poster_id == ANONYMOUS || !$poster_id)
{
$username = (in_array($mode, array('quote', 'edit', 'delete'))) ? trim($post_username) : '';
@@ -230,7 +230,7 @@ if ($sql)
$sql = 'SELECT draft_id
FROM ' . DRAFTS_TABLE . '
WHERE (forum_id = ' . $forum_id . (($topic_id) ? " OR topic_id = $topic_id" : '') . ')
- AND user_id = ' . $user->data['user_id'] .
+ AND user_id = ' . $user->data['user_id'] .
(($draft_id) ? " AND draft_id <> $draft_id" : '');
$result = $db->sql_query_limit($sql, 1);
@@ -264,8 +264,8 @@ if (!$auth->acl_get('f_' . $mode, $forum_id) && $forum_type == FORUM_POST)
{
trigger_error('USER_CANNOT_' . strtoupper($mode));
}
-
- login_box($user->cur_page, '', $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)]);
+
+ login_box('', $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)]);
}
@@ -276,26 +276,29 @@ if (($forum_status == ITEM_LOCKED || $topic_status == ITEM_LOCKED) && !$auth->ac
trigger_error($message);
}
-// Can we edit this post?
+// Can we edit this post ... if we're a moderator with rights then always yes
+// else it depends on editing times, lock status and if we're the correct user
+// !$preview && !$refresh && !$submit &&
if ($mode == 'edit' && !$preview && !$refresh && !$submit && !$auth->acl_get('m_edit', $forum_id))
{
+ if ($user->data['user_id'] != $poster_id)
+ {
+ trigger_error('USER_CANNOT_EDIT');
+ }
+
if (!($post_time > time() - $config['edit_time'] || !$config['edit_time']))
{
trigger_error('CANNOT_EDIT_TIME');
}
-}
-// Do we want to edit our post ?
-if ($mode == 'edit' && !$auth->acl_get('m_edit', $forum_id) && ($user->data['user_id'] != $poster_id || $post_edit_locked))
-{
if ($post_edit_locked)
{
trigger_error('CANNOT_EDIT_POST_LOCKED');
}
-
- trigger_error('USER_CANNOT_EDIT');
}
+// Do we want to edit our post ?
+
if ($mode == 'edit')
{
$message_parser->bbcode_uid = $bbcode_uid;
@@ -318,9 +321,9 @@ if ($mode == 'delete' && (($poster_id == $user->data['user_id'] && $user->data['
'post_time' => $post_time,
'poster_id' => $poster_id
);
-
+
$next_post_id = delete_post($mode, $post_id, $topic_id, $forum_id, $data);
-
+
if ($topic_first_post_id == $topic_last_post_id)
{
$meta_info = "viewforum.$phpEx$SID&amp;f=$forum_id";
@@ -392,7 +395,7 @@ if ($mode == 'bump' && ($bump_time = bump_topic_allowed($forum_id, $topic_bumped
WHERE user_id = " . $user->data['user_id']);
$db->sql_transaction('commit');
-
+
markread('post', $forum_id, $topic_id, $current_time);
add_log('mod', $forum_id, $topic_id, sprintf($user->lang['LOGM_BUMP'], $topic_title));
@@ -427,7 +430,7 @@ if ($save && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts
'draft_subject' => $subject,
'draft_message' => $message));
$db->sql_query($sql);
-
+
$meta_info = ($mode == 'post') ? "viewforum.$phpEx$SID&amp;f=$forum_id" : "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id";
meta_refresh(3, $meta_info);
@@ -446,12 +449,12 @@ if ($save && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts
// Load Draft
if ($draft_id && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts'))
{
- $sql = 'SELECT draft_subject, draft_message
- FROM ' . DRAFTS_TABLE . "
+ $sql = 'SELECT draft_subject, draft_message
+ FROM ' . DRAFTS_TABLE . "
WHERE draft_id = $draft_id
AND user_id = " . $user->data['user_id'];
$result = $db->sql_query_limit($sql, 1);
-
+
if ($row = $db->sql_fetchrow($result))
{
$_REQUEST['subject'] = $row['draft_subject'];
@@ -482,7 +485,7 @@ if ($submit || $preview || $refresh)
{
$subject = phpbb_strtolower($subject);
}
-
+
$message_parser->message = (isset($_POST['message'])) ? htmlspecialchars(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message'])) : '';
$message_parser->message = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', $message_parser->message);
// $message_parser->message = request_var('message', '', true, true);
@@ -506,7 +509,7 @@ if ($submit || $preview || $refresh)
$post_lock = (isset($_POST['lock_post']));
$poll_delete = (isset($_POST['poll_delete']));
-
+
// Faster than crc32
$check_value = (($preview || $refresh) && isset($_POST['status_switch'])) ? (int) $_POST['status_switch'] : (($enable_html+1) << 16) + (($enable_bbcode+1) << 8) + (($enable_smilies+1) << 4) + (($enable_urls+1) << 2) + (($enable_sig+1) << 1);
$status_switch = (isset($_POST['status_switch']) && (int) $_POST['status_switch'] != $check_value);
@@ -523,12 +526,12 @@ if ($submit || $preview || $refresh)
'poll_title' => '',
'poll_start' => 0,
'poll_length' => 0,
- 'poll_last_vote' => 0,
+ 'poll_last_vote' => 0,
'poll_max_options' => 0
);
- $sql = 'UPDATE ' . TOPICS_TABLE . '
- SET ' . $db->sql_build_array('UPDATE', $topic_sql) . "
+ $sql = 'UPDATE ' . TOPICS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $topic_sql) . "
WHERE topic_id = $topic_id";
$db->sql_query($sql);
@@ -611,7 +614,7 @@ if ($submit || $preview || $refresh)
if (($username && $user->data['user_id'] == ANONYMOUS) || ($mode == 'edit' && $post_username))
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
-
+
if (($result = validate_username(($mode == 'edit' && $post_username) ? $post_username : $username)) != false)
{
$error[] = $result;
@@ -623,7 +626,7 @@ if ($submit || $preview || $refresh)
{
$error[] = $user->lang['EMPTY_SUBJECT'];
}
-
+
$poll_data = array(
'poll_title' => $poll_title,
'poll_length' => $poll_length,
@@ -683,18 +686,18 @@ if ($submit || $preview || $refresh)
$result = $db->sql_query_limit($sql, 1);
$row = $db->sql_fetchrow($result);
-
+
if ($row && !$row['forum_id'] && $row['topic_type'] == POST_GLOBAL)
{
$to_forum_id = request_var('to_forum_id', 0);
-
+
if (!$to_forum_id)
{
$template->assign_vars(array(
'S_FORUM_SELECT' => make_forum_select(false, false, false, true, true),
- 'S_UNGLOBALISE' => true)
+ 'S_UNGLOBALISE' => true)
);
-
+
$submit = false;
$refresh = true;
}
@@ -719,7 +722,7 @@ if ($submit || $preview || $refresh)
{
$change_topic_status = ITEM_LOCKED;
}
-
+
if ($change_topic_status != $topic_status)
{
$sql = 'UPDATE ' . TOPICS_TABLE . "
@@ -727,7 +730,7 @@ if ($submit || $preview || $refresh)
WHERE topic_id = $topic_id
AND topic_moved_id = 0";
$db->sql_query($sql);
-
+
$user_lock = ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster) ? 'USER_' : '';
add_log('mod', $forum_id, $topic_id, 'LOG_' . $user_lock . (($change_topic_status == ITEM_LOCKED) ? 'LOCK' : 'UNLOCK'), $topic_title);
@@ -772,10 +775,10 @@ if ($submit || $preview || $refresh)
'post_edit_locked' => (int) $post_edit_locked,
'bbcode_bitfield' => (int) $message_parser->bbcode_bitfield
);
-
+
submit_post($mode, $message_parser->message, $subject, $username, $topic_type, $message_parser->bbcode_uid, $poll, $message_parser->attachment_data, $message_parser->filename_data, $post_data, $update_message);
}
- }
+ }
$post_text = $message_parser->message;
$post_subject = stripslashes($subject);
@@ -822,7 +825,7 @@ if (!sizeof($error) && $preview)
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$extensions = $update_count = array();
-
+
$template->assign_var('S_HAS_ATTACHMENTS', true);
display_attachments($forum_id, 'attachment', $message_parser->attachment_data, $update_count, true);
}
@@ -946,7 +949,7 @@ $form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_up
// Start assigning vars for main posting page ...
$template->assign_vars(array(
'L_POST_A' => $page_title,
- 'L_ICON' => ($mode == 'reply' || $mode == 'quote') ? $user->lang['POST_ICON'] : $user->lang['TOPIC_ICON'],
+ 'L_ICON' => ($mode == 'reply' || $mode == 'quote') ? $user->lang['POST_ICON'] : $user->lang['TOPIC_ICON'],
'L_MESSAGE_BODY_EXPLAIN'=> (intval($config['max_post_chars'])) ? sprintf($user->lang['MESSAGE_BODY_EXPLAIN'], intval($config['max_post_chars'])) : '',
'FORUM_NAME' => $forum_name,
@@ -957,8 +960,8 @@ $template->assign_vars(array(
'SUBJECT' => $post_subject,
'MESSAGE' => trim($post_text),
'PREVIEW_SUBJECT' => ($preview && !sizeof($error)) ? $preview_subject : '',
- 'PREVIEW_MESSAGE' => ($preview && !sizeof($error)) ? $preview_message : '',
- 'PREVIEW_SIGNATURE' => ($preview && !sizeof($error)) ? $preview_signature : '',
+ 'PREVIEW_MESSAGE' => ($preview && !sizeof($error)) ? $preview_message : '',
+ 'PREVIEW_SIGNATURE' => ($preview && !sizeof($error)) ? $preview_signature : '',
'HTML_STATUS' => ($html_status) ? $user->lang['HTML_IS_ON'] : $user->lang['HTML_IS_OFF'],
'BBCODE_STATUS' => ($bbcode_status) ? sprintf($user->lang['BBCODE_IS_ON'], '<a href="' . "faq.$phpEx$SID&amp;mode=bbcode" . '" target="_phpbbcode">', '</a>') : sprintf($user->lang['BBCODE_IS_OFF'], '<a href="' . "faq.$phpEx$SID&amp;mode=bbcode" . '" target="_phpbbcode">', '</a>'),
'IMG_STATUS' => ($img_status) ? $user->lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF'],
@@ -966,7 +969,7 @@ $template->assign_vars(array(
'SMILIES_STATUS' => ($smilies_status) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'],
'MINI_POST_IMG' => $user->img('icon_post', $user->lang['POST']),
'POST_DATE' => ($post_time) ? $user->format_date($post_time) : '',
- 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
+ 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'TOPIC_TIME_LIMIT' => (int) $topic_time_limit,
'EDIT_REASON' => $post_edit_reason,
@@ -1017,7 +1020,7 @@ if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id &&
'POLL_TITLE' => (isset($poll_title)) ? $poll_title : '',
'POLL_OPTIONS' => (isset($poll_options) && $poll_options) ? implode("\n", $poll_options) : '',
- 'POLL_MAX_OPTIONS' => (isset($poll_max_options)) ? (int) $poll_max_options : 1,
+ 'POLL_MAX_OPTIONS' => (isset($poll_max_options)) ? (int) $poll_max_options : 1,
'POLL_LENGTH' => $poll_length)
);
}
@@ -1103,10 +1106,10 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
break;
case 'delete_first_post':
- $sql = 'SELECT p.post_id, p.poster_id, p.post_username, u.username
+ $sql = 'SELECT p.post_id, p.poster_id, p.post_username, u.username
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . " u
- WHERE p.topic_id = $topic_id
- AND p.poster_id = u.user_id
+ WHERE p.topic_id = $topic_id
+ AND p.poster_id = u.user_id
ORDER BY p.post_time ASC";
$result = $db->sql_query_limit($sql, 1);
@@ -1123,7 +1126,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$next_post_id = (int) $row['post_id'];
break;
-
+
case 'delete_last_post':
if ($data['topic_type'] != POST_GLOBAL)
{
@@ -1149,15 +1152,15 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
-
+
$next_post_id = (int) $row['last_post_id'];
}
break;
-
+
case 'delete':
$sql = 'SELECT post_id
FROM ' . POSTS_TABLE . "
- WHERE topic_id = $topic_id " .
+ WHERE topic_id = $topic_id " .
(($auth->acl_get('m_approve', $forum_id)) ? 'AND post_approved = 1' : '') . '
AND post_time > ' . $data['post_time'] . '
ORDER BY post_time ASC';
@@ -1174,7 +1177,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$sql_data[TOPICS_TABLE] = 'topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : '');
$next_post_id = (int) $row['post_id'];
}
-
+
$sql_data[USERS_TABLE] = ($auth->acl_get('f_postcount', $forum_id)) ? 'user_posts = user_posts - 1' : '';
set_config('num_posts', $config['num_posts'] - 1, true);
@@ -1206,7 +1209,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{
return;
}
-
+
$current_time = time();
if ($mode == 'post')
@@ -1223,7 +1226,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{
$post_mode = ($data['topic_first_post_id'] == $data['topic_last_post_id']) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
}
-
+
// Collect some basic informations about which tables and which rows to update/insert
$sql_data = array();
@@ -1237,7 +1240,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[POSTS_TABLE]['sql'] = array(
'forum_id' => ($topic_type == POST_GLOBAL) ? 0 : $data['forum_id'],
'poster_id' => (int) $user->data['user_id'],
- 'icon_id' => $data['icon_id'],
+ 'icon_id' => $data['icon_id'],
'poster_ip' => $user->ip,
'post_time' => $current_time,
'post_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
@@ -1246,7 +1249,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'enable_smilies' => $data['enable_smilies'],
'enable_magic_url' => $data['enable_urls'],
'enable_sig' => $data['enable_sig'],
- 'post_username' => ($user->data['user_id'] == ANONYMOUS) ? stripslashes($username) : '',
+ 'post_username' => ($user->data['user_id'] == ANONYMOUS) ? stripslashes($username) : '',
'post_subject' => $subject,
'post_text' => $message,
'post_checksum' => $data['message_md5'],
@@ -1265,7 +1268,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[POSTS_TABLE]['sql'] = array(
'post_edit_time' => $current_time
);
-
+
$sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
}
@@ -1275,12 +1278,12 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[POSTS_TABLE]['sql'] = array(
'post_edit_time' => $current_time
);
-
+
$sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
}
case 'edit_topic':
-
+
if (!isset($sql_data[POSTS_TABLE]['sql']))
{
$sql_data[POSTS_TABLE]['sql'] = array();
@@ -1296,7 +1299,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'enable_smilies' => $data['enable_smilies'],
'enable_magic_url' => $data['enable_urls'],
'enable_sig' => $data['enable_sig'],
- 'post_username' => ($username && $data['poster_id'] == ANONYMOUS) ? stripslashes($username) : '',
+ 'post_username' => ($username && $data['poster_id'] == ANONYMOUS) ? stripslashes($username) : '',
'post_subject' => $subject,
'post_edit_reason' => $data['post_edit_reason'],
'post_edit_user' => (int) $data['post_edit_user'],
@@ -1315,7 +1318,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
break;
}
-
+
// And the topic ladies and gentlemen
switch ($post_mode)
{
@@ -1325,7 +1328,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'topic_time' => $current_time,
'forum_id' => ($topic_type == POST_GLOBAL) ? 0 : $data['forum_id'],
'icon_id' => $data['icon_id'],
- 'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
+ 'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
'topic_title' => $subject,
'topic_first_poster_name' => ($user->data['user_id'] == ANONYMOUS && $username) ? stripslashes($username) : $user->data['username'],
'topic_type' => $topic_type,
@@ -1337,12 +1340,12 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{
$sql_data[TOPICS_TABLE]['sql'] = array_merge($sql_data[TOPICS_TABLE]['sql'], array(
'poll_title' => $poll['poll_title'],
- 'poll_start' => ($poll['poll_start']) ? $poll['poll_start'] : $current_time,
- 'poll_max_options' => $poll['poll_max_options'],
+ 'poll_start' => ($poll['poll_start']) ? $poll['poll_start'] : $current_time,
+ 'poll_max_options' => $poll['poll_max_options'],
'poll_length' => $poll['poll_length'] * 86400)
);
}
-
+
$sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id'])) ? ', user_posts = user_posts + 1' : '');
if (!$auth->acl_get('f_moderate', $data['forum_id']))
{
@@ -1350,7 +1353,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics_real = forum_topics_real + 1' . ((!$auth->acl_get('f_moderate', $data['forum_id'])) ? ', forum_topics = forum_topics + 1' : '');
break;
-
+
case 'reply':
$sql_data[TOPICS_TABLE]['stat'][] = 'topic_replies_real = topic_replies_real + 1, topic_bumped = 0, topic_bumper = 0' . ((!$auth->acl_get('f_moderate', $data['forum_id'])) ? ', topic_replies = topic_replies + 1' : '');
$sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id'])) ? ', user_posts = user_posts + 1' : '');
@@ -1366,27 +1369,27 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[TOPICS_TABLE]['sql'] = array(
'forum_id' => ($topic_type == POST_GLOBAL) ? 0 : $data['forum_id'],
'icon_id' => $data['icon_id'],
- 'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
+ 'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
'topic_title' => $subject,
'topic_first_poster_name' => stripslashes($username),
'topic_type' => $topic_type,
'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0,
'poll_title' => ($poll['poll_options']) ? $poll['poll_title'] : '',
- 'poll_start' => ($poll['poll_options']) ? (($poll['poll_start']) ? $poll['poll_start'] : $current_time) : 0,
- 'poll_max_options' => ($poll['poll_options']) ? $poll['poll_max_options'] : 1,
+ 'poll_start' => ($poll['poll_options']) ? (($poll['poll_start']) ? $poll['poll_start'] : $current_time) : 0,
+ 'poll_max_options' => ($poll['poll_options']) ? $poll['poll_max_options'] : 1,
'poll_length' => ($poll['poll_options']) ? $poll['poll_length'] * 86400 : 0,
'topic_attachment' => ($post_mode == 'edit_topic') ? ((sizeof($filename_data['physical_filename'])) ? 1 : 0) : $data['topic_attachment']
);
break;
}
-
+
$db->sql_transaction();
// Submit new topic
if ($post_mode == 'post')
{
- $sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' .
+ $sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' .
$db->sql_build_array('INSERT', $sql_data[TOPICS_TABLE]['sql']);
$db->sql_query($sql);
@@ -1448,10 +1451,10 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts - ' . ($row['topic_replies_real'] + 1);
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics_real = forum_topics_real - 1' . (($row['topic_approved']) ? ', forum_topics = forum_topics - 1' : '');
-
+
// Update forum_ids for all posts
- $sql = 'UPDATE ' . POSTS_TABLE . '
- SET forum_id = 0
+ $sql = 'UPDATE ' . POSTS_TABLE . '
+ SET forum_id = 0
WHERE topic_id = ' . $data['topic_id'];
$db->sql_query($sql);
}
@@ -1466,8 +1469,8 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_topics_real = forum_topics_real + 1' . (($row['topic_approved']) ? ', forum_topics = forum_topics + 1' : '');
// Update forum_ids for all posts
- $sql = 'UPDATE ' . POSTS_TABLE . '
- SET forum_id = ' . $data['forum_id'] . '
+ $sql = 'UPDATE ' . POSTS_TABLE . '
+ SET forum_id = ' . $data['forum_id'] . '
WHERE topic_id = ' . $data['topic_id'];
$db->sql_query($sql);
}
@@ -1476,7 +1479,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
// Update the topics table
if (isset($sql_data[TOPICS_TABLE]['sql']))
{
- $db->sql_query('UPDATE ' . TOPICS_TABLE . '
+ $db->sql_query('UPDATE ' . TOPICS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_data[TOPICS_TABLE]['sql']) . '
WHERE topic_id = ' . $data['topic_id']);
}
@@ -1493,10 +1496,10 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
if (isset($poll['poll_options']) && !empty($poll['poll_options']))
{
$cur_poll_options = array();
-
+
if ($poll['poll_start'] && $mode == 'edit')
{
- $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . '
+ $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . '
WHERE topic_id = ' . $data['topic_id'] . '
ORDER BY poll_option_id';
$result = $db->sql_query($sql);
@@ -1517,7 +1520,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
else if ($poll['poll_options'][$i] != $cur_poll_options[$i])
{
- $sql = "UPDATE " . POLL_OPTIONS_TABLE . "
+ $sql = "UPDATE " . POLL_OPTIONS_TABLE . "
SET poll_option_text = '" . $db->sql_escape($poll['poll_options'][$i]) . "'
WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id'] . "
AND topic_id = " . $data['topic_id'];
@@ -1525,11 +1528,11 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
}
}
-
+
if (sizeof($poll['poll_options']) < sizeof($cur_poll_options))
{
$sql = 'DELETE FROM ' . POLL_OPTIONS_TABLE . '
- WHERE poll_option_id > ' . sizeof($poll['poll_options']) . '
+ WHERE poll_option_id > ' . sizeof($poll['poll_options']) . '
AND topic_id = ' . $data['topic_id'];
$db->sql_query($sql);
}
@@ -1545,14 +1548,14 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
if ($attach_row['attach_id'])
{
// update entry in db if attachment already stored in db and filespace
- $sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
- SET comment = '" . $db->sql_escape($attach_row['comment']) . "'
+ $sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
+ SET comment = '" . $db->sql_escape($attach_row['comment']) . "'
WHERE attach_id = " . (int) $attach_row['attach_id'];
$db->sql_query($sql);
}
else
{
- // insert attachment into db
+ // insert attachment into db
$attach_sql = array(
'post_msg_id' => $data['post_id'],
'topic_id' => $data['topic_id'],
@@ -1568,7 +1571,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'thumbnail' => $attach_row['thumbnail']
);
- $sql = 'INSERT INTO ' . ATTACHMENTS_TABLE . ' ' .
+ $sql = 'INSERT INTO ' . ATTACHMENTS_TABLE . ' ' .
$db->sql_build_array('INSERT', $attach_sql);
$db->sql_query($sql);
@@ -1576,7 +1579,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$files_added++;
}
}
-
+
if (count($attach_data))
{
$sql = 'UPDATE ' . POSTS_TABLE . '
@@ -1679,7 +1682,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
}
$db->sql_transaction('commit');
-
+
// Delete draft if post was loaded...
$draft_id = request_var('draft_loaded', 0);
if ($draft_id)
@@ -1701,7 +1704,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
AND topic_id = ' . $data['topic_id'];
$db->sql_query($sql);
}
-
+
// Mark this topic as read and posted to.
$mark_mode = ($mode == 'post' || $mode == 'reply' || $mode == 'quote') ? 'post' : 'topic';
markread($mark_mode, $data['forum_id'], $data['topic_id'], $data['post_time']);
diff --git a/phpBB/search.php b/phpBB/search.php
index 58952abe21..8a87809f4b 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -21,35 +21,33 @@ define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx);
-include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
-
-// Define initial vars
-$mode = (isset($_REQUEST['mode'])) ? $_REQUEST['mode'] : false;
-$search_id = (isset($_REQUEST['search_id'])) ? htmlspecialchars($_REQUEST['search_id']) : false;
-$start = (isset($_REQUEST['start'])) ? intval($_REQUEST['start']) : 0;
-$post_id = (isset($_GET['p'])) ? max(intval($_GET['p']), 0) : 0;
-$view = (isset($_GET['view'])) ? htmlspecialchars($_GET['view']) : false;
-
-$search_keywords = (!empty($_REQUEST['search_keywords'])) ? $_REQUEST['search_keywords'] : false;
-$search_author = (!empty($_REQUEST['search_author'])) ? htmlspecialchars($_REQUEST['search_author']) : false;
-$show_results = (isset($_REQUEST['show_results'])) ? htmlspecialchars($_REQUEST['show_results']) : 'posts';
-$search_terms = (isset($_REQUEST['search_terms'])) ? (($_REQUEST['search_terms'] == 'all') ? 1 : 0) : 1;
-$search_fields = (isset($_REQUEST['search_fields'])) ? $_REQUEST['search_fields'] : 'all';
-$search_child = (!empty($_REQUEST['search_child'])) ? true : false;
-
-$return_chars = (isset($_REQUEST['return_chars'])) ? intval($_REQUEST['return_chars']) : 200;
-$search_forum = (!empty($_GET['f'])) ? array(intval($_GET['f'])) : ((isset($_REQUEST['search_forum'])) ? array_map('intval', $_REQUEST['search_forum']) : array());
-$search_time = (isset($_REQUEST['search_time'])) ? (time() - intval($_REQUEST['search_time'])) * 86400 : 0;
-
-$sort_days = (!empty($_REQUEST['st'])) ? intval($_REQUEST['st']) : 0;
-$sort_key = (!empty($_REQUEST['sk'])) ? htmlspecialchars($_REQUEST['sk']) : 't';
-$sort_dir = (!empty($_REQUEST['sd'])) ? htmlspecialchars($_REQUEST['sd']) : 'd';
// Start session management
$user->start();
$auth->acl($user->data);
$user->setup('search');
+// Define initial vars
+$mode = request_var('mode', '');
+$search_id = request_var('search_id', '');
+$start = request_var('start', 0);
+$post_id = request_var('p', 0);
+$view = request_var('view', '');
+
+$search_keywords = request_var('search_keywords', '');
+$search_author = request_var('search_author', '');
+$show_results = request_var('show_results', 'posts');
+$search_terms = request_var('search_terms', 'all');
+$search_fields = request_var('search_fields', 'all');
+$search_child = request_var('search_child', true);
+
+$return_chars = request_var('return_chars', 200);
+$search_forum = request_var('f', 0);
+
+$sort_days = request_var('st', 0);
+$sort_key = request_var('sk', 't');
+$sort_dir = request_var('sd', 'd');
+
// Is user able to search? Has search been disabled?
if (!$auth->acl_get('u_search') || !$config['load_search'])
{
@@ -100,11 +98,9 @@ if ($search_keywords || $search_author || $search_id)
$sql_forums = array();
while ($row = $db->sql_fetchrow($result))
{
-// echo "<br />" . $row['forum_id'] . " -> " . $row['forum_name'] . " :: " . $auth->acl_get('f_read', $row['forum_id']) . " && " . ((!$row['forum_password'] || $row['user_id'] == $user->data['user_id']));
-
if ($search_child)
{
- if (in_array($row['forum_id'], $search_forum) && $row['right_id'] > $right_id)
+ if (!$search_forum || (in_array($row['forum_id'], $search_forum) && $row['right_id'] > $right_id))
{
$right_id = $row['right_id'];
}
@@ -320,13 +316,15 @@ if ($search_keywords || $search_author || $search_id)
}
- if ($search_keywords && sizeof($split_words) && array_diff($split_words, $old_split_words))
+ if (sizeof($split_words) && array_diff($split_words, $old_split_words))
{
+
+
// This "entire" section may be switched out to allow for alternative search systems
// such as that built-in to MySQL, MSSQL, etc. or external solutions which provide
// an appropriate API
- $bool = ($search_terms) ? 'AND' : 'OR';
+ $bool = ($search_terms == 'all') ? 'AND' : 'OR';
$sql_words = '';
foreach ($split_words as $word)
{
@@ -342,8 +340,9 @@ if ($search_keywords || $search_author || $search_id)
$bool = 'OR';
continue;
default:
+ $bool = ($search_terms != 'all') ? 'OR' : $bool;
$sql_words[$bool][] = "'" . preg_replace('#\*+#', '%', trim($word)) . "'";
- $bool = ($search_terms) ? 'AND' : 'OR';
+ $bool = ($search_terms == 'all') ? 'AND' : 'OR';
}
}
@@ -455,7 +454,7 @@ if ($search_keywords || $search_author || $search_id)
$sql_author
$sql_and
$sql_time
- $sql_match
+ $sql_match
$sql_find_in";
$result = $db->sql_query($sql);
@@ -486,6 +485,8 @@ if ($search_keywords || $search_author || $search_id)
$post_id_ary = array_unique($post_id_ary);
+
+
if (!sizeof($post_id_ary))
{
trigger_error($user->lang['NO_SEARCH_RESULTS']);
@@ -579,6 +580,8 @@ if ($search_keywords || $search_author || $search_id)
unset($data);
}
+ // Include the bbcode parser
+ include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
// Look up data ...
$per_page = ($show_results == 'posts') ? $config['posts_per_page'] : $config['topics_per_page'];
@@ -598,8 +601,8 @@ if ($search_keywords || $search_author || $search_id)
$template->assign_vars(array(
'SEARCH_MATCHES' => $l_search_matches,
'SEARCH_WORDS' => $split_words,
- 'IGNORED_WORDS' => ($ignored_words) ? $ignored_words : 'No words',
- 'PAGINATION' => generate_pagination("search.$phpEx$SID&amp;search_id=$search_id&amp;sk=$sort_key&amp;sd=$sort_dir&amp;st=$sort_days", $total_match_count, $per_page, $start),
+ 'IGNORED_WORDS' => ($ignored_words) ? $ignored_words : $user->lang['NO_IGNORE_WORDS'],
+ 'PAGINATION' => generate_pagination("search.$phpEx$SID&amp;search_id=$search_id&amp;hilit=$hilit&amp;sk=$sort_key&amp;sd=$sort_dir&amp;st=$sort_days", $total_match_count, $per_page, $start),
'PAGE_NUMBER' => on_page($total_match_count, $start),
'S_SELECT_SORT_DIR' => $s_sort_dir,
diff --git a/phpBB/styles/subSilver/template/login_body.html b/phpBB/styles/subSilver/template/login_body.html
index 888e3907df..58734462dd 100644
--- a/phpBB/styles/subSilver/template/login_body.html
+++ b/phpBB/styles/subSilver/template/login_body.html
@@ -5,7 +5,7 @@
<form action="{S_LOGIN_ACTION}" method="post">
<table class="tablebg" width="100%" cellspacing="1">
- <tr>
+ <tr>
<th colspan="2">{L_LOGIN}</th>
</tr>
<!-- IF LOGIN_EXPLAIN -->
@@ -13,7 +13,7 @@
<td class="row3" colspan="2" align="center"><span class="gensmall">{LOGIN_EXPLAIN}</td>
</tr>
<!-- ENDIF -->
- <tr>
+ <tr>
<td class="row1" width="50%">
<p class="genmed">{L_LOGIN_INFO}</p>
@@ -27,15 +27,16 @@
</tr>
<!-- ENDIF -->
- <tr>
+ <tr>
<td><b class="gensmall">{L_USERNAME}:</b></td>
<td><input class="post" type="text" name="username" size="25" maxlength="40" value="{USERNAME}" tabindex="1" /><br /><a class="gensmall" href="{U_REGISTER}">{L_REGISTER}</a></td>
</tr>
- <tr>
+ <tr>
<td><b class="gensmall">{L_PASSWORD}:</b></td>
<td><input class="post" type="password" name="password" size="25" maxlength="25" tabindex="2" /><br /><a class="gensmall" href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></td>
</tr>
- <tr>
+ <!-- IF S_DISPLAY_FULL_LOGIN -->
+ <tr>
<td>&nbsp;</td>
<td><input type="checkbox" name="autologin" tabindex="4" /> <span class="gensmall">{L_LOG_ME_IN}</span></td>
</tr>
@@ -43,9 +44,10 @@
<td>&nbsp;</td>
<td><input type="checkbox" name="viewonline" tabindex="5" /> <span class="gensmall">{L_HIDE_ME}</span></td>
</tr>
+ <!-- ENDIF -->
</table></td>
</tr>
- <tr>
+ <tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="btnmain" value="{L_LOGIN}" tabindex="3" /></td>
</tr>
</table></form>
diff --git a/phpBB/styles/subSilver/template/memberlist_body.html b/phpBB/styles/subSilver/template/memberlist_body.html
index c4ba3fdb3b..e13f8bfc95 100644
--- a/phpBB/styles/subSilver/template/memberlist_body.html
+++ b/phpBB/styles/subSilver/template/memberlist_body.html
@@ -4,10 +4,10 @@
<div id="pagecontent">
-<!-- You should retain this javascript in your own template! -->
-
<!-- IF S_SEARCH_USER --><!-- INCLUDE memberlist_search.html --><!-- ENDIF -->
+<!-- IF S_SHOW_GROUP --><!-- INCLUDE memberlist_group.html --><!-- ENDIF -->
+
<!-- IF S_SEARCH_USER -->
<form method="post" name="results" action="{S_MODE_ACTION}" onsubmit="insert_marked(this.user);return false">
<!-- ELSEIF U_FIND_MEMBER-->
@@ -41,7 +41,7 @@
<!-- ENDIF -->
<td class="gen" align="center">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</td>
- <td class="gen" align="center"><a href="{memberrow.U_VIEWPROFILE}"><!-- IF memberrow.USER_COLOR --><b style="color:{memberrow.USER_COLOR}"><!-- ELSE --><b><!-- ENDIF -->{memberrow.USERNAME}</b></a></td>
+ <td class="gen" align="center"><strong><a<!-- IF memberrow.USER_COLOR --> style="color:#{memberrow.USER_COLOR}"<!-- ENDIF --> href="{memberrow.U_VIEWPROFILE}">{memberrow.USERNAME}</a></strong></td>
<td class="gensmall" align="center" nowrap="nowrap">&nbsp;{memberrow.JOINED}&nbsp;</td>
<td class="gen" align="center">{memberrow.POSTS}</td>
<td class="gen" align="center">{memberrow.RANK_IMG}</td>
diff --git a/phpBB/styles/subSilver/template/memberlist_search.html b/phpBB/styles/subSilver/template/memberlist_search.html
index 2243672dc9..244af92aad 100644
--- a/phpBB/styles/subSilver/template/memberlist_search.html
+++ b/phpBB/styles/subSilver/template/memberlist_search.html
@@ -1,4 +1,6 @@
+<!-- You should retain this javascript in your own template! -->
+
<script language="javascript" type="text/javascript">
<!--
function insert_user(user)
diff --git a/phpBB/styles/subSilver/template/memberlist_view.html b/phpBB/styles/subSilver/template/memberlist_view.html
index 68ee2c703b..452d5f3188 100644
--- a/phpBB/styles/subSilver/template/memberlist_view.html
+++ b/phpBB/styles/subSilver/template/memberlist_view.html
@@ -4,7 +4,7 @@
<div id="pagecontent">
- <table class="tablebg" width="100%" cellspacing="1">
+ <form method="post" action="{S_PROFILE_ACTION}"><table class="tablebg" width="100%" cellspacing="1">
<tr>
<th colspan="2" nowrap="nowrap">{L_VIEWING_PROFILE}</th>
</tr>
diff --git a/phpBB/styles/subSilver/template/overall_header.html b/phpBB/styles/subSilver/template/overall_header.html
index d9ad8a9abd..4b2e8f7204 100644
--- a/phpBB/styles/subSilver/template/overall_header.html
+++ b/phpBB/styles/subSilver/template/overall_header.html
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="{S_CONTENT_ENCODING}"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+<!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" dir="{S_CONTENT_DIRECTION}">
<head>
@@ -53,7 +53,7 @@ function jumpto()
<a name="top"></a>
<div id="wrapheader">
-
+
<div id="logodesc"><table width="100%" cellspacing="0">
<tr>
<td><a href="{U_INDEX}"><img src="{T_THEME_PATH}/images/sitelogo.jpg" border="0" alt="" title="" /></a></td>
diff --git a/phpBB/styles/subSilver/theme/stylesheet.css b/phpBB/styles/subSilver/theme/stylesheet.css
index ec71cb5342..f9d815ad3e 100644
--- a/phpBB/styles/subSilver/theme/stylesheet.css
+++ b/phpBB/styles/subSilver/theme/stylesheet.css
@@ -86,13 +86,16 @@ p.postapprove { margin: 1px 0px; color: green; }
/*
TABLE
*/
-th { height: 28px; color: #FFA34F; font-size: 70%; font-weight: bold; background-color: #006699; background-image: url('./images/cellpic3.gif'); white-space: nowrap; }
+th { height: 28px; color: #FFA34F; font-size: 70%; font-weight: bold; background-color: #006699; background-image: url('./images/cellpic3.gif'); white-space: nowrap; padding-left: 5px; padding-right: 5px; }
.tablebg { background-color: #A9B8C2; }
.catdiv { height: 28px; margin: 0px; padding: 0px; border: 0px; background-color: white; background-image: url('./images/cellpic2.jpg'); background-repeat: repeat-y; }
.cat { height: 28px; margin: 0px; padding: 0px; border: 0px; background-color: #C7D0D7; background-image: url('./images/cellpic1.gif'); text-indent: 4px; }
.row1 { background-color: #ECECEC; padding: 4px; }
.row2 { background-color: #DCE1E5; padding: 4px; }
-.row3 { background-color: #C7CFD7; padding: 4px; }
+.row3 { background-color: #C0C8D0; padding: 4px; }
+.rowgood { background-color: #C2D6CD; padding: 4px; }
+.rowneutral { background-color: #CAC1D7; padding: 4px; }
+.rowbad { background-color: #D7C1C3; padding: 4px; }
.spacer { background-color: #D1D7DC; }
hr { height: 1px; border-width: 0px; background-color: #D1D7DC; color: #D1D7DC }
diff --git a/phpBB/ucp.php b/phpBB/ucp.php
index 7fc520610e..867f9edc7b 100755
--- a/phpBB/ucp.php
+++ b/phpBB/ucp.php
@@ -289,13 +289,7 @@ switch ($mode)
redirect("index.$phpEx$SID");
}
- login_box("ucp.$phpEx$SID&amp;mode=login", '', '', true);
-
- $redirect = request_var('redirect', "index.$phpEx$SID");
- meta_refresh(3, $redirect);
-
- $message = $user->lang['LOGIN_REDIRECT'] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a> ');
- trigger_error($message);
+ login_box("index.$phpEx$SID");
break;
case 'logout':
@@ -304,10 +298,9 @@ switch ($mode)
$user->destroy();
}
- $redirect = (!empty($_SERVER['HTTP_REFERER'])) ? htmlspecialchars($_SERVER['HTTP_REFERER']) : "index.$phpEx$SID";
- meta_refresh(3, $redirect);
+ meta_refresh(3, "index.$phpEx$SID");
- $message = $user->lang['LOGOUT_REDIRECT'] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a> ');
+ $message = $user->lang['LOGOUT_REDIRECT'] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . "index.$phpEx$SID" . '">', '</a> ');
trigger_error($message);
break;
@@ -353,7 +346,7 @@ if ($user->data['user_id'] == ANONYMOUS || $user->data['user_type'] == USER_INAC
redirect("index.$phpEx$SID");
}
- login_box($user->cur_page, '', $user->lang['LOGIN_EXPLAIN_UCP']);
+ login_box('', $user->lang['LOGIN_EXPLAIN_UCP']);
}
diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php
index 3ab5393cd9..c0b4121a3e 100644
--- a/phpBB/viewforum.php
+++ b/phpBB/viewforum.php
@@ -109,7 +109,7 @@ if ($forum_data['forum_link'])
$db->sql_query($sql);
}
- redirect($forum_data['forum_link']);
+ redirect(str_replace('&amp;', '&', $forum_data['forum_link']));
}
// Configure style, language, etc.
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php
index bce4bb293d..9bc3819574 100644
--- a/phpBB/viewonline.php
+++ b/phpBB/viewonline.php
@@ -7,8 +7,8 @@
// STARTED : Sat Dec 16, 2000
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW : http://www.phpbb.com/
-// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
-//
+// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
+//
// -------------------------------------------------------------
define('IN_PHPBB', true);
@@ -41,7 +41,7 @@ if ($mode == 'whois')
$sql = 'SELECT u.user_id, u.username, u.user_type, s.session_ip
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . " s
- WHERE s.session_id = '$session_id'
+ WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id";
$result = $db->sql_query($sql);
@@ -83,10 +83,10 @@ $db->sql_freeresult($result);
// Get user list
-$sql = 'SELECT u.user_id, u.username, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_allow_viewonline
+$sql = 'SELECT u.user_id, u.username, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_viewonline
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
WHERE u.user_id = s.session_user_id
- AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
+ AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
ORDER BY ' . $order_by;
$result = $db->sql_query($sql);
@@ -105,7 +105,7 @@ while ($row = $db->sql_fetchrow($result))
$username = '<b style="color:#' . $row['user_colour'] . '">' . $username . '</b>';
}
- if (!$row['user_allow_viewonline'] || !$row['session_allow_viewonline'])
+ if (!$row['user_allow_viewonline'] || !$row['session_viewonline'])
{
$view_online = ($auth->acl_gets('u_viewonline')) ? true : false;
$logged_hidden_online++;
@@ -158,7 +158,7 @@ while ($row = $db->sql_fetchrow($result))
{
case 'posting':
preg_match('#mode=([a-z]+)#', $row['session_page'], $on_page);
-
+
switch ($on_page[1])
{
case 'reply':
@@ -221,12 +221,12 @@ while ($row = $db->sql_fetchrow($result))
$template->assign_block_vars($which_row, array(
'USERNAME' => $username,
'LASTUPDATE' => $user->format_date($row['session_time']),
- 'FORUM_LOCATION'=> $location,
- 'USER_IP' => ($auth->acl_get('a_')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '',
+ 'FORUM_LOCATION'=> $location,
+ 'USER_IP' => ($auth->acl_get('a_')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '',
'U_USER_PROFILE' => ($row['user_type'] <> USER_IGNORE) ? "memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=" . $row['user_id'] : '',
- 'U_USER_IP' => "viewonline.$phpEx$SID" . (($mode != 'lookup' || $row['session_id'] != $session_id) ? '&amp;mode=lookup&amp;s=' . $row['session_id'] : ''),
- 'U_WHOIS' => "viewonline.$phpEx$SID&amp;mode=whois&amp;s=" . $row['session_id'],
+ 'U_USER_IP' => "viewonline.$phpEx$SID" . (($mode != 'lookup' || $row['session_id'] != $session_id) ? '&amp;mode=lookup&amp;s=' . $row['session_id'] : ''),
+ 'U_WHOIS' => "viewonline.$phpEx$SID&amp;mode=whois&amp;s=" . $row['session_id'],
'U_FORUM_LOCATION' => $location_url)
);
@@ -266,9 +266,9 @@ unset($vars_online);
// Grab group details for legend display
-$sql = 'SELECT group_name, group_colour, group_type
- FROM ' . GROUPS_TABLE . "
- WHERE group_colour <> ''
+$sql = 'SELECT group_name, group_colour, group_type
+ FROM ' . GROUPS_TABLE . "
+ WHERE group_colour <> ''
AND group_type NOT IN (" . GROUP_HIDDEN . ', ' . GROUP_SPECIAL . ')';
$result = $db->sql_query($sql);
@@ -284,11 +284,11 @@ $db->sql_freeresult($result);
$template->assign_vars(array(
'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $logged_visible_online) . sprintf($l_h_user_s, $logged_hidden_online),
'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guests_online),
- 'LEGEND' => $legend,
+ 'LEGEND' => $legend,
'META' => '<meta http-equiv="refresh" content="60; url=viewonline.' . $phpEx . $SID . '">',
- 'U_SORT_USERNAME' => "viewonline.$phpEx$SID&amp;sk=a&amp;sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_UPDATED' => "viewonline.$phpEx$SID&amp;sk=b&amp;sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_USERNAME' => "viewonline.$phpEx$SID&amp;sk=a&amp;sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_UPDATED' => "viewonline.$phpEx$SID&amp;sk=b&amp;sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
'U_SORT_LOCATION' => "viewonline.$phpEx$SID&amp;sk=c&amp;sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'))
);
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 56e4bf2a22..7072b7794e 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -258,7 +258,7 @@ if (!$auth->acl_get('f_read', $forum_id))
trigger_error($user->lang['SORRY_AUTH_READ']);
}
- login_box($user->cur_page, '', $user->lang['LOGIN_VIEWTOPIC']);
+ login_box('', $user->lang['LOGIN_VIEWFORUM']);
}
// Forum is passworded ... check whether access has been granted to this