Продолжаем настраивать user_opt git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@63 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
nanosimbiot 2011-07-03 10:39:41 +00:00
commit 6ce7d0c2f4
20 changed files with 118 additions and 1850 deletions

View file

@ -1,918 +0,0 @@
<?php
// ACP Header - START
if (!empty($setmodules))
{
$module['Users']['Manage'] = basename(__FILE__);
return;
}
require('./pagestart.php');
// ACP Header - END
require(INC_DIR .'bbcode.php');
require(INC_DIR .'functions_post.php');
require(INC_DIR .'functions_selects.php');
require(INC_DIR .'functions_validate.php');
require(INC_DIR .'functions_group.php');
array_deep($_POST, 'trim');
$html_entities_match = array('#<#', '#>#');
$html_entities_replace = array('&lt;', '&gt;');
$message = $error_msg = $username_sql = '';
$group_moderator = $mark_list = array();
$mode = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : '';
function return_msg_ua ($status_msg)
{
global $lang;
$message = $status_msg;
$message .= '<br /><br />';
$message .= sprintf($lang['CLICK_RETURN_USERADMIN'], '<a href="'. append_sid("admin_users.php") .'">', '</a>');
$message .= '<br /><br />';
$message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '<a href="'. append_sid("index.php?pane=right") .'">', '</a>');
return $message;
}
//
// Begin program
//
if ( $mode == 'edit' || $mode == 'save' && ( isset($_POST['username']) || isset($_GET[POST_USERS_URL]) || isset( $_POST[POST_USERS_URL]) ) )
{
attachment_quota_settings('user', @$_POST['submit'], $mode);
//
// Ok, the profile has been modified and submitted, let's update
//
if ( ( $mode == 'save' && isset( $_POST['submit'] ) ) || isset( $_POST['avatargallery'] ) || isset( $_POST['submitavatar'] ) || isset( $_POST['cancelavatar'] ) )
{
$user_id = (int) $_POST['id'];
if (!$this_userdata = get_userdata($user_id))
{
message_die(GENERAL_MESSAGE, $lang['NO_USER_ID_SPECIFIED']);
}
if ($userdata['user_id'] != $user_id)
{
if (!empty($_POST['deleteuser']))
{
delete_user_sessions($user_id);
user_delete($user_id, !empty($_POST['delete_user_posts']));
if ($this_userdata['user_level'] == MOD)
{
$datastore->update('moderators');
}
message_die(GENERAL_MESSAGE, return_msg_ua($lang['USER_DELETED']));
}
else if (!empty($_POST['delete_user_posts']))
{
post_delete('user', $user_id);
message_die(GENERAL_MESSAGE, return_msg_ua('User posts were deleted'));
}
}
$username = ( !empty($_POST['username']) ) ? clean_username($_POST['username']) : '';
$email = ( !empty($_POST['email']) ) ? trim(strip_tags(htmlspecialchars( $_POST['email'] ) )) : '';
$password = ( !empty($_POST['password']) ) ? trim(strip_tags(htmlspecialchars( $_POST['password'] ) )) : '';
$password_confirm = ( !empty($_POST['password_confirm']) ) ? trim(strip_tags(htmlspecialchars( $_POST['password_confirm'] ) )) : '';
$icq = ( !empty($_POST['icq']) ) ? trim(strip_tags( $_POST['icq'] ) ) : '';
$website = ( !empty($_POST['website']) ) ? trim(strip_tags( $_POST['website'] ) ) : '';
$location = ( !empty($_POST['location']) ) ? trim(strip_tags( $_POST['location'] ) ) : '';
$occupation = ( !empty($_POST['occupation']) ) ? trim(strip_tags( $_POST['occupation'] ) ) : '';
$interests = ( !empty($_POST['interests']) ) ? trim(strip_tags( $_POST['interests'] ) ) : '';
$signature = ( !empty($_POST['signature']) ) ? trim(str_replace('<br />', "\n", $_POST['signature'] ) ) : '';
validate_optional_fields($icq, $website, $location, $occupation, $interests, $signature);
$allowviewonline = ( isset( $_POST['hideonline']) ) ? ( ( $_POST['hideonline'] ) ? 0 : TRUE ) : TRUE;
$notifyreply = ( isset( $_POST['notifyreply']) ) ? ( ( $_POST['notifyreply'] ) ? TRUE : 0 ) : 0;
$notifypm = ( isset( $_POST['notifypm']) ) ? ( ( $_POST['notifypm'] ) ? TRUE : 0 ) : TRUE;
$viewemail = (int) !empty($_POST['viewemail']);
$attachsig = (int) !empty($_POST['attachsig']);
$user_lang = ( $_POST['language'] != $bb_cfg['board_lang'] ) ? $_POST['language'] : '';
$user_timezone = ( isset($_POST['timezone']) ) ? str_replace(',', '.', doubleval($_POST['timezone'])) : $bb_cfg['board_timezone'];
$user_template = ( @$_POST['template'] ) ? $_POST['template'] : @$bb_cfg['board_template'];
$user_dateformat = (!empty($_POST['dateformat']) && $_POST['dateformat'] != $bb_cfg['board_dateformat']) ? $_POST['dateformat'] : '';
$user_avatar_local = ( isset( $_POST['avatarselect'] ) && !empty($_POST['submitavatar'] ) && $bb_cfg['allow_avatar_local'] ) ? $_POST['avatarselect'] : ( ( isset( $_POST['avatarlocal'] ) ) ? $_POST['avatarlocal'] : '' );
$user_avatar_category = ( isset($_POST['avatarcatname']) && $bb_cfg['allow_avatar_local'] ) ? htmlspecialchars($_POST['avatarcatname']) : '' ;
$user_avatar_remoteurl = ( !empty($_POST['avatarremoteurl']) ) ? trim( $_POST['avatarremoteurl'] ) : '';
$user_avatar_url = ( !empty($_POST['avatarurl']) ) ? trim( $_POST['avatarurl'] ) : '';
$user_avatar_loc = ( @$_FILES['avatar']['tmp_name'] != "none") ? $_FILES['avatar']['tmp_name'] : '';
$user_avatar_name = ( !empty($_FILES['avatar']['name']) ) ? $_FILES['avatar']['name'] : '';
$user_avatar_size = ( !empty($_FILES['avatar']['size']) ) ? $_FILES['avatar']['size'] : 0;
$user_avatar_filetype = ( !empty($_FILES['avatar']['type']) ) ? $_FILES['avatar']['type'] : '';
$user_avatar = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar'] : '';
$user_avatar_type = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar_type'] : '';
$user_status = ( !empty($_POST['user_status']) ) ? intval( $_POST['user_status'] ) : 0;
$user_allowpm = ( !empty($_POST['user_allowpm']) ) ? intval( $_POST['user_allowpm'] ) : 0;
$user_rank = ( !empty($_POST['user_rank']) ) ? intval( $_POST['user_rank'] ) : 0;
$user_allowavatar = ( !empty($_POST['user_allowavatar']) ) ? intval( $_POST['user_allowavatar'] ) : 0;
if( isset( $_POST['avatargallery'] ) || isset( $_POST['submitavatar'] ) || isset( $_POST['cancelavatar'] ) )
{
$username = stripslashes($username);
$email = stripslashes($email);
$password = '';
$password_confirm = '';
$icq = stripslashes($icq);
$website = htmlspecialchars(stripslashes($website));
$location = htmlspecialchars(stripslashes($location));
$occupation = htmlspecialchars(stripslashes($occupation));
$interests = htmlspecialchars(stripslashes($interests));
$signature = htmlspecialchars(stripslashes($signature));
$user_lang = stripslashes($user_lang);
$user_dateformat = htmlspecialchars(stripslashes($user_dateformat));
if ( !isset($_POST['cancelavatar']))
{
$user_avatar = $user_avatar_category . '/' . $user_avatar_local;
$user_avatar_type = USER_AVATAR_GALLERY;
}
}
}
if( isset( $_POST['submit'] ) )
{
include(INC_DIR . 'ucp/usercp_avatar.php');
$error = FALSE;
if (stripslashes($username) != $this_userdata['username'])
{
unset($rename_user);
if ( stripslashes(strtolower($username)) != strtolower($this_userdata['username']) )
{
$result = validate_username($username);
if ( $result['error'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];
}
else if ( strtolower(str_replace("\\'", "''", $username)) == strtolower($userdata['username']) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['USERNAME_TAKEN'];
}
}
if (!$error)
{
$username_sql = "username = '" . str_replace("\\'", "''", $username) . "', ";
$rename_user = $username; // Used for renaming usergroup
}
}
$passwd_sql = '';
if( !empty($password) && !empty($password_confirm) )
{
//
// Awww, the user wants to change their password, isn't that cute..
//
if($password != $password_confirm)
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['PASSWORD_MISMATCH'];
}
else
{
$password = md5($password);
$passwd_sql = "user_password = '$password', ";
}
}
else if( $password && !$password_confirm )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['PASSWORD_MISMATCH'];
}
else if( !$password && $password_confirm )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['PASSWORD_MISMATCH'];
}
if ($signature != '')
{
$sig_length_check = preg_replace('/(\[.*?)(=.*?)\]/is', '\\1]', stripslashes($signature));
if ( strlen($sig_length_check) > $bb_cfg['max_sig_chars'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['SIGNATURE_TOO_LONG'];
}
}
//
// Avatar stuff
//
$avatar_sql = "";
if( isset($_POST['avatardel']) )
{
if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" )
{
if( @file_exists(@phpbb_realpath('./../' . $bb_cfg['avatar_path'] . "/" . $this_userdata['user_avatar'])) )
{
@unlink('./../' . $bb_cfg['avatar_path'] . "/" . $this_userdata['user_avatar']);
}
}
$avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE;
}
else if( ( $user_avatar_loc != "" || !empty($user_avatar_url) ) && !$error )
{
//
// Only allow one type of upload, either a
// filename or a URL
//
if( !empty($user_avatar_loc) && !empty($user_avatar_url) )
{
$error = TRUE;
if( isset($error_msg) )
{
$error_msg .= "<br />";
}
$error_msg .= $lang['ONLY_ONE_AVATAR'];
}
if( $user_avatar_loc != "" )
{
if( file_exists(@phpbb_realpath($user_avatar_loc)) && preg_match("/\.(gif|jpg|png)$/", $user_avatar_name) )
{
if( $user_avatar_size <= $bb_cfg['avatar_filesize'] && $user_avatar_size > 0)
{
$error_type = false;
//
// Opera appends the image name after the type, not big, not clever!
//
preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_filetype, $user_avatar_filetype);
$user_avatar_filetype = $user_avatar_filetype[1];
switch( $user_avatar_filetype )
{
case "jpeg":
case "pjpeg":
case "jpg":
$imgtype = '.jpg';
break;
case "gif":
$imgtype = '.gif';
break;
case "png":
$imgtype = '.png';
break;
default:
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['AVATAR_FILETYPE'] : $lang['AVATAR_FILETYPE'];
break;
}
if( !$error )
{
list($width, $height) = @getimagesize($user_avatar_loc);
if( $width <= $bb_cfg['avatar_max_width'] && $height <= $bb_cfg['avatar_max_height'] )
{
$user_id = $this_userdata['user_id'];
$avatar_filename = $user_id . $imgtype;
if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" )
{
if( @file_exists(@phpbb_realpath("./../" . $bb_cfg['avatar_path'] . "/" . $this_userdata['user_avatar'])) )
{
@unlink("./../" . $bb_cfg['avatar_path'] . "/". $this_userdata['user_avatar']);
}
}
@copy($user_avatar_loc, "./../" . $bb_cfg['avatar_path'] . "/$avatar_filename");
$avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
}
else
{
$l_avatar_size = sprintf($lang['AVATAR_IMAGESIZE'], $bb_cfg['avatar_max_width'], $bb_cfg['avatar_max_height']);
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_avatar_size : $l_avatar_size;
}
}
}
else
{
$l_avatar_size = sprintf($lang['AVATAR_FILESIZE'], round($bb_cfg['avatar_filesize'] / 1024));
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_avatar_size : $l_avatar_size;
}
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['AVATAR_FILETYPE'] : $lang['AVATAR_FILETYPE'];
}
}
else if( !empty($user_avatar_url) )
{
//
// First check what port we should connect
// to, look for a :[xxxx]/ or, if that doesn't
// exist assume port 80 (http)
//
preg_match("/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/", $user_avatar_url, $url_ary);
if( !empty($url_ary[4]) )
{
$port = (!empty($url_ary[3])) ? $url_ary[3] : 80;
$fsock = @fsockopen($url_ary[2], $port, $errno, $errstr);
if( $fsock )
{
$base_get = "/" . $url_ary[4];
//
// Uses HTTP 1.1, could use HTTP 1.0 ...
//
@fputs($fsock, "GET $base_get HTTP/1.1\r\n");
@fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
@fputs($fsock, "Connection: close\r\n\r\n");
$avatar_data = '';
while( !@feof($fsock) )
{
$avatar_data .= @fread($fsock, $bb_cfg['avatar_filesize']);
}
@fclose($fsock);
if( preg_match("/Content-Length\: ([0-9]+)[^\/ ][\s]+/i", $avatar_data, $file_data1) && preg_match("/Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $avatar_data, $file_data2) )
{
$file_size = $file_data1[1];
$file_type = $file_data2[1];
switch( $file_type )
{
case "jpeg":
case "pjpeg":
case "jpg":
$imgtype = '.jpg';
break;
case "gif":
$imgtype = '.gif';
break;
case "png":
$imgtype = '.png';
break;
default:
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['AVATAR_FILETYPE'] : $lang['AVATAR_FILETYPE'];
break;
}
if( !$error && $file_size > 0 && $file_size < $bb_cfg['avatar_filesize'] )
{
$avatar_data = substr($avatar_data, strlen($avatar_data) - $file_size, $file_size);
$tmp_filename = tempnam ("/tmp", $this_userdata['user_id'] . "-");
$fptr = @fopen($tmp_filename, "wb");
$bytes_written = @fwrite($fptr, $avatar_data, $file_size);
@fclose($fptr);
if( $bytes_written == $file_size )
{
list($width, $height) = @getimagesize($tmp_filename);
if( $width <= $bb_cfg['avatar_max_width'] && $height <= $bb_cfg['avatar_max_height'] )
{
$user_id = $this_userdata['user_id'];
$avatar_filename = $user_id . $imgtype;
if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "")
{
if( file_exists(@phpbb_realpath("./../" . $bb_cfg['avatar_path'] . "/" . $this_userdata['user_avatar'])) )
{
@unlink("./../" . $bb_cfg['avatar_path'] . "/" . $this_userdata['user_avatar']);
}
}
@copy($tmp_filename, "./../" . $bb_cfg['avatar_path'] . "/$avatar_filename");
@unlink($tmp_filename);
$avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
}
else
{
$l_avatar_size = sprintf($lang['AVATAR_IMAGESIZE'], $bb_cfg['avatar_max_width'], $bb_cfg['avatar_max_height']);
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_avatar_size : $l_avatar_size;
}
}
else
{
//
// Error writing file
//
@unlink($tmp_filename);
message_die(GENERAL_ERROR, "Could not write avatar file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__);
}
}
}
else
{
//
// No data
//
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['FILE_NO_DATA'] : $lang['FILE_NO_DATA'];
}
}
else
{
//
// No connection
//
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['NO_CONNECTION_URL'] : $lang['NO_CONNECTION_URL'];
}
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['INCOMPLETE_URL'] : $lang['INCOMPLETE_URL'];
}
}
else if( !empty($user_avatar_name) )
{
$l_avatar_size = sprintf($lang['AVATAR_FILESIZE'], round($bb_cfg['avatar_filesize'] / 1024));
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $l_avatar_size : $l_avatar_size;
}
}
else if( $user_avatar_remoteurl != "" && $avatar_sql == "" && !$error )
{
if( !preg_match("#^http:\/\/#i", $user_avatar_remoteurl) )
{
$user_avatar_remoteurl = "http://" . $user_avatar_remoteurl;
}
if( preg_match("#^(http:\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)*[a-z]+\/.*?\.(gif|jpg|png)$)#is", $user_avatar_remoteurl) )
{
$avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_remoteurl) . "', user_avatar_type = " . USER_AVATAR_REMOTE;
}
else
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['WRONG_REMOTE_AVATAR_FORMAT'] : $lang['WRONG_REMOTE_AVATAR_FORMAT'];
}
}
else if( $user_avatar_local != "" && $avatar_sql == "" && !$error )
{
$avatar_sql = ", user_avatar = '" . str_replace("\'", "''", phpbb_ltrim(basename($user_avatar_category), "'") . '/' . phpbb_ltrim(basename($user_avatar_local), "'")) . "', user_avatar_type = " . USER_AVATAR_GALLERY;
}
//
// Update entry in DB
//
if( !$error )
{
$update_user_opt = array(
'viewemail',
);
$user_opt = $this_userdata['user_opt'];
foreach ($update_user_opt as $opt)
{
setbit($user_opt, $bf['user_opt'][$opt], !empty($_POST[$opt]));
}
$sql = "UPDATE " . BB_USERS . "
SET " . $username_sql . $passwd_sql . "
user_email = '" . str_replace("\'", "''", $email) . "',
user_icq = '" . str_replace("\'", "''", $icq) . "',
user_website = '" . str_replace("\'", "''", $website) . "',
user_occ = '" . str_replace("\'", "''", $occupation) . "',
user_from = '" . str_replace("\'", "''", $location) . "',
user_interests = '" . str_replace("\'", "''", $interests) . "',
user_sig = '" . str_replace("\'", "''", $signature) . "',
user_opt = $user_opt,
user_allow_viewonline = $allowviewonline,
user_notify = $notifyreply,
user_notify_pm = $notifypm,
user_allowavatar = $user_allowavatar,
user_allow_pm = $user_allowpm,
user_lang = '" . str_replace("\'", "''", $user_lang) . "',
user_timezone = $user_timezone,
user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "',
user_active = $user_status,
user_rank = $user_rank" . $avatar_sql . ",
user_actkey = ''
WHERE user_id = $user_id";
if( $result = DB()->sql_query($sql) )
{
// Delete user session, to prevent the user navigating the forum (if logged in) when disabled
if (!$user_status)
{
delete_user_sessions($user_id);
}
$message .= $lang['ADMIN_USER_UPDATED'];
}
else
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['ADMIN_USER_FAIL'];
}
if ($this_userdata['user_level'] == MOD)
{
$datastore->update('moderators');
}
if ($this_userdata['user_active'] != $user_status)
{
$log_action_type = (!$user_status) ? 'adm_user_ban' : 'adm_user_unban';
$log_action->admin($log_action_type, array(
'log_msg' => 'user: '. get_usernames_for_log($user_id),
));
}
$message .= '<br /><br />' . sprintf($lang['CLICK_RETURN_USERADMIN'], '<a href="' . append_sid("admin_users.php") . '">', '</a>') . '<br /><br />' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '<a href="' . append_sid("index.php?pane=right") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
else
{
$template->assign_vars(array('ERROR_MESSAGE' => $error_msg));
$username = htmlspecialchars(stripslashes($username));
$email = stripslashes($email);
$password = '';
$password_confirm = '';
$icq = stripslashes($icq);
$website = htmlspecialchars(stripslashes($website));
$location = htmlspecialchars(stripslashes($location));
$occupation = htmlspecialchars(stripslashes($occupation));
$interests = htmlspecialchars(stripslashes($interests));
$signature = htmlspecialchars(stripslashes($signature));
$user_lang = stripslashes($user_lang);
$user_dateformat = htmlspecialchars(stripslashes($user_dateformat));
}
}
else if( !isset( $_POST['submit'] ) && $mode != 'save' && !isset( $_POST['avatargallery'] ) && !isset( $_POST['submitavatar'] ) && !isset( $_POST['cancelavatar'] ) )
{
if( isset( $_GET[POST_USERS_URL]) || isset( $_POST[POST_USERS_URL]) )
{
$user_id = ( isset( $_POST[POST_USERS_URL]) ) ? intval( $_POST[POST_USERS_URL]) : intval( $_GET[POST_USERS_URL]);
$this_userdata = get_userdata($user_id);
if( !$this_userdata )
{
message_die(GENERAL_MESSAGE, $lang['NO_USER_ID_SPECIFIED'] );
}
}
else
{
$this_userdata = get_userdata($_POST['username'], true);
if( !$this_userdata )
{
message_die(GENERAL_MESSAGE, $lang['NO_USER_ID_SPECIFIED'] );
}
}
//
// Now parse and display it as a template
//
$user_id = $this_userdata['user_id'];
$username = $this_userdata['username'];
$email = $this_userdata['user_email'];
$password = '';
$password_confirm = '';
$icq = $this_userdata['user_icq'];
$website = htmlspecialchars($this_userdata['user_website']);
$location = htmlspecialchars($this_userdata['user_from']);
$occupation = htmlspecialchars($this_userdata['user_occ']);
$interests = htmlspecialchars($this_userdata['user_interests']);
$signature = preg_replace($html_entities_match, $html_entities_replace, $signature);
$viewemail = bf($this_userdata['user_opt'], 'user_opt', 'viewemail');
$notifypm = $this_userdata['user_notify_pm'];
$notifyreply = $this_userdata['user_notify'];
$attachsig = bf($this_userdata['user_opt'], 'user_opt', 'allow_sig');
$allowviewonline = $this_userdata['user_allow_viewonline'];
$user_avatar = $this_userdata['user_avatar'];
$user_avatar_type = $this_userdata['user_avatar_type'];
$user_timezone = $this_userdata['user_timezone'];
$user_lang = ($this_userdata['user_lang']) ? $this_userdata['user_lang'] : $bb_cfg['default_lang'];
$user_dateformat = ($this_userdata['user_dateformat']) ? $this_userdata['user_dateformat'] : $bb_cfg['default_dateformat'];
$user_status = $this_userdata['user_active'];
$user_allowavatar = $this_userdata['user_allowavatar'];
$user_allowpm = $this_userdata['user_allow_pm'];
$bbcode_status = ($bb_cfg['allow_bbcode']) ? $lang['BBCODE_IS_ON'] : $lang['BBCODE_IS_OFF'];
$smilies_status = ($bb_cfg['allow_smilies']) ? $lang['SMILIES_ARE_ON'] : $lang['SMILIES_ARE_OFF'];
}
if( isset($_POST['avatargallery']) && !$error )
{
if( !$error )
{
$user_id = intval($_POST['id']);
$dir = @opendir("../" . $bb_cfg['avatar_gallery_path']);
$avatar_images = array();
while( $file = @readdir($dir) )
{
if( $file != "." && $file != ".." && !is_file(phpbb_realpath("./../" . $bb_cfg['avatar_gallery_path'] . "/" . $file)) && !is_link(phpbb_realpath("./../" . $bb_cfg['avatar_gallery_path'] . "/" . $file)) )
{
$sub_dir = @opendir("../" . $bb_cfg['avatar_gallery_path'] . "/" . $file);
$avatar_row_count = 0;
$avatar_col_count = 0;
while( $sub_file = @readdir($sub_dir) )
{
if( preg_match("/(\.gif$|\.png$|\.jpg)$/is", $sub_file) )
{
$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $sub_file;
$avatar_col_count++;
if( $avatar_col_count == 5 )
{
$avatar_row_count++;
$avatar_col_count = 0;
}
}
}
}
}
@closedir($dir);
if( isset($_POST['avatarcategory']) )
{
$category = htmlspecialchars($_POST['avatarcategory']);
}
else
{
list($category, ) = each($avatar_images);
}
@reset($avatar_images);
$s_categories = "";
while( list($key) = each($avatar_images) )
{
$selected = ( $key == $category ) ? "selected=\"selected\"" : "";
if( count($avatar_images[$key]) )
{
$s_categories .= '<option value="' . $key . '"' . $selected . '>' . ucfirst($key) . '</option>';
}
}
$s_colspan = 0;
for($i = 0; $i < count($avatar_images[$category]); $i++)
{
$template->assign_block_vars("avatar_row", array());
$s_colspan = max($s_colspan, count($avatar_images[$category][$i]));
for($j = 0; $j < count($avatar_images[$category][$i]); $j++)
{
$template->assign_block_vars("avatar_row.avatar_column", array(
"AVATAR_IMAGE" => "../" . $bb_cfg['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$i][$j])
);
$template->assign_block_vars("avatar_row.avatar_option_column", array(
"S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j])
);
}
}
$s_hidden_fields = '<input type="hidden" name="mode" value="edit" /><input type="hidden" name="avatarcatname" value="' . $category . '" />';
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $user_id . '" />';
$s_hidden_fields .= '<input type="hidden" name="username" value="' . str_replace("\"", "&quot;", $username) . '" />';
$s_hidden_fields .= '<input type="hidden" name="email" value="' . str_replace("\"", "&quot;", $email) . '" />';
$s_hidden_fields .= '<input type="hidden" name="icq" value="' . str_replace("\"", "&quot;", $icq) . '" />';
$s_hidden_fields .= '<input type="hidden" name="website" value="' . str_replace("\"", "&quot;", $website) . '" />';
$s_hidden_fields .= '<input type="hidden" name="location" value="' . str_replace("\"", "&quot;", $location) . '" />';
$s_hidden_fields .= '<input type="hidden" name="occupation" value="' . str_replace("\"", "&quot;", $occupation) . '" />';
$s_hidden_fields .= '<input type="hidden" name="interests" value="' . str_replace("\"", "&quot;", $interests) . '" />';
$s_hidden_fields .= '<input type="hidden" name="signature" value="' . str_replace("\"", "&quot;", $signature) . '" />';
$s_hidden_fields .= '<input type="hidden" name="viewemail" value="' . $viewemail . '" />';
$s_hidden_fields .= '<input type="hidden" name="notifypm" value="' . $notifypm . '" />';
$s_hidden_fields .= '<input type="hidden" name="notifyreply" value="' . $notifyreply . '" />';
$s_hidden_fields .= '<input type="hidden" name="attachsig" value="' . $attachsig . '" />';
$s_hidden_fields .= '<input type="hidden" name="hideonline" value="' . !$allowviewonline . '" />';
$s_hidden_fields .= '<input type="hidden" name="language" value="' . $user_lang . '" />';
$s_hidden_fields .= '<input type="hidden" name="timezone" value="' . $user_timezone . '" />';
$s_hidden_fields .= '<input type="hidden" name="dateformat" value="' . htmlCHR($user_dateformat) . '" />';
$s_hidden_fields .= '<input type="hidden" name="user_status" value="' . $user_status . '" />';
$s_hidden_fields .= '<input type="hidden" name="user_allowpm" value="' . $user_allowpm . '" />';
$s_hidden_fields .= '<input type="hidden" name="user_allowavatar" value="' . $user_allowavatar . '" />';
$s_hidden_fields .= '<input type="hidden" name="user_rank" value="' . $user_rank . '" />';
$template->assign_vars(array(
'TPL_ADMIN_USER_AVATAR_GALLERY' => true,
"L_USER_EXPLAIN" => $lang['USER_ADMIN_EXPLAIN'],
"S_OPTIONS_CATEGORIES" => $s_categories,
"S_COLSPAN" => $s_colspan,
"S_PROFILE_ACTION" => append_sid("admin_users.php?mode=$mode"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
);
}
}
else
{
$s_hidden_fields = '<input type="hidden" name="mode" value="save" />';
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $this_userdata['user_id'] . '" />';
if( !empty($user_avatar_local) )
{
$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" /><input type="hidden" name="avatarcatname" value="' . $user_avatar_category . '" />';
}
if( $user_avatar_type )
{
switch( $user_avatar_type )
{
case USER_AVATAR_UPLOAD:
$avatar = '<img src="../' . $bb_cfg['avatar_path'] . '/' . $user_avatar . '" alt="" />';
break;
case USER_AVATAR_REMOTE:
$avatar = '<img src="' . $user_avatar . '" alt="" />';
break;
case USER_AVATAR_GALLERY:
$avatar = '<img src="../' . $bb_cfg['avatar_gallery_path'] . '/' . $user_avatar . '" alt="" />';
break;
}
}
else
{
$avatar = "";
}
$sql = "SELECT * FROM " . BB_RANKS . "
WHERE rank_special = 1
ORDER BY rank_title";
if ( !($result = DB()->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ranks data', '', __LINE__, __FILE__, $sql);
}
$rank_select_box = '<option value="0">' . $lang['NO_ASSIGNED_RANK'] . '</option>';
while( $row = DB()->sql_fetchrow($result) )
{
$rank = $row['rank_title'];
$rank_id = $row['rank_id'];
$selected = ( $this_userdata['user_rank'] == $rank_id ) ? ' selected="selected"' : '';
$rank_select_box .= '<option value="' . $rank_id . '"' . $selected . '>' . $rank . '</option>';
}
//
// Let's do an overall check for settings/versions which would prevent
// us from doing file uploads....
//
$ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
$form_enctype = ( !@$ini_val('file_uploads') || phpversion() == '4.0.4pl1' || !$bb_cfg['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"';
$template->assign_vars(array(
'TPL_ADMIN_USER_EDIT' => true,
'USERNAME' => $username,
'EMAIL' => $email,
'ICQ' => $icq,
'OCCUPATION' => $occupation,
'INTERESTS' => $interests,
'LOCATION' => $location,
'WEBSITE' => $website,
'SIGNATURE' => str_replace('<br />', "\n", $signature),
'VIEW_EMAIL_YES' => ($viewemail) ? 'checked="checked"' : '',
'VIEW_EMAIL_NO' => (!$viewemail) ? 'checked="checked"' : '',
'HIDE_USER_YES' => (!$allowviewonline) ? 'checked="checked"' : '',
'HIDE_USER_NO' => ($allowviewonline) ? 'checked="checked"' : '',
'NOTIFY_PM_YES' => ($notifypm) ? 'checked="checked"' : '',
'NOTIFY_PM_NO' => (!$notifypm) ? 'checked="checked"' : '',
'ALWAYS_ADD_SIGNATURE_YES' => ($attachsig) ? 'checked="checked"' : '',
'ALWAYS_ADD_SIGNATURE_NO' => (!$attachsig) ? 'checked="checked"' : '',
'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '',
'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '',
'ADMIN_AVATAR' => $avatar,
'LANGUAGE_SELECT' => language_select($user_lang),
'TIMEZONE_SELECT' => tz_select($user_timezone),
'STYLE_SELECT' => $bb_cfg['tpl_name'],
'DATE_FORMAT' => $user_dateformat,
'ALLOW_PM_YES' => ($user_allowpm) ? 'checked="checked"' : '',
'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '',
'ALLOW_AVATAR_YES' => ($user_allowavatar) ? 'checked="checked"' : '',
'ALLOW_AVATAR_NO' => (!$user_allowavatar) ? 'checked="checked"' : '',
'USER_ACTIVE_YES' => ($user_status) ? 'checked="checked"' : '',
'USER_ACTIVE_NO' => (!$user_status) ? 'checked="checked"' : '',
'RANK_SELECT_BOX' => $rank_select_box,
'L_USER_EXPLAIN' => $lang['USER_ADMIN_EXPLAIN'],
'L_BOARD_LANGUAGE' => $lang['BOARD_LANG'],
'L_ALWAYS_ADD_SIGNATURE' => $lang['ALWAYS_ADD_SIG'],
'L_SPECIAL' => $lang['USER_SPECIAL'],
'L_SPECIAL_EXPLAIN' => $lang['USER_SPECIAL_EXPLAIN'],
'L_USER_ACTIVE' => $lang['USER_STATUS'],
'L_ALLOW_PM' => $lang['USER_ALLOWPM'],
'L_ALLOW_AVATAR' => $lang['USER_ALLOWAVATAR'],
'L_AVATAR_EXP' => $lang['ADMIN_AVATAR_EXPLAIN'],
'L_DELETE_AVATAR' => $lang['DELETE_IMAGE'],
'L_AVATAR_GALLERY' => $lang['SELECT_FROM_GALLERY'],
'L_SHOW_GALLERY' => $lang['VIEW_AVATAR_GALLERY'],
'L_LINK_REMOTE_AVATAR' => $lang['LINK_REMOTE_AVATAR'],
'L_SIGNATURE_EXP' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars'] ),
'L_NOTIFY_ON_REPLY' => $lang['ALWAYS_NOTIFY'],
'L_PROFILE_INFO_NOTICE' => $lang['PROFILE_INFO_WARN'],
'S_FORM_ENCTYPE' => $form_enctype,
'BBCODE_STATUS' => sprintf(@$bbcode_status, '<a href="../' . append_sid("faq.php?mode=bbcode") . '" target="_phpbbcode">', '</a>'),
'SMILIES_STATUS' => @$smilies_status,
'L_DELETE_USER' => $lang['USER_DELETE'],
'L_DELETE_USER_EXPLAIN' => $lang['USER_DELETE_EXPLAIN'],
'L_SELECT_RANK' => $lang['RANK_TITLE'],
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_PROFILE_ACTION' => append_sid("admin_users.php"))
);
if( file_exists(@phpbb_realpath('./../' . $bb_cfg['avatar_path'])) && ($bb_cfg['allow_avatar_upload'] == TRUE) )
{
if ( $form_enctype != '' )
{
$template->assign_block_vars('avatar_local_upload', array() );
}
$template->assign_block_vars('avatar_remote_upload', array() );
}
if( file_exists(@phpbb_realpath('./../' . $bb_cfg['avatar_gallery_path'])) && ($bb_cfg['allow_avatar_local'] == TRUE) )
{
$template->assign_block_vars('avatar_local_gallery', array() );
}
if( $bb_cfg['allow_avatar_remote'] == TRUE )
{
$template->assign_block_vars('avatar_remote_link', array() );
}
}
}
else
{
//
// Default user selection box
//
$template->assign_vars(array(
'TPL_ADMIN_USER_SELECT' => true,
'L_USER_EXPLAIN' => $lang['USER_ADMIN_EXPLAIN'],
'U_SEARCH_USER' => append_sid("./../search.php?mode=searchuser"),
'S_USER_ACTION' => append_sid("admin_users.php"),
'S_USER_SELECT' => @$select_list)
);
}
print_page('admin_users.tpl', 'admin');

View file

@ -240,7 +240,7 @@ else if( isset($_GET['pane']) && $_GET['pane'] == 'right' )
//
// Get users online information.
//
$sql = "SELECT u.user_id, u.username, s.session_time AS user_session_time, u.user_allow_viewonline, s.session_logged_in, s.session_ip, s.session_start
$sql = "SELECT u.user_id, u.username, s.session_time AS user_session_time, u.user_opt, s.session_logged_in, s.session_ip, s.session_start
FROM " . BB_USERS . " u, " . BB_SESSIONS . " s
WHERE s.session_logged_in = 1
AND u.user_id = s.session_user_id
@ -292,7 +292,7 @@ else if( isset($_GET['pane']) && $_GET['pane'] == 'right' )
$username = $onlinerow_reg[$i]['username'];
if( $onlinerow_reg[$i]['user_allow_viewonline'] )
if( !bf($onlinerow_reg[$i]['user_opt'], 'user_opt', 'allow_viewonline'))
{
$registered_users++;
$hidden = FALSE;

View file

@ -254,8 +254,11 @@ class ajax_common
/**
* Prompt for confirmation
*/
function prompt_for_confirm ($confirm_msg = 'Точно?')
function prompt_for_confirm ($confirm_msg)
{
global $lang;
if(!empty($confirm_msg)) $confirm_msg = $lang['CONFIRM'];
$this->response['prompt_confirm'] = 1;
$this->response['confirm_msg'] = $confirm_msg;
$this->send();
@ -304,7 +307,7 @@ class ajax_common
function change_user_opt ()
{
global $userdata, $bf;
global $userdata, $bf, $lang;
$user_id = (int) $this->request['user_id'];
$new_opt = bb_json_decode($this->request['user_opt']);
@ -336,7 +339,7 @@ class ajax_common
DB()->query("UPDATE ". BB_USERS ." SET user_opt = {$u_data['user_opt']} WHERE user_id = $user_id LIMIT 1");
$this->response['resp_html'] = 'сохранено';
$this->response['resp_html'] = $lang['SAVED'];
}
function gen_passkey ()
@ -349,8 +352,7 @@ class ajax_common
{
if (empty($this->request['confirmed']))
{
$msg = "Вы уверены, что хотите создать новый passkey?";
$this->prompt_for_confirm($msg);
$this->prompt_for_confirm($lang['BT_GEN_PASSKEY_NEW']);
}
if (!$passkey = generate_passkey($req_uid, IS_ADMIN))

View file

@ -57,8 +57,8 @@ $bb_cfg['css_ver'] = 1;
// Increase number of revision after update
$bb_cfg['tp_version'] = '2.0.2';
$bb_cfg['tp_release_state'] = 'TP II r60';
$bb_cfg['tp_release_date'] = '02-07-2011';
$bb_cfg['tp_release_state'] = 'TP II r63';
$bb_cfg['tp_release_date'] = '03-07-2011';
$bb_cfg['board_disabled_msg'] = 'форум временно отключен'; // 'forums temporarily disabled'; // show this msg if board has been disabled via ON/OFF trigger
$bb_cfg['srv_overloaded_msg'] = "Извините, в данный момент сервер перегружен\nПопробуйте повторить запрос через несколько минут";

View file

@ -27,7 +27,7 @@ $online = $online_short = array('userlist' => '');
$sql = "
SELECT
u.username, u.user_id, u.user_allow_viewonline, u.user_level,
u.username, u.user_id, u.user_opt, u.user_level,
u.ignore_srv_load,
s.session_logged_in, s.session_ip, (s.session_time - s.session_start) AS ses_len, COUNT(s.session_id) AS sessions, COUNT(DISTINCT s.session_ip) AS ips
FROM ". BB_SESSIONS ." s, ". BB_USERS ." u

View file

@ -206,7 +206,7 @@ $template->assign_vars(array(
'LOGGED_IN' => $logged_in,
'SESSION_USER_ID' => $userdata['user_id'],
'THIS_USERNAME' => $userdata['username'],
'THIS_AVATAR' => get_avatar($userdata['user_avatar'], $userdata['user_avatar_type'], $userdata['user_allowavatar']),
'THIS_AVATAR' => get_avatar($userdata['user_avatar'], $userdata['user_avatar_type'], !bf($userdata['user_opt'], 'user_opt', 'allowavatar')),
'SHOW_LOGIN_LINK' => !defined('IN_LOGIN'),
'AUTOLOGIN_DISABLED' => !$bb_cfg['allow_autologin'],
'S_LOGIN_ACTION' => BB_ROOT ."login.php",

View file

@ -43,7 +43,7 @@ switch ($mode)
// Отключение регистрации
if ($bb_cfg['new_user_reg_disabled'] || ($bb_cfg['reg_email_activation'] && $bb_cfg['emailer_disabled']))
{
bb_die('Регистрация новых пользователей временно отключена');
bb_die($lang['NEW_USER_REG_DISABLED']);
}
// Ограничение по времени
else if ($bb_cfg['new_user_reg_restricted'])
@ -132,7 +132,7 @@ switch ($mode)
include(INC_DIR . 'ucp/usercp_avatar.php');
if ( bf($pr_data['user_opt'], 'user_opt', 'allowavatar') && ( $bb_cfg['allow_avatar_upload'] || $bb_cfg['allow_avatar_local'] || $bb_cfg['allow_avatar_remote'] ) )
if ( !bf($pr_data['user_opt'], 'user_opt', 'allowavatar') && ( $bb_cfg['allow_avatar_upload'] || $bb_cfg['allow_avatar_local'] || $bb_cfg['allow_avatar_remote'] ) )
{
$template->assign_block_vars('switch_avatar_block', array() );
@ -322,6 +322,9 @@ foreach ($profile_fields as $field => $can_edit)
$user_opt = $pr_data['user_opt'];
$update_user_opt = array(
'viewemail' => true,
'allow_viewonline' => true,
'notify' => true,
'notify_pm' => true,
'hide_porn_forums' => true,
);
@ -415,15 +418,11 @@ foreach ($profile_fields as $field => $can_edit)
{
if (mb_strlen($sig) > $bb_cfg['max_sig_chars'])
{
$errors[] = 'Слишком длинная подпись';
}
else if (preg_match('#speedtest|vkontakte|danasoft#i', $sig))
{
$errors[] = 'Подпись нарушает <a href="'. $bb_cfg['terms_and_conditions_url'] .'"><b>правила</b></a>';
$errors[] = $lang['SIGNATURE_TOO_LONG'];
}
else if (preg_match('#<(a|b|i|u|table|tr|td|img) #i', $sig) || preg_match('#(href|src|target|title)=#i', $sig))
{
$errors[] = 'Подпись может содержать только BBCode';
$errors[] = $lang['SIGNATURE_ERROR_HTML'];
}
else if ($sig != $pr_data['user_sig'])
{
@ -620,8 +619,8 @@ foreach ($profile_fields as $field => $can_edit)
}
$tp_data['USER_AVATAR'] = get_avatar($user_avatar, $user_avatar_type) . $hidden_vars; }
else
{ $tp_data['USER_AVATAR'] = get_avatar($pr_data['user_avatar'], $pr_data['user_avatar_type']); }
if ($submit)
{ $tp_data['USER_AVATAR'] = get_avatar($pr_data['user_avatar'], $pr_data['user_avatar_type'], !bf($pr_data['user_opt'], 'user_opt', 'allowavatar')); }
if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'allowavatar'))
{
if ( $user_avatar != $pr_data['user_avatar'] || $user_avatar_type != $pr_data['user_avatar_type'])
{
@ -739,6 +738,9 @@ $template->assign_vars(array(
'TIMEZONE_SELECT' => tz_select($user_timezone, 'user_timezone'),
'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatar_max_width'], $bb_cfg['avatar_max_height'], (round($bb_cfg['avatar_filesize'] / 1024))),
'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars']),
'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'allow_sig'),
'PR_USER_ID' => $pr_data['user_id'],
'U_RESET_AUTOLOGIN' => "login.php?logout=1&amp;reset_autologin=1&amp;sid={$userdata['session_id']}",

View file

@ -153,7 +153,11 @@ $signature = ($bb_cfg['allow_sig'] && $profiledata['user_sig']) ? $profiledata['
if(bf($profiledata['user_opt'], 'user_opt', 'allow_sig'))
{
$signature = 'Подпись удалена.';
if($profiledata['user_id'] == $userdata['user_id'])
{ $signature = $lang['SIGNATURE_DISABLE'];
}
else
{ $signature = ''; }
}
else if ($signature)
{

View file

@ -1,250 +0,0 @@
<?php
define('COUNTRIES_LANG', true);
// Need to translate it...
// Names by number [http://ru.wikipedia.org/wiki/ISO_3166-1]
$lang['COUNTRIES']['036'] = 'Австралия';
$lang['COUNTRIES']['040'] = 'Австрия';
$lang['COUNTRIES']['031'] = 'Азербайджан';
$lang['COUNTRIES']['248'] = 'Аландские острова';
$lang['COUNTRIES']['008'] = 'Албания';
$lang['COUNTRIES']['012'] = 'Алжир';
$lang['COUNTRIES']['581'] = 'Внешние малые острова (США)';
$lang['COUNTRIES']['850'] = 'Американские Виргинские острова';
$lang['COUNTRIES']['016'] = 'Американское Самоа';
$lang['COUNTRIES']['660'] = 'Ангилья';
$lang['COUNTRIES']['024'] = 'Ангола';
$lang['COUNTRIES']['020'] = 'Андорра';
$lang['COUNTRIES']['010'] = 'Антарктида';
$lang['COUNTRIES']['028'] = 'Антигуа и Барбуда';
$lang['COUNTRIES']['032'] = 'Аргентина';
$lang['COUNTRIES']['051'] = 'Армения';
$lang['COUNTRIES']['533'] = 'Аруба';
$lang['COUNTRIES']['004'] = 'Афганистан';
$lang['COUNTRIES']['044'] = 'Багамские острова';
$lang['COUNTRIES']['050'] = 'Бангладеш';
$lang['COUNTRIES']['052'] = 'Барбадос';
$lang['COUNTRIES']['048'] = 'Бахрейн';
$lang['COUNTRIES']['084'] = 'Белиз';
$lang['COUNTRIES']['112'] = 'Белоруссия';
$lang['COUNTRIES']['056'] = 'Бельгия';
$lang['COUNTRIES']['204'] = 'Бенин';
$lang['COUNTRIES']['060'] = 'Бермуды';
$lang['COUNTRIES']['100'] = 'Болгария';
$lang['COUNTRIES']['068'] = 'Боливия';
$lang['COUNTRIES']['070'] = 'Босния и Герцеговина';
$lang['COUNTRIES']['072'] = 'Ботсвана';
$lang['COUNTRIES']['076'] = 'Бразилия';
$lang['COUNTRIES']['086'] = 'Британские территории в Индийском океане';
$lang['COUNTRIES']['092'] = 'Британские Виргинские острова';
$lang['COUNTRIES']['096'] = 'Бруней';
$lang['COUNTRIES']['854'] = 'Буркина Фасо';
$lang['COUNTRIES']['108'] = 'Бурунди';
$lang['COUNTRIES']['064'] = 'Бутан';
$lang['COUNTRIES']['548'] = 'Вануату';
$lang['COUNTRIES']['336'] = 'Ватикан';
$lang['COUNTRIES']['826'] = 'Великобритания';
$lang['COUNTRIES']['348'] = 'Венгрия';
$lang['COUNTRIES']['862'] = 'Венесуэла';
$lang['COUNTRIES']['626'] = 'Восточный Тимор';
$lang['COUNTRIES']['704'] = 'Вьетнам';
$lang['COUNTRIES']['266'] = 'Габон';
$lang['COUNTRIES']['332'] = 'Гаити';
$lang['COUNTRIES']['328'] = 'Гайана';
$lang['COUNTRIES']['270'] = 'Гамбия';
$lang['COUNTRIES']['288'] = 'Гана';
$lang['COUNTRIES']['312'] = 'Гваделупа';
$lang['COUNTRIES']['320'] = 'Гватемала';
$lang['COUNTRIES']['324'] = 'Гвинея';
$lang['COUNTRIES']['624'] = 'Гвинея-Бисау';
$lang['COUNTRIES']['276'] = 'Германия';
$lang['COUNTRIES']['292'] = 'Гибралтар';
$lang['COUNTRIES']['340'] = 'Гондурас';
$lang['COUNTRIES']['344'] = 'Гонконг';
$lang['COUNTRIES']['308'] = 'Гренада';
$lang['COUNTRIES']['304'] = 'Гренландия';
$lang['COUNTRIES']['300'] = 'Греция';
$lang['COUNTRIES']['268'] = 'Грузия';
$lang['COUNTRIES']['316'] = 'Гуам';
$lang['COUNTRIES']['208'] = 'Дания';
$lang['COUNTRIES']['180'] = 'ДР Конго';
$lang['COUNTRIES']['262'] = 'Джибути';
$lang['COUNTRIES']['212'] = 'Доминика';
$lang['COUNTRIES']['214'] = 'Доминиканская Республика';
$lang['COUNTRIES']['EU'] = 'Европейский Союз';
$lang['COUNTRIES']['818'] = 'Египет';
$lang['COUNTRIES']['894'] = 'Замбия';
$lang['COUNTRIES']['732'] = 'Западная Сахара';
$lang['COUNTRIES']['716'] = 'Зимбабве';
$lang['COUNTRIES']['376'] = 'Израиль';
$lang['COUNTRIES']['356'] = 'Индия';
$lang['COUNTRIES']['360'] = 'Индонезия';
$lang['COUNTRIES']['400'] = 'Иордания';
$lang['COUNTRIES']['368'] = 'Ирак';
$lang['COUNTRIES']['364'] = 'Иран';
$lang['COUNTRIES']['372'] = 'Ирландия';
$lang['COUNTRIES']['352'] = 'Исландия';
$lang['COUNTRIES']['724'] = 'Испания';
$lang['COUNTRIES']['380'] = 'Италия';
$lang['COUNTRIES']['887'] = 'Йемен';
$lang['COUNTRIES']['408'] = 'КНДР';
$lang['COUNTRIES']['132'] = 'Кабо-Верде';
$lang['COUNTRIES']['398'] = 'Казахстан';
$lang['COUNTRIES']['136'] = 'Каймановы острова';
$lang['COUNTRIES']['116'] = 'Камбоджа';
$lang['COUNTRIES']['120'] = 'Камерун';
$lang['COUNTRIES']['124'] = 'Канада';
$lang['COUNTRIES']['634'] = 'Катар';
$lang['COUNTRIES']['404'] = 'Кения';
$lang['COUNTRIES']['196'] = 'Кипр';
$lang['COUNTRIES']['417'] = 'Киргизия';
$lang['COUNTRIES']['296'] = 'Кирибати';
$lang['COUNTRIES']['156'] = 'Китай';
$lang['COUNTRIES']['166'] = 'Кокосовые острова';
$lang['COUNTRIES']['170'] = 'Колумбия';
$lang['COUNTRIES']['174'] = 'Коморские острова';
$lang['COUNTRIES']['188'] = 'Коста-Рика';
$lang['COUNTRIES']['384'] = 'Кот-д’Ивуар';
$lang['COUNTRIES']['192'] = 'Куба';
$lang['COUNTRIES']['414'] = 'Кувейт';
$lang['COUNTRIES']['418'] = 'Лаос';
$lang['COUNTRIES']['428'] = 'Латвия';
$lang['COUNTRIES']['426'] = 'Лесото';
$lang['COUNTRIES']['430'] = 'Либерия';
$lang['COUNTRIES']['422'] = 'Ливан';
$lang['COUNTRIES']['434'] = 'Ливия';
$lang['COUNTRIES']['440'] = 'Литва';
$lang['COUNTRIES']['438'] = 'Лихтенштейн';
$lang['COUNTRIES']['442'] = 'Люксембург';
$lang['COUNTRIES']['480'] = 'Маврикий';
$lang['COUNTRIES']['478'] = 'Мавритания';
$lang['COUNTRIES']['450'] = 'Мадагаскар';
$lang['COUNTRIES']['175'] = 'Майотта';
$lang['COUNTRIES']['446'] = 'Макао';
$lang['COUNTRIES']['807'] = 'Македония';
$lang['COUNTRIES']['454'] = 'Малави';
$lang['COUNTRIES']['458'] = 'Малайзия';
$lang['COUNTRIES']['466'] = 'Мали';
$lang['COUNTRIES']['462'] = 'Мальдивы';
$lang['COUNTRIES']['470'] = 'Мальта';
$lang['COUNTRIES']['504'] = 'Марокко';
$lang['COUNTRIES']['474'] = 'Мартиника';
$lang['COUNTRIES']['584'] = 'Маршалловы острова';
$lang['COUNTRIES']['484'] = 'Мексика';
$lang['COUNTRIES']['508'] = 'Мозамбик';
$lang['COUNTRIES']['498'] = 'Молдавия';
$lang['COUNTRIES']['492'] = 'Монако';
$lang['COUNTRIES']['496'] = 'Монголия';
$lang['COUNTRIES']['500'] = 'Монтсеррат';
$lang['COUNTRIES']['104'] = 'Мьянма';
$lang['COUNTRIES']['516'] = 'Намибия';
$lang['COUNTRIES']['520'] = 'Науру';
$lang['COUNTRIES']['524'] = 'Непал';
$lang['COUNTRIES']['562'] = 'Нигер';
$lang['COUNTRIES']['566'] = 'Нигерия';
$lang['COUNTRIES']['530'] = 'Нидерландские Антильские острова';
$lang['COUNTRIES']['528'] = 'Нидерланды';
$lang['COUNTRIES']['558'] = 'Никарагуа';
$lang['COUNTRIES']['570'] = 'Ниуэ';
$lang['COUNTRIES']['540'] = 'Новая Каледония';
$lang['COUNTRIES']['554'] = 'Новая Зеландия';
$lang['COUNTRIES']['578'] = 'Норвегия';
$lang['COUNTRIES']['784'] = 'ОАЭ';
$lang['COUNTRIES']['512'] = 'Оман';
$lang['COUNTRIES']['162'] = 'Остров Рождества';
$lang['COUNTRIES']['184'] = 'Острова Кука';
$lang['COUNTRIES']['334'] = 'Херд и Макдональд';
$lang['COUNTRIES']['586'] = 'Пакистан';
$lang['COUNTRIES']['585'] = 'Палау';
$lang['COUNTRIES']['275'] = 'Палестина';
$lang['COUNTRIES']['591'] = 'Панама';
$lang['COUNTRIES']['598'] = 'Папуа — Новая Гвинея';
$lang['COUNTRIES']['600'] = 'Парагвай';
$lang['COUNTRIES']['604'] = 'Перу';
$lang['COUNTRIES']['612'] = 'Питкэрн';
$lang['COUNTRIES']['616'] = 'Польша';
$lang['COUNTRIES']['620'] = 'Португалия';
$lang['COUNTRIES']['630'] = 'Пуэрто-Рико';
$lang['COUNTRIES']['178'] = 'Республика Конго';
$lang['COUNTRIES']['638'] = 'Реюньон';
$lang['COUNTRIES']['643'] = 'Россия';
$lang['COUNTRIES']['646'] = 'Руанда';
$lang['COUNTRIES']['642'] = 'Румыния';
$lang['COUNTRIES']['840'] = 'США';
$lang['COUNTRIES']['222'] = 'Сальвадор';
$lang['COUNTRIES']['882'] = 'Самоа';
$lang['COUNTRIES']['674'] = 'Сан-Марино';
$lang['COUNTRIES']['678'] = 'Сан-Томе и Принсипи';
$lang['COUNTRIES']['682'] = 'Саудовская Аравия';
$lang['COUNTRIES']['748'] = 'Свазиленд';
$lang['COUNTRIES']['744'] = 'Шпицберген и Ян-Майен';
$lang['COUNTRIES']['580'] = 'Северные Марианские острова';
$lang['COUNTRIES']['690'] = 'Сейшельские острова';
$lang['COUNTRIES']['686'] = 'Сенегал';
$lang['COUNTRIES']['670'] = 'Сент-Винсент и Гренадины';
$lang['COUNTRIES']['659'] = 'Сент-Китс и Невис';
$lang['COUNTRIES']['662'] = 'Сент-Люсия';
$lang['COUNTRIES']['666'] = 'Сен-Пьер и Микелон';
$lang['COUNTRIES']['688'] = 'Сербия';
$lang['COUNTRIES']['891'] = 'Сербия и Черногория';
$lang['COUNTRIES']['702'] = 'Сингапур';
$lang['COUNTRIES']['760'] = 'Сирия';
$lang['COUNTRIES']['703'] = 'Словакия';
$lang['COUNTRIES']['705'] = 'Словения';
$lang['COUNTRIES']['090'] = 'Соломоновы острова';
$lang['COUNTRIES']['706'] = 'Сомали';
$lang['COUNTRIES']['736'] = 'Судан';
$lang['COUNTRIES']['740'] = 'Суринам';
$lang['COUNTRIES']['694'] = 'Сьерра-Леоне';
$lang['COUNTRIES']['810'] = 'СССР';
$lang['COUNTRIES']['762'] = 'Таджикистан';
$lang['COUNTRIES']['764'] = 'Таиланд';
$lang['COUNTRIES']['158'] = 'Тайвань';
$lang['COUNTRIES']['834'] = 'Танзания';
$lang['COUNTRIES']['768'] = 'Того';
$lang['COUNTRIES']['772'] = 'Токелау';
$lang['COUNTRIES']['776'] = 'Тонга';
$lang['COUNTRIES']['780'] = 'Тринидад и Тобаго';
$lang['COUNTRIES']['798'] = 'Тувалу';
$lang['COUNTRIES']['788'] = 'Тунис';
$lang['COUNTRIES']['795'] = 'Туркмения';
$lang['COUNTRIES']['792'] = 'Турция';
$lang['COUNTRIES']['800'] = 'Уганда';
$lang['COUNTRIES']['860'] = 'Узбекистан';
$lang['COUNTRIES']['804'] = 'Украина';
$lang['COUNTRIES']['858'] = 'Уругвай';
$lang['COUNTRIES']['234'] = 'Фарерские острова';
$lang['COUNTRIES']['583'] = 'Федеративные Штаты Микронезии';
$lang['COUNTRIES']['242'] = 'Фиджи';
$lang['COUNTRIES']['608'] = 'Филиппины';
$lang['COUNTRIES']['246'] = 'Финляндия';
$lang['COUNTRIES']['238'] = 'Фолклендские острова';
$lang['COUNTRIES']['250'] = 'Франция';
$lang['COUNTRIES']['254'] = 'Французская Гвиана';
$lang['COUNTRIES']['258'] = 'Французская Полинезия';
$lang['COUNTRIES']['260'] = 'Французские Юж. и Антарктич. Тер-рии';
$lang['COUNTRIES']['191'] = 'Хорватия';
$lang['COUNTRIES']['140'] = 'ЦАР';
$lang['COUNTRIES']['148'] = 'Чад';
$lang['COUNTRIES']['499'] = 'Черногория';
$lang['COUNTRIES']['203'] = 'Чехия';
$lang['COUNTRIES']['152'] = 'Чили';
$lang['COUNTRIES']['756'] = 'Швейцария';
$lang['COUNTRIES']['752'] = 'Швеция';
$lang['COUNTRIES']['144'] = 'Шри-Ланка';
$lang['COUNTRIES']['218'] = 'Эквадор';
$lang['COUNTRIES']['226'] = 'Экваториальная Гвинея';
$lang['COUNTRIES']['232'] = 'Эритрея';
$lang['COUNTRIES']['233'] = 'Эстония';
$lang['COUNTRIES']['231'] = 'Эфиопия';
$lang['COUNTRIES']['710'] = 'ЮАР';
$lang['COUNTRIES']['410'] = 'Республика Корея';
$lang['COUNTRIES']['239'] = 'Южная Георгия и Южные Сандвичевы острова';
$lang['COUNTRIES']['388'] = 'Ямайка';
$lang['COUNTRIES']['392'] = 'Япония';
$lang['COUNTRIES']['074'] = 'Остров Буве';
$lang['COUNTRIES']['574'] = 'Норфолк';
$lang['COUNTRIES']['654'] = 'О.Святой Елены';
$lang['COUNTRIES']['796'] = 'Тёркс и Кайкос';
$lang['COUNTRIES']['876'] = 'Уоллис и Футуна';

View file

@ -561,8 +561,11 @@ $lang['DATE_FORMAT_PROFILE'] = 'Date format';
$lang['DATE_FORMAT_EXPLAIN'] = 'The syntax used is identical to the PHP <a href=\'http://www.php.net/date\' target=\'_other\'>date()</a> function.';
$lang['SIGNATURE'] = 'Signature';
$lang['SIGNATURE_EXPLAIN'] = 'This is a block of text that can be added to posts you make. There is a %d character limit';
$lang['SIGNATURE_DISABLE'] = 'Signed off for violation of forum rules';
$lang['PUBLIC_VIEW_EMAIL'] = 'Always show my e-mail address';
$lang['EMAIL_EXPLAIN'] = 'At this address you will be sent to complete the registration';
$lang['CURRENT_PASSWORD'] = 'Current password';
$lang['NEW_PASSWORD'] = 'New password';
$lang['CONFIRM_PASSWORD'] = 'Confirm password';
@ -610,10 +613,12 @@ $lang['EMAIL_TAKEN'] = 'Sorry, but that e-mail address is already registered to
$lang['EMAIL_BANNED'] = 'Sorry, but <b>%s</b> address has been banned.';
$lang['EMAIL_INVALID'] = 'Sorry, but this e-mail address is invalid.';
$lang['SIGNATURE_TOO_LONG'] = 'Your signature is too long.';
$lang['SIGNATURE_ERROR_HTML'] = 'The signature can contain only BBCode';
$lang['FIELDS_EMPTY'] = 'You must fill in the required fields.';
$lang['AVATAR_FILETYPE'] = 'The avatar filetype must be .jpg, .gif or .png';
$lang['AVATAR_FILESIZE'] = 'The avatar image file size must be less than %d KB'; // The avatar image file size must be less than 6 KB
$lang['AVATAR_IMAGESIZE'] = 'The avatar must be less than %d pixels wide and %d pixels high';
$lang['AVATAR_DISABLE'] = 'You are not allowed to use an avatar.';
$lang['WELCOME_SUBJECT'] = 'Welcome to %s Forums'; // Welcome to my.com forums
$lang['NEW_ACCOUNT_SUBJECT'] = 'New user account';
@ -1137,6 +1142,7 @@ $lang['BT_GEN_PASSKEY'] = 'Passkey';
$lang['BT_GEN_PASSKEY_URL'] = 'Generate or change Passkey';
$lang['BT_GEN_PASSKEY_EXPLAIN'] = 'Generate your personal id for torrent tracker';
$lang['BT_GEN_PASSKEY_EXPLAIN_2'] = "<b>Warning!</b> After generating new id you'll need to <b>redownload all active torrent's!</b>";
$lang['BT_GEN_PASSKEY_NEW'] = 'Are you sure you want to create a new passkey?';
$lang['BT_GEN_PASSKEY_OK'] = 'New personal identifier generated';
$lang['BT_NO_SEARCHABLE_FORUMS'] = 'No searchable forums found';

View file

@ -1,249 +0,0 @@
<?php
define('COUNTRIES_LANG', true);
// Names by number [http://ru.wikipedia.org/wiki/ISO_3166-1]
$lang['COUNTRIES']['036'] = 'Австралия';
$lang['COUNTRIES']['040'] = 'Австрия';
$lang['COUNTRIES']['031'] = 'Азербайджан';
$lang['COUNTRIES']['248'] = 'Аландские острова';
$lang['COUNTRIES']['008'] = 'Албания';
$lang['COUNTRIES']['012'] = 'Алжир';
$lang['COUNTRIES']['581'] = 'Внешние малые острова (США)';
$lang['COUNTRIES']['850'] = 'Американские Виргинские острова';
$lang['COUNTRIES']['016'] = 'Американское Самоа';
$lang['COUNTRIES']['660'] = 'Ангилья';
$lang['COUNTRIES']['024'] = 'Ангола';
$lang['COUNTRIES']['020'] = 'Андорра';
$lang['COUNTRIES']['010'] = 'Антарктида';
$lang['COUNTRIES']['028'] = 'Антигуа и Барбуда';
$lang['COUNTRIES']['032'] = 'Аргентина';
$lang['COUNTRIES']['051'] = 'Армения';
$lang['COUNTRIES']['533'] = 'Аруба';
$lang['COUNTRIES']['004'] = 'Афганистан';
$lang['COUNTRIES']['044'] = 'Багамские острова';
$lang['COUNTRIES']['050'] = 'Бангладеш';
$lang['COUNTRIES']['052'] = 'Барбадос';
$lang['COUNTRIES']['048'] = 'Бахрейн';
$lang['COUNTRIES']['084'] = 'Белиз';
$lang['COUNTRIES']['112'] = 'Белоруссия';
$lang['COUNTRIES']['056'] = 'Бельгия';
$lang['COUNTRIES']['204'] = 'Бенин';
$lang['COUNTRIES']['060'] = 'Бермуды';
$lang['COUNTRIES']['100'] = 'Болгария';
$lang['COUNTRIES']['068'] = 'Боливия';
$lang['COUNTRIES']['070'] = 'Босния и Герцеговина';
$lang['COUNTRIES']['072'] = 'Ботсвана';
$lang['COUNTRIES']['076'] = 'Бразилия';
$lang['COUNTRIES']['086'] = 'Британские территории в Индийском океане';
$lang['COUNTRIES']['092'] = 'Британские Виргинские острова';
$lang['COUNTRIES']['096'] = 'Бруней';
$lang['COUNTRIES']['854'] = 'Буркина Фасо';
$lang['COUNTRIES']['108'] = 'Бурунди';
$lang['COUNTRIES']['064'] = 'Бутан';
$lang['COUNTRIES']['548'] = 'Вануату';
$lang['COUNTRIES']['336'] = 'Ватикан';
$lang['COUNTRIES']['826'] = 'Великобритания';
$lang['COUNTRIES']['348'] = 'Венгрия';
$lang['COUNTRIES']['862'] = 'Венесуэла';
$lang['COUNTRIES']['626'] = 'Восточный Тимор';
$lang['COUNTRIES']['704'] = 'Вьетнам';
$lang['COUNTRIES']['266'] = 'Габон';
$lang['COUNTRIES']['332'] = 'Гаити';
$lang['COUNTRIES']['328'] = 'Гайана';
$lang['COUNTRIES']['270'] = 'Гамбия';
$lang['COUNTRIES']['288'] = 'Гана';
$lang['COUNTRIES']['312'] = 'Гваделупа';
$lang['COUNTRIES']['320'] = 'Гватемала';
$lang['COUNTRIES']['324'] = 'Гвинея';
$lang['COUNTRIES']['624'] = 'Гвинея-Бисау';
$lang['COUNTRIES']['276'] = 'Германия';
$lang['COUNTRIES']['292'] = 'Гибралтар';
$lang['COUNTRIES']['340'] = 'Гондурас';
$lang['COUNTRIES']['344'] = 'Гонконг';
$lang['COUNTRIES']['308'] = 'Гренада';
$lang['COUNTRIES']['304'] = 'Гренландия';
$lang['COUNTRIES']['300'] = 'Греция';
$lang['COUNTRIES']['268'] = 'Грузия';
$lang['COUNTRIES']['316'] = 'Гуам';
$lang['COUNTRIES']['208'] = 'Дания';
$lang['COUNTRIES']['180'] = 'ДР Конго';
$lang['COUNTRIES']['262'] = 'Джибути';
$lang['COUNTRIES']['212'] = 'Доминика';
$lang['COUNTRIES']['214'] = 'Доминиканская Республика';
$lang['COUNTRIES']['EU'] = 'Европейский Союз';
$lang['COUNTRIES']['818'] = 'Египет';
$lang['COUNTRIES']['894'] = 'Замбия';
$lang['COUNTRIES']['732'] = 'Западная Сахара';
$lang['COUNTRIES']['716'] = 'Зимбабве';
$lang['COUNTRIES']['376'] = 'Израиль';
$lang['COUNTRIES']['356'] = 'Индия';
$lang['COUNTRIES']['360'] = 'Индонезия';
$lang['COUNTRIES']['400'] = 'Иордания';
$lang['COUNTRIES']['368'] = 'Ирак';
$lang['COUNTRIES']['364'] = 'Иран';
$lang['COUNTRIES']['372'] = 'Ирландия';
$lang['COUNTRIES']['352'] = 'Исландия';
$lang['COUNTRIES']['724'] = 'Испания';
$lang['COUNTRIES']['380'] = 'Италия';
$lang['COUNTRIES']['887'] = 'Йемен';
$lang['COUNTRIES']['408'] = 'КНДР';
$lang['COUNTRIES']['132'] = 'Кабо-Верде';
$lang['COUNTRIES']['398'] = 'Казахстан';
$lang['COUNTRIES']['136'] = 'Каймановы острова';
$lang['COUNTRIES']['116'] = 'Камбоджа';
$lang['COUNTRIES']['120'] = 'Камерун';
$lang['COUNTRIES']['124'] = 'Канада';
$lang['COUNTRIES']['634'] = 'Катар';
$lang['COUNTRIES']['404'] = 'Кения';
$lang['COUNTRIES']['196'] = 'Кипр';
$lang['COUNTRIES']['417'] = 'Киргизия';
$lang['COUNTRIES']['296'] = 'Кирибати';
$lang['COUNTRIES']['156'] = 'Китай';
$lang['COUNTRIES']['166'] = 'Кокосовые острова';
$lang['COUNTRIES']['170'] = 'Колумбия';
$lang['COUNTRIES']['174'] = 'Коморские острова';
$lang['COUNTRIES']['188'] = 'Коста-Рика';
$lang['COUNTRIES']['384'] = 'Кот-д’Ивуар';
$lang['COUNTRIES']['192'] = 'Куба';
$lang['COUNTRIES']['414'] = 'Кувейт';
$lang['COUNTRIES']['418'] = 'Лаос';
$lang['COUNTRIES']['428'] = 'Латвия';
$lang['COUNTRIES']['426'] = 'Лесото';
$lang['COUNTRIES']['430'] = 'Либерия';
$lang['COUNTRIES']['422'] = 'Ливан';
$lang['COUNTRIES']['434'] = 'Ливия';
$lang['COUNTRIES']['440'] = 'Литва';
$lang['COUNTRIES']['438'] = 'Лихтенштейн';
$lang['COUNTRIES']['442'] = 'Люксембург';
$lang['COUNTRIES']['480'] = 'Маврикий';
$lang['COUNTRIES']['478'] = 'Мавритания';
$lang['COUNTRIES']['450'] = 'Мадагаскар';
$lang['COUNTRIES']['175'] = 'Майотта';
$lang['COUNTRIES']['446'] = 'Макао';
$lang['COUNTRIES']['807'] = 'Македония';
$lang['COUNTRIES']['454'] = 'Малави';
$lang['COUNTRIES']['458'] = 'Малайзия';
$lang['COUNTRIES']['466'] = 'Мали';
$lang['COUNTRIES']['462'] = 'Мальдивы';
$lang['COUNTRIES']['470'] = 'Мальта';
$lang['COUNTRIES']['504'] = 'Марокко';
$lang['COUNTRIES']['474'] = 'Мартиника';
$lang['COUNTRIES']['584'] = 'Маршалловы острова';
$lang['COUNTRIES']['484'] = 'Мексика';
$lang['COUNTRIES']['508'] = 'Мозамбик';
$lang['COUNTRIES']['498'] = 'Молдавия';
$lang['COUNTRIES']['492'] = 'Монако';
$lang['COUNTRIES']['496'] = 'Монголия';
$lang['COUNTRIES']['500'] = 'Монтсеррат';
$lang['COUNTRIES']['104'] = 'Мьянма';
$lang['COUNTRIES']['516'] = 'Намибия';
$lang['COUNTRIES']['520'] = 'Науру';
$lang['COUNTRIES']['524'] = 'Непал';
$lang['COUNTRIES']['562'] = 'Нигер';
$lang['COUNTRIES']['566'] = 'Нигерия';
$lang['COUNTRIES']['530'] = 'Нидерландские Антильские острова';
$lang['COUNTRIES']['528'] = 'Нидерланды';
$lang['COUNTRIES']['558'] = 'Никарагуа';
$lang['COUNTRIES']['570'] = 'Ниуэ';
$lang['COUNTRIES']['540'] = 'Новая Каледония';
$lang['COUNTRIES']['554'] = 'Новая Зеландия';
$lang['COUNTRIES']['578'] = 'Норвегия';
$lang['COUNTRIES']['784'] = 'ОАЭ';
$lang['COUNTRIES']['512'] = 'Оман';
$lang['COUNTRIES']['162'] = 'Остров Рождества';
$lang['COUNTRIES']['184'] = 'Острова Кука';
$lang['COUNTRIES']['334'] = 'Херд и Макдональд';
$lang['COUNTRIES']['586'] = 'Пакистан';
$lang['COUNTRIES']['585'] = 'Палау';
$lang['COUNTRIES']['275'] = 'Палестина';
$lang['COUNTRIES']['591'] = 'Панама';
$lang['COUNTRIES']['598'] = 'Папуа — Новая Гвинея';
$lang['COUNTRIES']['600'] = 'Парагвай';
$lang['COUNTRIES']['604'] = 'Перу';
$lang['COUNTRIES']['612'] = 'Питкэрн';
$lang['COUNTRIES']['616'] = 'Польша';
$lang['COUNTRIES']['620'] = 'Португалия';
$lang['COUNTRIES']['630'] = 'Пуэрто-Рико';
$lang['COUNTRIES']['178'] = 'Республика Конго';
$lang['COUNTRIES']['638'] = 'Реюньон';
$lang['COUNTRIES']['643'] = 'Россия';
$lang['COUNTRIES']['646'] = 'Руанда';
$lang['COUNTRIES']['642'] = 'Румыния';
$lang['COUNTRIES']['840'] = 'США';
$lang['COUNTRIES']['222'] = 'Сальвадор';
$lang['COUNTRIES']['882'] = 'Самоа';
$lang['COUNTRIES']['674'] = 'Сан-Марино';
$lang['COUNTRIES']['678'] = 'Сан-Томе и Принсипи';
$lang['COUNTRIES']['682'] = 'Саудовская Аравия';
$lang['COUNTRIES']['748'] = 'Свазиленд';
$lang['COUNTRIES']['744'] = 'Шпицберген и Ян-Майен';
$lang['COUNTRIES']['580'] = 'Северные Марианские острова';
$lang['COUNTRIES']['690'] = 'Сейшельские острова';
$lang['COUNTRIES']['686'] = 'Сенегал';
$lang['COUNTRIES']['670'] = 'Сент-Винсент и Гренадины';
$lang['COUNTRIES']['659'] = 'Сент-Китс и Невис';
$lang['COUNTRIES']['662'] = 'Сент-Люсия';
$lang['COUNTRIES']['666'] = 'Сен-Пьер и Микелон';
$lang['COUNTRIES']['688'] = 'Сербия';
$lang['COUNTRIES']['891'] = 'Сербия и Черногория';
$lang['COUNTRIES']['702'] = 'Сингапур';
$lang['COUNTRIES']['760'] = 'Сирия';
$lang['COUNTRIES']['703'] = 'Словакия';
$lang['COUNTRIES']['705'] = 'Словения';
$lang['COUNTRIES']['090'] = 'Соломоновы острова';
$lang['COUNTRIES']['706'] = 'Сомали';
$lang['COUNTRIES']['736'] = 'Судан';
$lang['COUNTRIES']['740'] = 'Суринам';
$lang['COUNTRIES']['694'] = 'Сьерра-Леоне';
$lang['COUNTRIES']['810'] = 'СССР';
$lang['COUNTRIES']['762'] = 'Таджикистан';
$lang['COUNTRIES']['764'] = 'Таиланд';
$lang['COUNTRIES']['158'] = 'Тайвань';
$lang['COUNTRIES']['834'] = 'Танзания';
$lang['COUNTRIES']['768'] = 'Того';
$lang['COUNTRIES']['772'] = 'Токелау';
$lang['COUNTRIES']['776'] = 'Тонга';
$lang['COUNTRIES']['780'] = 'Тринидад и Тобаго';
$lang['COUNTRIES']['798'] = 'Тувалу';
$lang['COUNTRIES']['788'] = 'Тунис';
$lang['COUNTRIES']['795'] = 'Туркмения';
$lang['COUNTRIES']['792'] = 'Турция';
$lang['COUNTRIES']['800'] = 'Уганда';
$lang['COUNTRIES']['860'] = 'Узбекистан';
$lang['COUNTRIES']['804'] = 'Украина';
$lang['COUNTRIES']['858'] = 'Уругвай';
$lang['COUNTRIES']['234'] = 'Фарерские острова';
$lang['COUNTRIES']['583'] = 'Федеративные Штаты Микронезии';
$lang['COUNTRIES']['242'] = 'Фиджи';
$lang['COUNTRIES']['608'] = 'Филиппины';
$lang['COUNTRIES']['246'] = 'Финляндия';
$lang['COUNTRIES']['238'] = 'Фолклендские острова';
$lang['COUNTRIES']['250'] = 'Франция';
$lang['COUNTRIES']['254'] = 'Французская Гвиана';
$lang['COUNTRIES']['258'] = 'Французская Полинезия';
$lang['COUNTRIES']['260'] = 'Французские Юж. и Антарктич. Тер-рии';
$lang['COUNTRIES']['191'] = 'Хорватия';
$lang['COUNTRIES']['140'] = 'ЦАР';
$lang['COUNTRIES']['148'] = 'Чад';
$lang['COUNTRIES']['499'] = 'Черногория';
$lang['COUNTRIES']['203'] = 'Чехия';
$lang['COUNTRIES']['152'] = 'Чили';
$lang['COUNTRIES']['756'] = 'Швейцария';
$lang['COUNTRIES']['752'] = 'Швеция';
$lang['COUNTRIES']['144'] = 'Шри-Ланка';
$lang['COUNTRIES']['218'] = 'Эквадор';
$lang['COUNTRIES']['226'] = 'Экваториальная Гвинея';
$lang['COUNTRIES']['232'] = 'Эритрея';
$lang['COUNTRIES']['233'] = 'Эстония';
$lang['COUNTRIES']['231'] = 'Эфиопия';
$lang['COUNTRIES']['710'] = 'ЮАР';
$lang['COUNTRIES']['410'] = 'Республика Корея';
$lang['COUNTRIES']['239'] = 'Южная Георгия и Южные Сандвичевы острова';
$lang['COUNTRIES']['388'] = 'Ямайка';
$lang['COUNTRIES']['392'] = 'Япония';
$lang['COUNTRIES']['074'] = 'Остров Буве';
$lang['COUNTRIES']['574'] = 'Норфолк';
$lang['COUNTRIES']['654'] = 'О.Святой Елены';
$lang['COUNTRIES']['796'] = 'Тёркс и Кайкос';
$lang['COUNTRIES']['876'] = 'Уоллис и Футуна';

View file

@ -566,8 +566,11 @@ $lang['DATE_FORMAT_PROFILE'] = 'Формат даты';
$lang['DATE_FORMAT_EXPLAIN'] = 'Синтаксис идентичен функции <a href="http://www.php.net/date" target="_other">date()</a> языка PHP';
$lang['SIGNATURE'] = 'Подпись';
$lang['SIGNATURE_EXPLAIN'] = 'Это текст, который можно добавлять к размещаемым вами сообщениям. Длина его ограничена %d символами.';
$lang['SIGNATURE_DISABLE'] = 'Подпись отключена за нарушение правил форума';
$lang['PUBLIC_VIEW_EMAIL'] = 'Всегда показывать мой адрес e-mail';
$lang['EMAIL_EXPLAIN'] = 'На этот адрес вам будет отправлено письмо для завершения регистрации';
$lang['CURRENT_PASSWORD'] = 'Текущий пароль';
$lang['NEW_PASSWORD'] = 'Новый пароль';
$lang['CONFIRM_PASSWORD'] = 'Подтвердите пароль';
@ -615,10 +618,12 @@ $lang['EMAIL_TAKEN'] = 'Извините, этот адрес e-mail уже за
$lang['EMAIL_BANNED'] = 'Извините, адрес <b>%s</b> находится в чёрном списке';
$lang['EMAIL_INVALID'] = 'Извините, этот адрес e-mail неправилен';
$lang['SIGNATURE_TOO_LONG'] = 'Слишком длинная подпись';
$lang['SIGNATURE_ERROR_HTML'] = 'Подпись может содержать только BBCode';
$lang['FIELDS_EMPTY'] = 'Вы должны заполнить обязательные поля';
$lang['AVATAR_FILETYPE'] = 'Файл аватары должен быть .jpg, .gif или .png';
$lang['AVATAR_FILESIZE'] = 'Объём файла аватары должен быть не более %d кб';
$lang['AVATAR_IMAGESIZE'] = 'Аватара должна быть не больше %d пикселов в ширину и %d пикселов в высоту';
$lang['AVATAR_DISABLE'] = 'Вам запрещено использовать аватару.';
$lang['WELCOME_SUBJECT'] = 'Добро пожаловать на форумы %s';
$lang['NEW_ACCOUNT_SUBJECT'] = 'Новый пользователь';
@ -1143,6 +1148,7 @@ $lang['BT_GEN_PASSKEY'] = 'Passkey';
$lang['BT_GEN_PASSKEY_URL'] = 'Создать или изменить Passkey';
$lang['BT_GEN_PASSKEY_EXPLAIN'] = 'Сгенерировать ваш личный id, который будет добавляться в торрент-файлы во время скачивания и затем использоваться трекером в качестве вашего аутентификатора.';
$lang['BT_GEN_PASSKEY_EXPLAIN_2'] = '<b>Внимание!</b> После изменения или создания нового id вам будет необходимо <b>заново скачать все активные торренты!</b>';
$lang['BT_GEN_PASSKEY_NEW'] = 'Вы уверены, что хотите создать новый passkey?';
$lang['BT_GEN_PASSKEY_OK'] = 'Новый персональный идентификатор сгенеририван';
$lang['BT_NO_SEARCHABLE_FORUMS'] = 'Доступных для поиска форумов не найдено';

View file

@ -299,7 +299,7 @@ if ($submit || $refresh)
}
else
{
if (!IS_GUEST && $mode != 'newtopic' && !$userdata['user_notify'])
if (!IS_GUEST && $mode != 'newtopic' && bf($userdata['user_opt'], 'user_opt', 'user_notify'))
{
$notify_user = (int) DB()->fetch_row("
SELECT topic_id

View file

@ -970,7 +970,7 @@ else if ( $submit || $refresh || $mode != '' )
// DelUsrKeepPM
$to_username_sql = str_replace("\'", "''", $to_username);
$sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active
$sql = "SELECT user_id, user_opt, user_email, user_lang, user_active
FROM " . BB_USERS . "
WHERE username = '$to_username_sql'";
@ -1123,7 +1123,7 @@ else if ( $submit || $refresh || $mode != '' )
message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
}
if ( $to_userdata['user_notify_pm'] && !empty($to_userdata['user_email']) && $to_userdata['user_active'] && $bb_cfg['pm_notify_enabled'] )
if ( bf($to_userdata['user_opt'], 'user_opt', 'notify_pm') && !empty($to_userdata['user_email']) && $to_userdata['user_active'] && $bb_cfg['pm_notify_enabled'] )
{
$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($bb_cfg['script_path']));
$script_name = ( $script_name != '' ) ? $script_name . '/privmsg.php' : 'privmsg.php';

View file

@ -1,357 +0,0 @@
<!-- IF TPL_ADMIN_USER_SELECT -->
<!--========================================================================-->
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_EXPLAIN}</p>
<br /><br />
<form method="post" name="post" action="{S_USER_ACTION}">
{S_HIDDEN_FIELDS}
<input type="hidden" name="mode" value="edit" />
<table class="forumline wAuto">
<tr>
<th>{L_USER_SELECT}</th>
</tr>
<tr>
<td class="row1 tCenter pad_8">
<p class="mrg_12">
<input type="text" class="post" name="username" maxlength="50" size="20" />
<input type="button" name="usersubmit" value="{L_FIND_USERNAME}" onclick="window.open('{U_SEARCH_USER}', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" />
</p>
<p class="mrg_12">
<input type="submit" name="submituser" value="{L_LOOK_UP_USER}" class="bold" />
</p>
</td>
</tr>
</table>
</form>
<br /><br /><br /><br />
<!--========================================================================-->
<!-- ENDIF / TPL_ADMIN_USER_SELECT -->
<!-- IF TPL_ADMIN_USER_EDIT -->
<!--========================================================================-->
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_EXPLAIN}</p>
<br />
<form action="{S_PROFILE_ACTION}" {S_FORM_ENCTYPE} method="post">
<table class="forumline">
<tr>
<th colspan="2">{L_REGISTRATION_INFO}</th>
</tr>
<tr>
<td class="row2" colspan="2"><span class="small">{L_ITEMS_REQUIRED}</span></td>
</tr>
<tr>
<td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2">
<input class="post" type="text" name="username" size="35" maxlength="40" value="{USERNAME}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_EMAIL_ADDRESS}: *</span></td>
<td class="row2">
<input class="post" type="text" name="email" size="35" maxlength="255" value="{EMAIL}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_NEW_PASSWORD}: *</span><br />
<span class="small">{L_PASSWORD_IF_CHANGED}</span></td>
<td class="row2">
<input class="post" type="password" name="password" size="35" maxlength="32" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_CONFIRM_PASSWORD}: * </span><br />
<span class="small">{L_PASSWORD_CONFIRM_IF_CHANGED}</span></td>
<td class="row2">
<input class="post" type="password" name="password_confirm" size="35" maxlength="32" />
</td>
</tr>
<tr>
<td class="cat" colspan="2">&nbsp;</td>
</tr>
<tr>
<th colspan="2">{L_PROFILE_INFO}</th>
</tr>
<tr>
<td class="row2" colspan="2"><span class="small">{L_PROFILE_INFO_NOTICE}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ICQ}</span></td>
<td class="row2">
<input class="post" type="text" name="icq" size="10" maxlength="15" value="{ICQ}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_WEBSITE}</span></td>
<td class="row2">
<input class="post" type="text" name="website" size="35" maxlength="255" value="{WEBSITE}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_LOCATION}</span></td>
<td class="row2">
<input class="post" type="text" name="location" size="35" maxlength="100" value="{LOCATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_OCCUPATION}</span></td>
<td class="row2">
<input class="post" type="text" name="occupation" size="35" maxlength="100" value="{OCCUPATION}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_INTERESTS}</span></td>
<td class="row2">
<input class="post" type="text" name="interests" size="35" maxlength="150" value="{INTERESTS}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_SIGNATURE}</span><br />
<span class="small">{L_SIGNATURE_EXP}<br />
<br />
{BBCODE_STATUS}<br />
{SMILIES_STATUS}</span></td>
<td class="row2">
<textarea class="post" name="signature" rows="6" cols="45">{SIGNATURE}</textarea>
</td>
</tr>
<tr>
<td class="cat" colspan="2">&nbsp;</td>
</tr>
<tr>
<th colspan="2">{L_PREFERENCES}</th>
</tr>
<tr>
<td class="row1"><span class="gen">{L_PUBLIC_VIEW_EMAIL}</span></td>
<td class="row2">
<input type="radio" name="viewemail" value="1" {VIEW_EMAIL_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="viewemail" value="0" {VIEW_EMAIL_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_HIDE_USER}</span></td>
<td class="row2">
<input type="radio" name="hideonline" value="1" {HIDE_USER_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="hideonline" value="0" {HIDE_USER_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_NOTIFY_ON_REPLY}</span></td>
<td class="row2">
<input type="radio" name="notifyreply" value="1" {NOTIFY_REPLY_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="notifyreply" value="0" {NOTIFY_REPLY_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_NOTIFY_ON_PRIVMSG}</span></td>
<td class="row2">
<input type="radio" name="notifypm" value="1" {NOTIFY_PM_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="notifypm" value="0" {NOTIFY_PM_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ALWAYS_ADD_SIGNATURE}</span></td>
<td class="row2">
<input type="radio" name="attachsig" value="1" {ALWAYS_ADD_SIGNATURE_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="attachsig" value="0" {ALWAYS_ADD_SIGNATURE_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_BOARD_LANGUAGE}</span></td>
<td class="row2">{LANGUAGE_SELECT}</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_TIMEZONE}</span></td>
<td class="row2">{TIMEZONE_SELECT}</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_DATE_FORMAT}</span><br />
<span class="small">{L_DATE_FORMAT_EXPLAIN}</span></td>
<td class="row2">
<input class="post" type="text" name="dateformat" value="{DATE_FORMAT}" maxlength="16" />
</td>
</tr>
<tr>
<td class="cat" colspan="2">&nbsp;</td>
</tr>
<tr>
<th colspan="2">{L_AVATAR_PANEL}</th>
</tr>
<tr align="center">
<td class="row1" colspan="2">
<table width="70%">
<tr>
<td width="65%"><span class="small">{L_AVATAR_EXP}</span></td>
<td align="center"><span class="small">{L_CURRENT_IMAGE}</span><br />
{ADMIN_AVATAR}<br />
<input type="checkbox" name="avatardel" />
&nbsp;<span class="small">{L_DELETE_AVATAR}</span></td>
</tr>
</table>
</td>
</tr>
<!-- BEGIN avatar_local_upload -->
<tr>
<td class="row1"><span class="gen">{L_UPLOAD_AVATAR_FILE}</span></td>
<td class="row2">
<input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" />
<input type="file" name="avatar" class="post" style="width: 200px" />
</td>
</tr>
<!-- END avatar_local_upload -->
<!-- BEGIN avatar_remote_upload -->
<tr>
<td class="row1"><span class="gen">{L_UPLOAD_AVATAR_URL}</span></td>
<td class="row2">
<input class="post" type="text" name="avatarurl" size="40" style="width: 200px" />
</td>
</tr>
<!-- END avatar_remote_upload -->
<!-- BEGIN avatar_remote_link -->
<tr>
<td class="row1"><span class="gen">{L_LINK_REMOTE_AVATAR}</span></td>
<td class="row2">
<input class="post" type="text" name="avatarremoteurl" size="40" style="width: 200px" />
</td>
</tr>
<!-- END avatar_remote_link -->
<!-- BEGIN avatar_local_gallery -->
<tr>
<td class="row1"><span class="gen">{L_AVATAR_GALLERY}</span></td>
<td class="row2">
<input type="submit" name="avatargallery" value="{L_SHOW_GALLERY}" class="liteoption" />
</td>
</tr>
<!-- END avatar_local_gallery -->
<tr>
<td class="cat" colspan="2">&nbsp;</td>
</tr>
<tr>
<th colspan="2">{L_SPECIAL}</th>
</tr>
<tr>
<td class="row1" colspan="2"><span class="small">{L_SPECIAL_EXPLAIN}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_UPLOAD_QUOTA}</span></td>
<td class="row2">{S_SELECT_UPLOAD_QUOTA}</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_PM_QUOTA}</span></td>
<td class="row2">{S_SELECT_PM_QUOTA}</td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_USER_ACTIVE}</span></td>
<td class="row2">
<input type="radio" name="user_status" value="1" {USER_ACTIVE_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="user_status" value="0" {USER_ACTIVE_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ALLOW_PM}</span></td>
<td class="row2">
<input type="radio" name="user_allowpm" value="1" {ALLOW_PM_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="user_allowpm" value="0" {ALLOW_PM_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_ALLOW_AVATAR}</span></td>
<td class="row2">
<input type="radio" name="user_allowavatar" value="1" {ALLOW_AVATAR_YES} />
<span class="gen">{L_YES}</span>&nbsp;&nbsp;
<input type="radio" name="user_allowavatar" value="0" {ALLOW_AVATAR_NO} />
<span class="gen">{L_NO}</span></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_SELECT_RANK}</span></td>
<td class="row2"><select name="user_rank">{RANK_SELECT_BOX}</select></td>
</tr>
<tr>
<td class="row1"><span class="gen">{L_DELETE_USER}?</span></td>
<td class="row2">
<div>
<input type="checkbox" name="deleteuser">
{L_DELETE_USER_EXPLAIN}
</div>
<div id="del_user_options">
<input type="checkbox" name="delete_user_posts">
{L_DELETE_USER_POSTS}
</div>
</td>
</tr>
<tr>
<td class="catBottom" colspan="2">{S_HIDDEN_FIELDS}
<input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" />
&nbsp;&nbsp;
<input type="reset" value="{L_RESET}" class="liteoption" />
</td>
</tr>
</table></form>
<!--========================================================================-->
<!-- ENDIF / TPL_ADMIN_USER_EDIT -->
<!-- IF TPL_ADMIN_USER_AVATAR_GALLERY -->
<!--========================================================================-->
<h1>{L_USER_ADMIN}</h1>
<p>{L_USER_EXPLAIN}</p>
<br />
<form action="{S_PROFILE_ACTION}" method="post">
<table class="forumline">
<tr>
<th colspan="{S_COLSPAN}">{L_AVATAR_GALLERY}</th>
</tr>
<tr>
<td class="catBottom" colspan="6"><span class="med">{L_SELECT_CATEGORY}:&nbsp;<select name="avatarcategory">{S_OPTIONS_CATEGORIES}</select>&nbsp;<input type="submit" class="liteoption" value="{L_GO}" name="avatargallery" /></span></td>
</tr>
<!-- BEGIN avatar_row -->
<tr>
<!-- BEGIN avatar_column -->
<td class="row1" align="center"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" /></td>
<!-- END avatar_column -->
</tr>
<tr>
<!-- BEGIN avatar_option_column -->
<td class="row2" align="center"><input type="radio" name="avatarselect" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
<!-- END avatar_option_column -->
</tr>
<!-- END avatar_row -->
<tr>
<td class="catBottom" colspan="{S_COLSPAN}">{S_HIDDEN_FIELDS}
<input type="submit" name="submitavatar" value="{L_SELECT_AVATAR}" class="mainoption" />
&nbsp;&nbsp;
<input type="submit" name="cancelavatar" value="{L_RETURN_PROFILE}" class="liteoption" />
</td>
</tr>
</table>
</form>
<!--========================================================================-->
<!-- ENDIF / TPL_ADMIN_USER_AVATAR_GALLERY -->

View file

@ -1,9 +1,9 @@
<h1 class="pagetitle">Регистрация</h1>
<h1 class="pagetitle">{PAGE_TITLE}</h1>
<table class="forumline">
<tr>
<th>{$bb_cfg['sitename']} - Условия регистрации</th>
<th>{SITENAME} - {REGISTRATION}</th>
</tr>
<tr>
<td class="row1">

View file

@ -21,39 +21,39 @@ ajax.callback.user_register = function(data){
<col class="row2" width="65%">
<tbody class="pad_4">
<tr>
<th colspan="2">Регистрационная информация</th>
<th colspan="2">{L_REGISTRATION_INFO}</th>
</tr>
<tr>
<td class="row2 small" colspan="2">Поля отмеченные * обязательны к заполнению</td>
<td class="row2 small" colspan="2">{L_ITEMS_REQUIRED}</td>
</tr>
<tr>
<td>Имя: *</td>
<td>{L_USERNAME}: *</td>
<td><!-- IF CAN_EDIT_USERNAME --><input id="username" onBlur="ajax.exec({ action: 'user_register', mode: 'check_name', username: $('#username').val()}); return false;" type="text" name="username" size="35" maxlength="25" value="{USERNAME}" /><!-- ELSE --><b>{USERNAME}</b><!-- ENDIF -->
&nbsp;<span id="check_name"></span></td>
</tr>
<tr>
<td>Адрес email: * <!-- IF EDIT_PROFILE --><!-- ELSE --><h6>На этот адрес вам будет отправлено письмо для завершения регистрации</h6><!-- ENDIF --></td>
<td>{L_EMAIL}: * <!-- IF EDIT_PROFILE --><!-- ELSE IF $bb_cfg['reg_email_activation'] --><h6>{L_EMAIL_EXPLAIN}</h6><!-- ENDIF --></td>
<td><input id="email" onBlur="ajax.exec({ action: 'user_register', mode: 'check_email', email: $('#email').val()}); return false;" type="text" name="user_email" size="35" maxlength="40" value="{USER_EMAIL}" <!-- IF EDIT_PROFILE --><!-- IF $bb_cfg['email_change_disabled'] -->readonly="readonly" style="color: gray;"<!-- ENDIF --><!-- ENDIF --> />
<span id="check_email"></span></td>
</tr>
<!-- IF EDIT_PROFILE and not ADM_EDIT -->
<tr>
<td>Текущий пароль: * <h6>Вы должны указать ваш текущий пароль, если хотите изменить его или поменять свой e-mail</h6></td>
<td><input type="password" name="cur_pass" size="35" maxlength="20" value="" /></td>
<td>{L_CURRENT_PASSWORD}: * <h6>{L_CONFIRM_PASSWORD_EXPLAIN}</h6></td>
<td><input type="password" name="cur_pass" size="35" maxlength="32" value="" /></td>
</tr>
<!-- ENDIF -->
<tr>
<td><!-- IF EDIT_PROFILE -->Новый пароль: * <h6>Указывайте пароль только если вы хотите его поменять</h6><!-- ELSE -->Пароль: *<!-- ENDIF --></td>
<td><input id="pass" type="<!-- IF SHOW_PASS -->text<!-- ELSE -->password<!-- ENDIF -->" name="new_pass" size="35" maxlength="20" value="" /> &nbsp;<i class="med">максимум 20 символов</i></td>
<td><!-- IF EDIT_PROFILE -->{L_NEW_PASSWORD}: * <h6>{L_PASSWORD_IF_CHANGED}</h6><!-- ELSE -->{L_PASSWORD}: *<!-- ENDIF --></td>
<td><input id="pass" type="<!-- IF SHOW_PASS -->text<!-- ELSE -->password<!-- ENDIF -->" name="new_pass" size="35" maxlength="32" value="" /> &nbsp;<i class="med">{L_PASSWORD_LONG}</i></td>
</tr>
<tr>
<td>Подтвердите пароль: * <!-- IF EDIT_PROFILE --><h6>Подтверждать пароль нужно в том случае, если вы изменили его выше</h6><!-- ENDIF --></td>
<td><input id="pass_confirm" onBlur="ajax.exec({ action: 'user_register', mode: 'check_pass', pass: $('#pass').val(), pass_confirm: $('#pass_confirm').val() }); return false;" type="<!-- IF SHOW_PASS -->text<!-- ELSE -->password<!-- ENDIF -->" name="cfm_pass" size="35" maxlength="20" value="" />
<td>{L_CONFIRM_PASSWORD}: * <!-- IF EDIT_PROFILE --><h6>{L_PASSWORD_CONFIRM_IF_CHANGED}</h6><!-- ENDIF --></td>
<td><input id="pass_confirm" onBlur="ajax.exec({ action: 'user_register', mode: 'check_pass', pass: $('#pass').val(), pass_confirm: $('#pass_confirm').val() }); return false;" type="<!-- IF SHOW_PASS -->text<!-- ELSE -->password<!-- ENDIF -->" name="cfm_pass" size="35" maxlength="32" value="" />
<span id="check_pass"></span></td>
</tr>
<!-- IF CAPTCHA_HTML -->
<tr>
<td>Код подтверждения:</td>
<td>{L_CONFIRM_CODE}:</td>
<td>{CAPTCHA_HTML}</td>
</tr>
<!-- ENDIF -->
@ -83,15 +83,15 @@ ajax.callback.gen_passkey = function(data){
</tr>
<!-- END switch_bittorrent -->
<tr>
<th colspan="2">Профиль</th>
<th colspan="2">{L_PROFILE_INFO}</th>
</tr>
<tr>
<td>Пол:</td>
<td>Ïîë:</td>
<td>
<select name="user_gender" id="user_gender">
<option value="0" <!-- IF USER_GENDER_0 -->selected="selected"<!-- ENDIF -->>&nbsp;Не определилось&nbsp;</option>
<option value="1" <!-- IF USER_GENDER_1 -->selected="selected"<!-- ENDIF -->>&nbsp;Мужской&nbsp;</option>
<option value="2" <!-- IF USER_GENDER_2 -->selected="selected"<!-- ENDIF -->>&nbsp;Женский&nbsp;</option>
<option value="0" <!-- IF USER_GENDER_0 -->selected="selected"<!-- ENDIF -->>&nbsp;Íå îïðåäåëèëîñü&nbsp;</option>
<option value="1" <!-- IF USER_GENDER_1 -->selected="selected"<!-- ENDIF -->>&nbsp;Ìóæñêîé&nbsp;</option>
<option value="2" <!-- IF USER_GENDER_2 -->selected="selected"<!-- ENDIF -->>&nbsp;Æåíñêèé&nbsp;</option>
</select>
</td>
</tr>
@ -108,49 +108,38 @@ ajax.callback.gen_passkey = function(data){
<td><input type="text" name="user_skype" size="30" maxlength="15" value="{USER_SKYPE}" /></td>
</tr>
<tr>
<td>Сайт:</td>
<td>{L_WEBSITE}:</td>
<td><input type="text" name="user_website" size="50" maxlength="100" value="{USER_WEBSITE}" /></td>
</tr>
<tr>
<td>Род занятий:</td>
<td>{L_OCCUPATION}:</td>
<td><input type="text" name="user_occ" size="50" maxlength="100" value="{USER_OCC}" /></td>
</tr>
<tr>
<td>Интересы:</td>
<td>{L_INTERESTS}:</td>
<td><input type="text" name="user_interests" size="50" maxlength="150" value="{USER_INTERESTS}" /></td>
</tr>
<tr>
<td>Откуда:</td>
<td>{L_LOCATION}:</td>
<td>
<div><input type="text" name="user_from" size="50" maxlength="100" value="{USER_FROM}" /></div>
</td>
</tr>
<!-- ENDIF -->
<tr>
<td>Часовой пояс:</td>
<td>{L_TIMEZONE}:</td>
<td>{TIMEZONE_SELECT}</td>
</tr>
<!-- IF EDIT_PROFILE -->
<tr>
<th colspan="2">Личные настройки</th>
<th colspan="2">{L_PREFERENCES}</th>
</tr>
<!-- IF SIG_DISALLOWED -->
<tr>
<td colspan="2" class="tCenter pad_12">Опция управления подписью отключена за нарушение <a href="{$bb_cfg['terms_and_conditions_url']}"><b>правил форума</b></a></td>
</tr>
<!-- ELSE -->
<!-- IF not SIG_DISALLOWED -->
<tr colspan="2" id="view_message" class="hidden">
<td colspan="2">
<div class="signature"></div>
</td>
</tr>
<tr>
<td>Подпись:<h6>максимум {$bb_cfg['max_sig_chars']} символов</h6></td>
<td>
<textarea id="user_sig" name="user_sig" rows="5" cols="60" style="width: 96%;">{USER_SIG}</textarea>
<input type="button" value="Быстрый предпросмотр" onclick="ajax.exec({ action: 'view_message', message: $('textarea#user_sig').val() });">
</td>
</tr>
<script type="text/javascript">
ajax.callback.view_message = function(data){
$('#view_message').show();
@ -159,13 +148,46 @@ ajax.callback.view_message = function(data){
};
</script>
<!-- ENDIF -->
<tr>
<td>{L_SIGNATURE}:<h6>{SIGNATURE_EXPLAIN}</h6></td>
<!-- IF SIG_DISALLOWED -->
<td class="tCenter">{L_SIGNATURE_DISABLE}</td>
<!-- ELSE -->
<td>
<textarea id="user_sig" name="user_sig" rows="5" cols="60" style="width: 96%;">{USER_SIG}</textarea>
<input type="button" value="{L_PREVIEW}" onclick="ajax.exec({ action: 'view_message', message: $('textarea#user_sig').val() });">
</td>
<!-- ENDIF -->
</tr>
<tr>
<td>{L_PUBLIC_VIEW_EMAIL}:</td>
<td>
<label><input type="radio" name="viewemail" value="1" <!-- IF VIEWEMAIL -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="viewemail" value="0" <!-- IF not VIEWEMAIL -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<tr>
<td>{L_HIDE_USER}:</td>
<td>
<label><input type="radio" name="allow_viewonline" value="1" <!-- IF ALLOW_VIEWONLINE -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="allow_viewonline" value="0" <!-- IF not ALLOW_VIEWONLINE -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<tr>
<td>{L_ALWAYS_NOTIFY}:<h6>{L_ALWAYS_NOTIFY_EXPLAIN}</h6></td>
<td>
<label><input type="radio" name="notify" value="1" <!-- IF NOTIFY -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="notify" value="0" <!-- IF not NOTIFY -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<!-- IF $bb_cfg['pm_notify_enabled'] -->
<tr>
<td>Уведомлять о новых личных сообщениях:</td>
<td>{L_NOTIFY_ON_PRIVMSG}:</td>
<td>
<label><input type="radio" name="notify_pm" value="1" <!-- IF NOTIFY_PM -->checked="checked"<!-- ENDIF --> /> Да</label>&nbsp;&nbsp;
<label><input type="radio" name="notify_pm" value="0" <!-- IF not NOTIFY_PM -->checked="checked"<!-- ENDIF --> /> Нет</label>
<label><input type="radio" name="notify_pm" value="1" <!-- IF NOTIFY_PM -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="notify_pm" value="0" <!-- IF not NOTIFY_PM -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<!-- ENDIF -->
@ -173,8 +195,8 @@ ajax.callback.view_message = function(data){
<tr>
<td>{L_HIDE_PORN_FORUMS}:</td>
<td>
<label><input type="radio" name="hide_porn_forums" value="1" <!-- IF HIDE_PORN_FORUMS -->checked="checked"<!-- ENDIF --> /> Да</label>&nbsp;&nbsp;
<label><input type="radio" name="hide_porn_forums" value="0" <!-- IF not HIDE_PORN_FORUMS -->checked="checked"<!-- ENDIF --> /> Нет</label>
<label><input type="radio" name="hide_porn_forums" value="1" <!-- IF HIDE_PORN_FORUMS -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="hide_porn_forums" value="0" <!-- IF not HIDE_PORN_FORUMS -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<!-- ENDIF -->
@ -244,11 +266,11 @@ ajax.callback.view_message = function(data){
</style>
<div id="infobox-wrap" class="bCenter row1">
<fieldset class="pad_6">
<legend class="med bold mrg_2 warnColor1">Для продолжения регистрации Вы должны принять наше ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ</legend>
<legend class="med bold mrg_2 warnColor1">{L_USER_AGREEMENT_HEAD}</legend>
<div class="bCenter">
<?php include($bb_cfg['user_agreement_html_path']) ?>
</div>
<p class="med bold mrg_4 tCenter"><label><input type="checkbox" value="" checked="checked" disabled="disabled" /> Я прочел ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ и обязуюсь его не нарушать</label></p>
<p class="med bold mrg_4 tCenter"><label><input type="checkbox" value="" checked="checked" disabled="disabled" /> {L_USER_AGREEMENT_AGREE}</label></p>
</fieldset>
</div><!--/infobox-wrap-->
</td>
@ -257,9 +279,9 @@ ajax.callback.view_message = function(data){
<tr>
<td class="catBottom" colspan="2">
<div>
<!-- IF EDIT_PROFILE --><input type="reset" value="Вернуть" name="reset" /> &nbsp; <!-- ENDIF -->
<input type="submit" name="submit" value="Отправить<!-- IF SHOW_REG_AGREEMENT --> (Я согласен с условиями)<!-- ENDIF -->" class="bold" />
<div id="submit-buttons">
<!-- IF EDIT_PROFILE --><input type="reset" value="{L_RESET}" name="reset" class="lite" />&nbsp;&nbsp;<!-- ENDIF -->
<input type="submit" name="submit" value="{L_SUBMIT}" class="main" />
</div>
</td>
</tr>

View file

@ -255,7 +255,7 @@ $(document).ready(function(){
</tr>
<!-- IF SIGNATURE -->
<tr>
<td class="row1" colspan="2">
<td class="row1 pad_4" colspan="2">
<div class="signature">{SIGNATURE}</div>
</td>
</tr>

View file

@ -25,7 +25,7 @@ $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
//
// Get user list
//
$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_ip
$sql = "SELECT u.user_id, u.username, u.user_opt, u.user_level, s.session_logged_in, s.session_time, s.session_ip
FROM ".BB_USERS." u, ".BB_SESSIONS." s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ".( time() - 300 ) . "
@ -72,7 +72,7 @@ while ( $row = DB()->sql_fetchrow($result) )
$username = '<b class="colorGroup">' . $username . '</b>';
}
if ( !$row['user_allow_viewonline'] )
if ( bf($row['user_opt'], 'user_opt', 'allow_viewonline') )
{
$view_online = IS_AM;
$hidden_users++;

View file

@ -866,7 +866,7 @@ for($i = 0; $i < $total_posts; $i++)
$user_sig = ($bb_cfg['allow_sig'] && !$user->opt_js['h_sig'] && $postrow[$i]['user_sig']) ? $postrow[$i]['user_sig'] : '';
if(bf($postrow[$i]['user_opt'], 'user_opt', 'allow_sig'))
{ $user_sig = 'Ïîäïèñü óäàëåíà.'; }
{ $user_sig = $lang['SIGNATURE_DISABLE']; }
else if ($user_sig)
{
$user_sig = bbcode2html($user_sig);
@ -1036,7 +1036,7 @@ if ($bb_cfg['show_quick_reply'])
if (!IS_GUEST)
{
$template->assign_vars(array(
'QR_NOTIFY_CHECKED' => ($userdata['user_notify'] || $is_watching_topic),
'QR_NOTIFY_CHECKED' => (bf($userdata['user_opt'], 'user_opt', 'notify') || $is_watching_topic),
));
}
}