- added confirm box to ucp zebra (adding fried/foe)

- permission fixes for conversions
- use more appropiate error message within convertor if source tables could not be found
- other tiny fixes


git-svn-id: file:///svn/phpbb/trunk@6925 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2007-01-24 11:29:56 +00:00
parent 180a5a243d
commit 9e5c25504e
17 changed files with 233 additions and 177 deletions

View file

@ -40,17 +40,23 @@ class acp_ban
$ban_reason = request_var('banreason', '', true); $ban_reason = request_var('banreason', '', true);
$ban_give_reason = request_var('bangivereason', '', true); $ban_give_reason = request_var('bangivereason', '', true);
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason); if ($ban)
{
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action)); trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
}
} }
else if ($unbansubmit) else if ($unbansubmit)
{ {
$ban = request_var('unban', array('')); $ban = request_var('unban', array(''));
user_unban($mode, $ban); if ($ban)
{
user_unban($mode, $ban);
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action)); trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . adm_back_link($this->u_action));
}
} }
// Define language vars // Define language vars

View file

@ -320,7 +320,16 @@ class acp_language
} }
$transfer->rename($lang_path . $file, $lang_path . $file . '.bak'); $transfer->rename($lang_path . $file, $lang_path . $file . '.bak');
$transfer->copy_file('store/' . $lang_path . $file, $lang_path . $file); $result = $transfer->copy_file('store/' . $lang_path . $file, $lang_path . $file);
if ($result === false)
{
// If failed, try to rename again and print error out...
$transfer->rename($lang_path . $file . '.bak', $lang_path . $file);
trigger_error($user->lang['UPLOAD_FAILED'] . adm_back_link($this->u_action . '&action=details&id=' . $lang_id . '&language_file=' . urlencode($selected_lang_file)), E_USER_WARNING);
}
$transfer->close_session(); $transfer->close_session();
// Remove from storage folder // Remove from storage folder

View file

@ -445,7 +445,7 @@ class p_master
} }
// Add url_extra parameter to u_action url // Add url_extra parameter to u_action url
if ($this->module_ary[$this->active_module_row_id]['url_extra']) if (!empty($this->module_ary) && $this->active_module !== false && $this->module_ary[$this->active_module_row_id]['url_extra'])
{ {
$this->module->u_action .= $this->module_ary[$this->active_module_row_id]['url_extra']; $this->module->u_action .= $this->module_ary[$this->active_module_row_id]['url_extra'];
} }

View file

@ -32,8 +32,8 @@ class transfer
{ {
global $phpbb_root_path; global $phpbb_root_path;
$this->file_perms = 644; $this->file_perms = '0644';
$this->dir_perms = 777; $this->dir_perms = '0777';
// We use the store directory as temporary path to circumvent open basedir restrictions // We use the store directory as temporary path to circumvent open basedir restrictions
$this->tmp_path = $phpbb_root_path . 'store/'; $this->tmp_path = $phpbb_root_path . 'store/';
@ -382,7 +382,7 @@ class ftp extends transfer
} }
else else
{ {
$chmod_cmd = 'CHMOD 0' . $perms . ' ' . $file; $chmod_cmd = 'CHMOD ' . $perms . ' ' . $file;
$err = $this->_site($chmod_cmd); $err = $this->_site($chmod_cmd);
} }

View file

@ -50,8 +50,8 @@ class filespec
$this->filename = $upload_ary['tmp_name']; $this->filename = $upload_ary['tmp_name'];
$this->filesize = $upload_ary['size']; $this->filesize = $upload_ary['size'];
$this->realname = $this->uploadname = trim(htmlspecialchars(basename($upload_ary['name']))); $name = trim(htmlspecialchars(basename($upload_ary['name'])));
$this->mimetype = $upload_ary['type']; $this->realname = $this->uploadname = (STRIP) ? stripslashes($name) : $name;
// Opera adds the name to the mime type // Opera adds the name to the mime type
$this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype; $this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;

View file

@ -825,6 +825,9 @@ function user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reas
AND ban_exclude = $ban_exclude"; AND ban_exclude = $ban_exclude";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
// Reset $sql_where, because we use it later...
$sql_where = '';
if ($row = $db->sql_fetchrow($result)) if ($row = $db->sql_fetchrow($result))
{ {
$banlist_ary_tmp = array(); $banlist_ary_tmp = array();

View file

@ -43,17 +43,23 @@ class mcp_ban
$ban_reason = request_var('banreason', '', true); $ban_reason = request_var('banreason', '', true);
$ban_give_reason = request_var('bangivereason', '', true); $ban_give_reason = request_var('bangivereason', '', true);
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason); if ($ban)
{
user_ban($mode, $ban, $ban_len, $ban_len_other, $ban_exclude, $ban_reason, $ban_give_reason);
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>'); trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>');
}
} }
else if ($unbansubmit) else if ($unbansubmit)
{ {
$ban = request_var('unban', array('')); $ban = request_var('unban', array(''));
user_unban($mode, $ban); if ($ban)
{
user_unban($mode, $ban);
trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>'); trigger_error($user->lang['BAN_UPDATE_SUCCESSFUL'] . '<br /><br /><a href="' . $this->u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>');
}
} }
// Ban length options // Ban length options

View file

@ -40,159 +40,174 @@ class ucp_zebra
$data[$var] = request_var($var, $default, true); $data[$var] = request_var($var, $default, true);
} }
if ($data['add']) if (!empty($data['add']) || sizeof($data['usernames']))
{ {
$data['add'] = array_map('trim', array_map('utf8_clean_string', explode("\n", $data['add']))); if (confirm_box(true))
// Do these name/s exist on a list already? If so, ignore ... we could be
// 'nice' and automatically handle names added to one list present on
// the other (by removing the existing one) ... but I have a feeling this
// may lead to complaints
$sql = 'SELECT z.*, u.username, u.username_clean
FROM ' . ZEBRA_TABLE . ' z, ' . USERS_TABLE . ' u
WHERE z.user_id = ' . $user->data['user_id'] . '
AND u.user_id = z.zebra_id';
$result = $db->sql_query($sql);
$friends = $foes = array();
while ($row = $db->sql_fetchrow($result))
{ {
if ($row['friend']) if ($data['add'])
{ {
$friends[] = utf8_clean_string($row['username']); $data['add'] = array_map('trim', array_map('utf8_clean_string', explode("\n", $data['add'])));
// Do these name/s exist on a list already? If so, ignore ... we could be
// 'nice' and automatically handle names added to one list present on
// the other (by removing the existing one) ... but I have a feeling this
// may lead to complaints
$sql = 'SELECT z.*, u.username, u.username_clean
FROM ' . ZEBRA_TABLE . ' z, ' . USERS_TABLE . ' u
WHERE z.user_id = ' . $user->data['user_id'] . '
AND u.user_id = z.zebra_id';
$result = $db->sql_query($sql);
$friends = $foes = array();
while ($row = $db->sql_fetchrow($result))
{
if ($row['friend'])
{
$friends[] = utf8_clean_string($row['username']);
}
else
{
$foes[] = utf8_clean_string($row['username']);
}
}
$db->sql_freeresult($result);
// remove friends from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], $friends);
if (sizeof($data['add']) < $n && $mode == 'foes')
{
$error[] = $user->lang['NOT_ADDED_FOES_FRIENDS'];
}
// remove foes from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], $foes);
if (sizeof($data['add']) < $n && $mode == 'friends')
{
$error[] = $user->lang['NOT_ADDED_FRIENDS_FOES'];
}
// remove the user himself from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], array(utf8_clean_string($user->data['username'])));
if (sizeof($data['add']) < $n)
{
$error[] = $user->lang['NOT_ADDED_' . $l_mode . '_SELF'];
}
unset($friends, $foes, $n);
if (sizeof($data['add']))
{
$sql = 'SELECT user_id, user_type
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('username_clean', $data['add']) . '
AND user_type <> ' . USER_INACTIVE;
$result = $db->sql_query($sql);
$user_id_ary = array();
while ($row = $db->sql_fetchrow($result))
{
if ($row['user_id'] != ANONYMOUS && $row['user_type'] != USER_IGNORE)
{
$user_id_ary[] = $row['user_id'];
}
else
{
$error[] = $user->lang['NOT_ADDED_' . $l_mode . '_ANONYMOUS'];
}
}
$db->sql_freeresult($result);
if (sizeof($user_id_ary))
{
// Remove users from foe list if they are admins or moderators
if ($mode == 'foes')
{
$perms = array();
foreach ($auth->acl_get_list($user_id_ary, array('a_', 'm_')) as $forum_id => $forum_ary)
{
foreach ($forum_ary as $auth_option => $user_ary)
{
$perms = array_merge($perms, $user_ary);
}
}
$perms = array_unique($perms);
if (sizeof($perms))
{
$error[] = $user->lang['NOT_ADDED_FOES_MOD_ADMIN'];
}
// This may not be right ... it may yield true when perms equate to deny
$user_id_ary = array_diff($user_id_ary, $perms);
unset($perms);
}
if (sizeof($user_id_ary))
{
$sql_mode = ($mode == 'friends') ? 'friend' : 'foe';
$sql_ary = array();
foreach ($user_id_ary as $zebra_id)
{
$sql_ary[] = array(
'user_id' => $user->data['user_id'],
'zebra_id' => (int) $zebra_id,
$sql_mode => 1
);
}
$db->sql_multi_insert(ZEBRA_TABLE, $sql_ary);
$updated = true;
}
unset($user_id_ary);
}
else if (!sizeof($error))
{
$error[] = $user->lang['USER_NOT_FOUND_OR_INACTIVE'];
}
}
}
else if (sizeof($data['usernames']))
{
// Force integer values
$data['usernames'] = array_map('intval', $data['usernames']);
$sql = 'DELETE FROM ' . ZEBRA_TABLE . '
WHERE user_id = ' . $user->data['user_id'] . '
AND ' . $db->sql_in_set('zebra_id', $data['usernames']);
$db->sql_query($sql);
$updated = true;
}
if ($updated)
{
meta_refresh(3, $this->u_action);
$message = $user->lang[$l_mode . '_UPDATED'] . '<br />' . implode('<br />', $error) . ((sizeof($error)) ? '<br />' : '') . '<br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
trigger_error($message);
} }
else else
{ {
$foes[] = utf8_clean_string($row['username']); $template->assign_var('ERROR', implode('<br />', $error));
} }
} }
$db->sql_freeresult($result); else
// remove friends from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], $friends);
if (sizeof($data['add']) < $n && $mode == 'foes')
{ {
$error[] = $user->lang['NOT_ADDED_FOES_FRIENDS']; confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
'mode' => $mode,
'submit' => true,
'usernames' => $data['usernames'],
'add' => $data['add']))
);
} }
// remove foes from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], $foes);
if (sizeof($data['add']) < $n && $mode == 'friends')
{
$error[] = $user->lang['NOT_ADDED_FRIENDS_FOES'];
}
// remove the user himself from the username array
$n = sizeof($data['add']);
$data['add'] = array_diff($data['add'], array(utf8_clean_string($user->data['username'])));
if (sizeof($data['add']) < $n)
{
$error[] = $user->lang['NOT_ADDED_' . $l_mode . '_SELF'];
}
unset($friends, $foes, $n);
if (sizeof($data['add']))
{
$sql = 'SELECT user_id, user_type
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('username_clean', $data['add']) . '
AND user_type <> ' . USER_INACTIVE;
$result = $db->sql_query($sql);
$user_id_ary = array();
while ($row = $db->sql_fetchrow($result))
{
if ($row['user_id'] != ANONYMOUS && $row['user_type'] != USER_IGNORE)
{
$user_id_ary[] = $row['user_id'];
}
else
{
$error[] = $user->lang['NOT_ADDED_' . $l_mode . '_ANONYMOUS'];
}
}
$db->sql_freeresult($result);
if (sizeof($user_id_ary))
{
// Remove users from foe list if they are admins or moderators
if ($mode == 'foes')
{
$perms = array();
foreach ($auth->acl_get_list($user_id_ary, array('a_', 'm_')) as $forum_id => $forum_ary)
{
foreach ($forum_ary as $auth_option => $user_ary)
{
$perms = array_merge($perms, $user_ary);
}
}
$perms = array_unique($perms);
if (sizeof($perms))
{
$error[] = $user->lang['NOT_ADDED_FOES_MOD_ADMIN'];
}
// This may not be right ... it may yield true when perms equate to deny
$user_id_ary = array_diff($user_id_ary, $perms);
unset($perms);
}
if (sizeof($user_id_ary))
{
$sql_mode = ($mode == 'friends') ? 'friend' : 'foe';
$sql_ary = array();
foreach ($user_id_ary as $zebra_id)
{
$sql_ary[] = array(
'user_id' => $user->data['user_id'],
'zebra_id' => (int) $zebra_id,
$sql_mode => 1
);
}
$db->sql_multi_insert(ZEBRA_TABLE, $sql_ary);
$updated = true;
}
unset($user_id_ary);
}
else if (!sizeof($error))
{
$error[] = $user->lang['USER_NOT_FOUND_OR_INACTIVE'];
}
}
}
else if (sizeof($data['usernames']))
{
// Force integer values
$data['usernames'] = array_map('intval', $data['usernames']);
$sql = 'DELETE FROM ' . ZEBRA_TABLE . '
WHERE user_id = ' . $user->data['user_id'] . '
AND ' . $db->sql_in_set('zebra_id', $data['usernames']);
$db->sql_query($sql);
$updated = true;
}
if ($updated)
{
meta_refresh(3, $this->u_action);
$message = $user->lang[$l_mode . '_UPDATED'] . '<br />' . implode('<br />', $error) . ((sizeof($error)) ? '<br />' : '') . '<br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
trigger_error($message);
}
else
{
$template->assign_var('ERROR', implode('<br />', $error));
} }
} }

View file

@ -390,7 +390,7 @@ function phpbb_get_birthday($birthday = '')
$day = substr($birthday, 2, 2); $day = substr($birthday, 2, 2);
$year = substr($birthday, -4); $year = substr($birthday, -4);
return sprintf('%02d-%02d-%04d', $day, $month, $year); return sprintf('%2d-%2d-%4d', $day, $month, $year);
} }
else else
{ {
@ -656,6 +656,13 @@ function phpbb_convert_authentication($mode)
$auth_sql .= ', {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1'; $auth_sql .= ', {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
user_group_auth('administrators', $auth_sql); user_group_auth('administrators', $auth_sql);
// Put administrators into global moderators group too...
$auth_sql = 'SELECT ';
$auth_sql .= (!empty($config['increment_user_id'])) ? 'user_id + 1 as user_id' : 'user_id';
$auth_sql .= ', {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
user_group_auth('global_moderators', $auth_sql);
} }
else if ($mode == 'first') else if ($mode == 'first')
{ {
@ -801,16 +808,24 @@ function phpbb_convert_authentication($mode)
} }
else if ($mode == 'second') else if ($mode == 'second')
{ {
// Assign permission roles // Assign permission roles and other default permissions
// By default all converted administrators are given full access // guests having u_download and u_search ability
// @todo Review the implications of this - we might want to remove access to clear logs, view phpinfo, etc $db->sql_query('INSERT INTO ' . ACL_GROUPS_TABLE . ' (group_id, forum_id, auth_option_id, auth_role_id, auth_setting) SELECT ' . get_group_id('guests') . ', 0, auth_option_id, 0, 1 FROM ' . ACL_OPTIONS_TABLE . " WHERE auth_option IN ('u_', 'u_download', 'u_search')");
mass_auth('group_role', 0, 'administrators', 'ADMIN_FULL');
mass_auth('group_role', 0, 'administrators', 'MOD_FULL'); // administrators/global mods having full user features
mass_auth('group_role', 0, 'administrators', 'USER_FULL'); mass_auth('group_role', 0, 'administrators', 'USER_FULL');
mass_auth('group_role', 0, 'global_moderators', 'USER_FULL');
// By default all converted administrators are given standard access (the founder still have full access)
mass_auth('group_role', 0, 'administrators', 'ADMIN_STANDARD');
// All registered users are assigned the standard user role // All registered users are assigned the standard user role
mass_auth('group_role', 0, 'registered', 'USER_STANDARD'); mass_auth('group_role', 0, 'registered', 'USER_STANDARD');
mass_auth('group_role', 0, 'registered_coppa', 'USER_STANDARD');
// Instead of administrators being global moderators we give the MOD_FULL role to global mods (admins already assigned to this group)
mass_auth('group_role', 0, 'global_moderators', 'MOD_FULL');
// And now those who have had their avatar rights removed get assigned a more restrictive role // And now those who have had their avatar rights removed get assigned a more restrictive role
$sql = 'SELECT user_id FROM ' . $convert->src_table_prefix . 'users $sql = 'SELECT user_id FROM ' . $convert->src_table_prefix . 'users

View file

@ -139,7 +139,7 @@ class install_convert extends module
// Let's see if there is a conversion in the works... // Let's see if there is a conversion in the works...
$options = array(); $options = array();
if (isset($config['convert_progress'])) if (!empty($config['convert_progress']) && !empty($config['convert_options']))
{ {
$options = unserialize($config['convert_progress']); $options = unserialize($config['convert_progress']);
$options = array_merge($options, unserialize($config['convert_options'])); $options = array_merge($options, unserialize($config['convert_options']));

View file

@ -202,7 +202,6 @@ $lang = array_merge($lang, array(
'COLOUR_SWATCH' => 'Web-safe colour swatch', 'COLOUR_SWATCH' => 'Web-safe colour swatch',
'CONFIG_UPDATED' => 'Configuration updated successfully.', 'CONFIG_UPDATED' => 'Configuration updated successfully.',
'CONFIRM_OPERATION' => 'Are you sure you wish to carry out this operation?',
'DEACTIVATE' => 'Deactivate', 'DEACTIVATE' => 'Deactivate',
'DIMENSIONS' => 'Dimensions', 'DIMENSIONS' => 'Dimensions',

View file

@ -41,7 +41,7 @@ $lang = array_merge($lang, array(
'GROUPS_NO_MEMBERS' => 'This group has no members', 'GROUPS_NO_MEMBERS' => 'This group has no members',
'GROUPS_NO_MODS' => 'No group leaders defined', 'GROUPS_NO_MODS' => 'No group leaders defined',
'GROUP_APPROVE' => 'Approve', 'GROUP_APPROVE' => 'Approve member',
'GROUP_APPROVED' => 'Approved members', 'GROUP_APPROVED' => 'Approved members',
'GROUP_AVATAR' => 'Group avatar', 'GROUP_AVATAR' => 'Group avatar',
'GROUP_AVATAR_EXPLAIN' => 'This image will be displayed in the Group Control Panel.', 'GROUP_AVATAR_EXPLAIN' => 'This image will be displayed in the Group Control Panel.',
@ -49,11 +49,11 @@ $lang = array_merge($lang, array(
'GROUP_COLOR' => 'Group colour', 'GROUP_COLOR' => 'Group colour',
'GROUP_COLOR_EXPLAIN' => 'Defines the colour members usernames will appear in, leave blank for user default.', 'GROUP_COLOR_EXPLAIN' => 'Defines the colour members usernames will appear in, leave blank for user default.',
'GROUP_CREATED' => 'Group has been created successfully.', 'GROUP_CREATED' => 'Group has been created successfully.',
'GROUP_DEFAULT' => 'Default', 'GROUP_DEFAULT' => 'Make group default for member',
'GROUP_DEFS_UPDATED' => 'Default group set for all selected members.', 'GROUP_DEFS_UPDATED' => 'Default group set for all selected members.',
'GROUP_DELETE' => 'Delete', 'GROUP_DELETE' => 'Remove member from group',
'GROUP_DELETED' => 'Group deleted and user default groups set successfully.', 'GROUP_DELETED' => 'Group deleted and user default groups set successfully.',
'GROUP_DEMOTE' => 'Demote', 'GROUP_DEMOTE' => 'Demote group leader',
'GROUP_DESC' => 'Group description', 'GROUP_DESC' => 'Group description',
'GROUP_DETAILS' => 'Group details', 'GROUP_DETAILS' => 'Group details',
'GROUP_DST' => 'Group daylight savings', 'GROUP_DST' => 'Group daylight savings',
@ -78,7 +78,7 @@ $lang = array_merge($lang, array(
'GROUP_NAME' => 'Group name', 'GROUP_NAME' => 'Group name',
'GROUP_OPEN' => 'Open', 'GROUP_OPEN' => 'Open',
'GROUP_PENDING' => 'Pending members', 'GROUP_PENDING' => 'Pending members',
'GROUP_PROMOTE' => 'Promote', 'GROUP_PROMOTE' => 'Promote to group leader',
'GROUP_RANK' => 'Group rank', 'GROUP_RANK' => 'Group rank',
'GROUP_RECEIVE_PM' => 'Group able to receive private messages', 'GROUP_RECEIVE_PM' => 'Group able to receive private messages',
'GROUP_REQUEST' => 'Request', 'GROUP_REQUEST' => 'Request',

View file

@ -87,6 +87,7 @@ $lang = array_merge($lang, array(
'UNABLE_TO_WRITE_FILE' => 'The file could not be written to %s.', 'UNABLE_TO_WRITE_FILE' => 'The file could not be written to %s.',
'UPLOAD_COMPLETED' => 'The upload was completed successfully.', 'UPLOAD_COMPLETED' => 'The upload was completed successfully.',
'UPLOAD_FAILED' => 'The upload failed for unkown reasons. You may need to replace the relevant file manually.',
'UPLOAD_METHOD' => 'Upload method', 'UPLOAD_METHOD' => 'Upload method',
'UPLOAD_SETTINGS' => 'Upload settings', 'UPLOAD_SETTINGS' => 'Upload settings',

View file

@ -58,10 +58,11 @@ $lang = array_merge($lang, array(
'FOUNDER' => 'Founder', 'FOUNDER' => 'Founder',
'FOUNDER_EXPLAIN' => 'Founders have all admin permissions and can never be banned, deleted or altered by non-founder members', 'FOUNDER_EXPLAIN' => 'Founders have all admin permissions and can never be banned, deleted or altered by non-founder members',
'GROUP_DEFAULT' => 'Default', 'GROUP_APPROVE' => 'Approve member',
'GROUP_DELETE' => 'Delete', 'GROUP_DEFAULT' => 'Make group default for member',
'GROUP_DEMOTE' => 'Demote', 'GROUP_DELETE' => 'Remove member from group',
'GROUP_PROMOTE' => 'Promote', 'GROUP_DEMOTE' => 'Demote group leader',
'GROUP_PROMOTE' => 'Promote to group leader',
'IP_WHOIS_FOR' => 'IP whois for %s', 'IP_WHOIS_FOR' => 'IP whois for %s',

View file

@ -110,6 +110,7 @@ $lang = array_merge($lang, array(
'CONFIRM_CODE' => 'Confirmation code', 'CONFIRM_CODE' => 'Confirmation code',
'CONFIRM_CODE_EXPLAIN' => 'Enter the code exactly as you see it in the image, it is case insensitive. Please note that a zero does not exist.', 'CONFIRM_CODE_EXPLAIN' => 'Enter the code exactly as you see it in the image, it is case insensitive. Please note that a zero does not exist.',
'CONFIRM_CODE_WRONG' => 'The confirmation code you entered was incorrect.', 'CONFIRM_CODE_WRONG' => 'The confirmation code you entered was incorrect.',
'CONFIRM_OPERATION' => 'Are you sure you wish to carry out this operation?',
'CONGRATULATIONS' => 'Congratulations to', 'CONGRATULATIONS' => 'Congratulations to',
'CONNECTION_FAILED' => 'Connection failed', 'CONNECTION_FAILED' => 'Connection failed',
'CONNECTION_SUCCESS' => 'Connection was successful!', 'CONNECTION_SUCCESS' => 'Connection was successful!',

View file

@ -123,7 +123,7 @@ $lang = array_merge($lang, array(
'DB_USERNAME' => 'Database username', 'DB_USERNAME' => 'Database username',
'DB_TEST' => 'Test connection', 'DB_TEST' => 'Test connection',
'DEFAULT_LANG' => 'Default board language', 'DEFAULT_LANG' => 'Default board language',
'DEFAULT_PREFIX_IS' => 'The default table prefix for %1$s is <strong>%2$s</strong>', 'DEFAULT_PREFIX_IS' => 'The convertor was not able to find tables with the specified prefix. Please make sure you have the old within the same database as your phpBB 3.0.x installation. The default table prefix for %1$s is <strong>%2$s</strong>',
'DEV_NO_TEST_FILE' => 'No value has been specified for the test_file variable in the convertor. If you are a user of this convertor, you should not be seeing this error, please report this message to the convertor author. If you are a convertor author, you must specify the name of a file which exists in the source forum to allow the path to it to be verified.', 'DEV_NO_TEST_FILE' => 'No value has been specified for the test_file variable in the convertor. If you are a user of this convertor, you should not be seeing this error, please report this message to the convertor author. If you are a convertor author, you must specify the name of a file which exists in the source forum to allow the path to it to be verified.',
'DIRECTORIES_AND_FILES' => 'Directory and file setup', 'DIRECTORIES_AND_FILES' => 'Directory and file setup',
'DISABLE_KEYS' => 'Disabling keys', 'DISABLE_KEYS' => 'Disabling keys',

View file

@ -518,7 +518,7 @@ switch ($mode)
'U_ADD_FRIEND' => (!$friend) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_ADD_FRIEND' => (!$friend) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '',
'U_ADD_FOE' => (!$foe) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;mode=foes&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '', 'U_ADD_FOE' => (!$foe) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;mode=foes&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '',
'U_REMOVE_FRIEND' => ($friend) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;usernames[]=' . $user_id) : '', 'U_REMOVE_FRIEND' => ($friend) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;usernames[]=' . $user_id) : '',
'U_REMOVE_FOE' => ($foe) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;usernames[]=' . $user_id) : '', 'U_REMOVE_FOE' => ($foe) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;mode=foes&amp;usernames[]=' . $user_id) : '',
)); ));
if (!empty($profile_fields['row'])) if (!empty($profile_fields['row']))