/upload/includes/ucp/usercp_register.php
PHP | 791 lines | 627 code | 83 blank | 81 comment | 163 complexity | 99652ee64ee5d919219529210a634f6f MD5 | raw file
- <?php
-
- if (!defined('BB_ROOT')) die(basename(__FILE__));
-
- array_deep($_POST, 'trim');
-
- set_die_append_msg();
-
- if (IS_ADMIN)
- {
- $bb_cfg['reg_email_activation'] = false;
-
- $new_user = (int) request_var('admin', '');
- if ($new_user) $gen_simple_header = true;
-
- $template->assign_vars(array(
- 'NEW_USER' => $new_user,
- ));
- }
-
- $can_register = (IS_GUEST || IS_ADMIN);
-
- $submit = !empty($_POST['submit']);
- $errors = array();
- $adm_edit = false; // ?????????????? ??????? ?????? ???????
-
- require(INC_DIR .'bbcode.php');
- require(INC_DIR .'functions_validate.php');
- require(INC_DIR .'functions_selects.php');
-
- $pr_data = array(); // ?????? ?????????????? ???? ???????????????? ???????
- $db_data = array(); // ?????? ??? ????: ??????????????? ???? ?????????? ?????? ?????
- $tp_data = array(); // ?????? ??? tpl
-
- // ?????? ???????
- switch ($mode)
- {
- /**
- * ???????????
- */
- case 'register':
- if (!$can_register)
- {
- redirect('index.php');
- }
- if (!IS_ADMIN)
- {
- // ??????????? ?? ip
- if($bb_cfg['unique_ip'])
- {
- if($users = DB()->fetch_row("SELECT user_id, username FROM ". BB_USERS ." WHERE user_reg_ip = '". USER_IP ."' LIMIT 1"))
- {
- bb_die(sprintf($lang['ALREADY_REG_IP'], '<a href="'. PROFILE_URL . $users['user_id'] .'"><b>'. $users['username'] .'</b></a>', $bb_cfg['tech_admin_email']));
- }
- }
- // ?????????? ???????????
- if ($bb_cfg['new_user_reg_disabled'] || ($bb_cfg['reg_email_activation'] && $bb_cfg['emailer_disabled']))
- {
- bb_die($lang['NEW_USER_REG_DISABLED']);
- }
- // ??????????? ?? ???????
- else if ($bb_cfg['new_user_reg_restricted'])
- {
- if (in_array(date('G'), array(0,/*1,2,3,4,5,6,7,8,11,12,13,14,15,16,*/17,18,19,20,21,22,23)))
- {
- bb_die($lang['REGISTERED_IN_TIME']);
- }
- }
- }
-
- // field => can_edit
- $profile_fields = array(
- 'username' => true,
- 'user_password' => true,
- 'user_email' => true,
- 'user_timezone' => true,
- 'user_lang' => true,
- );
-
- $pr_data = array(
- 'user_id' => GUEST_UID,
- 'username' => '',
- 'user_password' => '',
- 'user_email' => '',
- 'user_timezone' => $bb_cfg['board_timezone'],
- 'user_lang' => $bb_cfg['default_lang'],
- 'user_opt' => 0,
- 'avatar_ext_id' => 0,
- );
- break;
-
- /**
- * ?????????????? ???????
- */
- case 'editprofile':
- if (IS_GUEST)
- {
- login_redirect();
- }
-
- // field => can_edit
- $profile_fields = array(
- 'user_active' => IS_ADMIN,
- 'username' => (IS_ADMIN || $bb_cfg['allow_namechange']),
- 'user_password' => true,
- 'user_email' => true, // ?????? ???? ????? user_password
- 'user_lang' => true,
- 'user_gender' => true,
- 'user_birthday' => true,
- 'user_timezone' => true,
- 'user_opt' => true,
- 'avatar_ext_id' => true,
- 'user_icq' => true,
- 'user_skype' => true,
- 'user_website' => true,
- 'user_from' => true,
- 'user_sig' => true,
- 'user_occ' => true,
- 'user_interests' => true,
- 'tpl_name' => true,
- );
-
- // ????? ???????: ??? ????? ????, ??? ?????? ?????
- if (IS_ADMIN && !empty($_REQUEST['u']))
- {
- $pr_user_id = (int) $_REQUEST['u'];
- $adm_edit = ($pr_user_id != $userdata['user_id']);
- }
- else
- {
- $pr_user_id = $userdata['user_id'];
- }
- $profile_fields_sql = join(', ', array_keys($profile_fields));
- $sql = "
- SELECT
- user_id,
- user_rank,
- user_level,
- user_email,
- $profile_fields_sql
- FROM ". BB_USERS ."
- WHERE user_id = $pr_user_id
- LIMIT 1
- ";
- if (!$pr_data = DB()->fetch_row($sql))
- {
- bb_die($lang['PROFILE_NOT_FOUND']);
- }
- break;
-
- default:
- trigger_error("invalid mode: $mode", E_USER_ERROR);
- }
-
- // CAPTCHA
- $need_captcha = ($mode == 'register' && !IS_ADMIN);
-
- if ($submit)
- {
- if ($need_captcha && !CAPTCHA()->verify_code())
- {
- $errors[] = $lang['CONFIRM_CODE_WRONG'];
- }
- }
-
- // ????????? ??????
- $cur_pass_valid = $adm_edit;
-
- foreach ($profile_fields as $field => $can_edit)
- {
- switch ($field)
- {
- /**
- * ????????? (edit, reg)
- */
- case 'user_active':
- $active = isset($_POST['user_active']) ? (int) $_POST['user_active'] : $pr_data['user_active'];
- if ($submit && $adm_edit)
- {
- $pr_data['user_active'] = $active;
- $db_data['user_active'] = $active;
- }
- break;
-
- /**
- * ??? (edit, reg)
- */
- case 'username':
- $username = !empty($_POST['username']) ? clean_username($_POST['username']) : $pr_data['username'];
-
- if ($submit)
- {
- $err = validate_username($username);
- if (!$errors AND $err && $mode == 'register')
- {
- $errors[] = $err;
- }
- if ($can_edit && $username != $pr_data['username'] || $mode == 'register')
- {
- $pr_data['username'] = $username;
- $db_data['username'] = $username;
- }
- }
- $tp_data['CAN_EDIT_USERNAME'] = $can_edit;
- $tp_data['USERNAME'] = $pr_data['username'];
- break;
-
- /**
- * ?????? (edit, reg)
- */
- case 'user_password':
- if ($submit)
- {
- $cur_pass = (string) @$_POST['cur_pass'];
- $new_pass = (string) @$_POST['new_pass'];
- $cfm_pass = (string) @$_POST['cfm_pass'];
-
- // ?????? ??? ????? ? ??? ????? ?????? ??????
- if (!empty($new_pass))
- {
- if (mb_strlen($new_pass, 'UTF-8') > 20)
- {
- $errors[] = sprintf($lang['CHOOSE_PASS_ERR_MAX'], 20);
- }
- elseif (mb_strlen($new_pass, 'UTF-8') < 4)
- {
- $errors[] = sprintf($lang['CHOOSE_PASS_ERR_MIN'], 4);
- }
- elseif ($new_pass != $cfm_pass)
- {
- $errors[] = $lang['CHOOSE_PASS_ERR'];
- }
- $db_data['user_password'] = md5(md5($new_pass));
- }
-
- if ($mode == 'register')
- {
- if (empty($new_pass))
- {
- $errors[] = $lang['CHOOSE_PASS'];
- }
- }
- else
- {
- if (!empty($cur_pass))
- {
- $cur_pass_valid = ($pr_data['user_password'] === md5(md5($cur_pass)));
- }
- if (!empty($new_pass) && !$cur_pass_valid)
- {
- $errors[] = $lang['CHOOSE_PASS_FAILED'];
- }
- }
- }
- break;
-
- /**
- * E-mail (edit, reg)
- */
- case 'user_email':
- $email = !empty($_POST['user_email']) ? (string) $_POST['user_email'] : $pr_data['user_email'];
- if ($submit)
- {
- if ($mode == 'register')
- {
- if (empty($email))
- {
- $errors[] = $lang['CHOOSE_E_MAIL'];
- }
- if (!$errors AND $err = validate_email($email))
- {
- $errors[] = $err;
- }
- $db_data['user_email'] = $email;
- }
- else if ($email != $pr_data['user_email']) // ???? ????? ????? ??????
- {
- if (!$cur_pass_valid)
- {
- $errors[] = $lang['CONFIRM_PASSWORD_EXPLAIN'];
- }
- if (!$errors AND $err = validate_email($email))
- {
- $errors[] = $err;
- }
- if ($bb_cfg['reg_email_activation'])
- {
- $pr_data['user_active'] = 0;
- $db_data['user_active'] = 0;
- }
- $db_data['user_email'] = $email;
- }
- }
- $tp_data['USER_EMAIL'] = htmlCHR($email);
- break;
-
- /**
- * ???? (edit, reg)
- */
- case 'user_lang':
- $user_lang = isset($_POST['user_lang']) ? (string) $_POST['user_lang'] : $pr_data['user_lang'];
- if ($submit && ($user_lang != $pr_data['user_lang'] || $mode == 'register'))
- {
- $pr_data['user_lang'] = $user_lang;
- $db_data['user_lang'] = $user_lang;
- }
- break;
-
- /**
- * ??????? ???? (edit, reg)
- */
- case 'user_timezone':
- $user_timezone = isset($_POST['user_timezone']) ? (int) $_POST['user_timezone'] : $pr_data['user_timezone'];
- if ($submit && ($user_timezone != $pr_data['user_timezone'] || $mode == 'register'))
- {
- if (isset($lang['TZ'][$user_timezone]))
- {
- $pr_data['user_timezone'] = $user_timezone;
- $db_data['user_timezone'] = $user_timezone;
- }
- }
- break;
-
- /**
- * ??? (edit, reg)
- */
- case 'user_gender':
- $gender = isset($_POST['user_gender']) ? (int) $_POST['user_gender'] : $pr_data['user_gender'];
- if ($submit && $gender != $pr_data['user_gender'])
- {
- $pr_data['user_gender'] = $gender;
- $db_data['user_gender'] = $gender;
- }
- $tp_data['USER_GENDER'] = build_select('user_gender', array_flip($lang['GENDER_SELECT']), $pr_data['user_gender']);
- break;
-
- /**
- * ??????? (edit)
- */
- case 'user_birthday':
- $user_birthday = ($pr_data['user_birthday'] != '0000-00-00') ? strtotime($pr_data['user_birthday']) : false;
-
- $b_day = (isset($_POST['b_day'])) ? (int) $_POST['b_day'] : (($user_birthday) ? date('j', $user_birthday) : 0);
- $b_md = (isset($_POST['b_md'])) ? (int) $_POST['b_md'] : (($user_birthday) ? date('n', $user_birthday) : 0);
- $b_year = (isset($_POST['b_year'])) ? (int) $_POST['b_year'] : (($user_birthday) ? date('Y', $user_birthday) : 0);
-
- if ($b_day || $b_md || $b_year)
- {
- if (!checkdate($b_md, $b_day, $b_year))
- {
- $errors[] = $lang['WRONG_BIRTHDAY_FORMAT'];
- $birthday = '';
- $next_birthday_greeting = 0;
- }
- else
- {
- $birthday = "$b_year-$b_md-$b_day";
- $next_birthday_greeting = (date('md') < $b_md . (($b_day <= 9) ? '0' : '') . $b_day) ? date('Y') : date('Y') + 1;
- }
- }
- else
- {
- $birthday = '';
- $next_birthday_greeting = 0;
- }
-
- if ($submit && $birthday != $pr_data['user_birthday'])
- {
- $pr_data['user_birthday'] = $birthday;
- $db_data['user_birthday'] = $birthday;
- $db_data['user_next_birthday_greeting'] = $next_birthday_greeting;
- }
- break;
-
- /**
- * opt (edit)
- */
- case 'user_opt':
- $user_opt = $pr_data['user_opt'];
-
- $update_user_opt = array(
- 'viewemail' => true,
- 'allow_viewonline' => true,
- 'notify' => true,
- 'notify_pm' => true,
- 'hide_porn_forums' => true,
- 'allow_dls' => true,
- );
- foreach ($update_user_opt as $opt => $can_change_opt)
- {
- if ($submit && $can_change_opt && isset($_POST[$opt]))
- {
- setbit($user_opt, $bf['user_opt'][$opt], !empty($_POST[$opt]));
- }
- $tp_data[strtoupper($opt)] = bf($user_opt, 'user_opt', $opt);
- }
- if ($submit && $user_opt != $pr_data['user_opt'])
- {
- $pr_data['user_opt'] = $user_opt;
- $db_data['user_opt'] = (int) $user_opt;
- }
- break;
-
- /**
- * Avatar (edit)
- */
- case 'avatar_ext_id':
- if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'allow_avatar'))
- {
- if (isset($_POST['delete_avatar']))
- {
- delete_avatar($pr_data['user_id'], $pr_data['avatar_ext_id']);
- $pr_data['avatar_ext_id'] = 0;
- $db_data['avatar_ext_id'] = 0;
- }
- else if (!empty($_FILES['avatar']['name']) && $bb_cfg['avatars']['up_allowed'])
- {
- require(INC_DIR .'functions_upload.php');
- $upload = new upload_common();
-
- if ($upload->init($bb_cfg['avatars'], $_FILES['avatar']) AND $upload->store('avatar', $pr_data))
- {
- $pr_data['avatar_ext_id'] = $upload->file_ext_id;
- $db_data['avatar_ext_id'] = (int) $upload->file_ext_id;
- }
- else
- {
- $errors = array_merge($errors, $upload->errors);
- }
- }
- }
- break;
-
- /**
- * ICQ (edit)
- */
- case 'user_icq':
- $icq = isset($_POST['user_icq']) ? (string) $_POST['user_icq'] : $pr_data['user_icq'];
- if ($submit && $icq != $pr_data['user_icq'])
- {
- if ($icq == '' || preg_match('#^\d{6,15}$#', $icq))
- {
- $pr_data['user_icq'] = $icq;
- $db_data['user_icq'] = (string) $icq;
- }
- else
- {
- $pr_data['user_icq'] = '';
- $errors[] = htmlCHR($lang['ICQ_ERROR']);
- }
- }
- $tp_data['USER_ICQ'] = $pr_data['user_icq'];
- break;
-
- /**
- * ???? (edit)
- */
- case 'user_website':
- $website = isset($_POST['user_website']) ? (string) $_POST['user_website'] : $pr_data['user_website'];
- $website = htmlCHR($website);
- if ($submit && $website != $pr_data['user_website'])
- {
- if ($website == '' || preg_match('#^https?://[\w\#!$%&~/.\-;:=,?@?-??-?\[\]+]+$#iu', $website))
- {
- $pr_data['user_website'] = $website;
- $db_data['user_website'] = (string) $website;
- }
- else
- {
- $pr_data['user_website'] = '';
- $errors[] = htmlCHR($lang['WEBSITE_ERROR']);
- }
- }
- $tp_data['USER_WEBSITE'] = $pr_data['user_website'];
- break;
-
- /**
- * ?????? (edit)
- */
- case 'user_from':
- $from = isset($_POST['user_from']) ? (string) $_POST['user_from'] : $pr_data['user_from'];
- $from = htmlCHR($from);
- if ($submit && $from != $pr_data['user_from'])
- {
- $pr_data['user_from'] = $from;
- $db_data['user_from'] = (string) $from;
- }
- $tp_data['USER_FROM'] = $pr_data['user_from'];
- break;
-
- /**
- * ??????? (edit)
- */
- case 'user_sig':
- $sig = isset($_POST['user_sig']) ? (string) $_POST['user_sig'] : $pr_data['user_sig'];
- if ($submit && $sig != $pr_data['user_sig'])
- {
- $sig = prepare_message($sig);
-
- if (mb_strlen($sig, 'UTF-8') > $bb_cfg['max_sig_chars'])
- {
- $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[] = $lang['SIGNATURE_ERROR_HTML'];
- }
-
- $pr_data['user_sig'] = $sig;
- $db_data['user_sig'] = (string) $sig;
- }
- $tp_data['USER_SIG'] = $pr_data['user_sig'];
- break;
-
- /**
- * ??? ??????? (edit)
- */
- case 'user_occ':
- $occ = isset($_POST['user_occ']) ? (string) $_POST['user_occ'] : $pr_data['user_occ'];
- $occ = htmlCHR($occ);
- if ($submit && $occ != $pr_data['user_occ'])
- {
- $pr_data['user_occ'] = $occ;
- $db_data['user_occ'] = (string) $occ;
- }
- $tp_data['USER_OCC'] = $pr_data['user_occ'];
- break;
-
- /**
- * ????????
- */
- case 'user_interests':
- $interests = isset($_POST['user_interests']) ? (string) $_POST['user_interests'] : $pr_data['user_interests'];
- $interests = htmlCHR($interests);
- if ($submit && $interests != $pr_data['user_interests'])
- {
- $pr_data['user_interests'] = $interests;
- $db_data['user_interests'] = (string) $interests;
- }
- $tp_data['USER_INTERESTS'] = $pr_data['user_interests'];
- break;
-
- /**
- * Skype
- */
- case 'user_skype':
- $skype = isset($_POST['user_skype']) ? (string) $_POST['user_skype'] : $pr_data['user_skype'];
- if ($submit && $skype != $pr_data['user_skype'])
- {
- if ($skype != '' && !preg_match("#^[a-zA-Z0-9_.\-@,]{6,32}$#", $skype))
- {
- $errors[] = $lang['SKYPE_ERROR'];
- }
- $pr_data['user_skype'] = $skype;
- $db_data['user_skype'] = (string) $skype;
- }
- $tp_data['USER_SKYPE'] = $pr_data['user_skype'];
- break;
-
- /**
- * ????? ??????? (edit)
- */
- case 'tpl_name':
- $templates = isset($_POST['tpl_name']) ? (string) $_POST['tpl_name'] : $pr_data['tpl_name'];
- $templates = htmlCHR($templates);
- if ($submit && $templates != $pr_data['tpl_name'])
- {
- $pr_data['tpl_name'] = $bb_cfg['tpl_name'];
- $db_data['tpl_name'] = (string) $bb_cfg['tpl_name'];
- foreach ($bb_cfg['templates'] as $folder => $name)
- {
- if ($templates == $folder)
- {
- $pr_data['tpl_name'] = $templates;
- $db_data['tpl_name'] = (string) $templates;
- }
- }
- }
- $tp_data['TEMPLATES_SELECT'] = templates_select($pr_data['tpl_name'], 'tpl_name');
- break;
-
- /**
- * default
- */
- default:
- trigger_error("invalid profile field: $field", E_USER_ERROR);
- }
- }
-
- if ($bb_cfg['birthday_enabled'] && $mode != 'register')
- {
- $days = array($lang['DELTA_TIME']['INTERVALS']['mday'][0] => 0);
- for ($i = 1; $i <= 31; $i++)
- {
- $days[$i] = $i;
- }
- $s_birthday = build_select('b_day', $days, $b_day);
-
- $months = array($lang['DELTA_TIME']['INTERVALS']['mon'][0] => 0);
- for ($i = 1; $i <= 12; $i++)
- {
- $month = bb_date(mktime(0, 0, 0, ($i+1), 0, 0), 'F');
- $months[$month] = $i;
- }
- $s_birthday .= build_select('b_md', $months, $b_md);
-
- $year = bb_date(TIMENOW, 'Y', 'false');
- $years = array($lang['DELTA_TIME']['INTERVALS']['year'][0] => 0);
- for ($i = $year-$bb_cfg['birthday_max_age']; $i <= $year - $bb_cfg['birthday_min_age']; $i++)
- {
- $years[$i] = $i;
- }
- $s_birthday .= build_select('b_year', $years, $b_year);
- $tp_data['BIRTHDAY'] = $s_birthday;
- }
-
- // submit
- if ($submit && !$errors)
- {
- /**
- * ???????? ?????? ???????
- */
- if ($mode == 'register')
- {
- if ($bb_cfg['reg_email_activation'])
- {
- $user_actkey = make_rand_str(12);
- $db_data['user_active'] = 0;
- $db_data['user_actkey'] = $user_actkey;
- }
- else
- {
- $db_data['user_active'] = 1;
- $db_data['user_actkey'] = '';
- }
- $db_data['user_regdate'] = TIMENOW;
-
- if (!IS_ADMIN) $db_data['user_reg_ip'] = USER_IP;
-
- if (!isset($db_data['tpl_name'])) $db_data['tpl_name'] = (string) $bb_cfg['tpl_name'];
-
- $sql_args = DB()->build_array('INSERT', $db_data);
-
- DB()->query("INSERT INTO ". BB_USERS . $sql_args);
- $new_user_id = DB()->sql_nextid();
-
- if (IS_ADMIN)
- {
- set_pr_die_append_msg($new_user_id);
- $message = $lang['ACCOUNT_ADDED'];
- }
- else
- {
- if ($bb_cfg['reg_email_activation'])
- {
- $message = $lang['ACCOUNT_INACTIVE'];
- $email_template = 'user_welcome_inactive';
- }
- else
- {
- $message = $lang['ACCOUNT_ADDED'];
- $email_template = 'user_welcome';
- }
-
- require(INC_DIR .'emailer.class.php');
- $emailer = new emailer($bb_cfg['smtp_delivery']);
-
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
- $emailer->email_address("$username <$email>");
-
- $emailer->use_template($email_template, $user_lang);
-
- $emailer->assign_vars(array(
- 'SITENAME' => $bb_cfg['sitename'],
- 'WELCOME_MSG' => sprintf($lang['WELCOME_SUBJECT'], $bb_cfg['sitename']),
- 'USERNAME' => html_entity_decode($username),
- 'PASSWORD' => $new_pass,
-
- 'U_ACTIVATE' => make_url('profile.php?mode=activate&' . POST_USERS_URL . '=' . $new_user_id . '&act_key=' . $db_data['user_actkey'])
- ));
-
- $emailer->send();
- $emailer->reset();
- }
-
- bb_die($message);
- }
- /**
- * ??????????????
- */
- else
- {
- set_pr_die_append_msg($pr_data['user_id']);
-
- // ???? ???-?? ???? ????????
- if ($db_data)
- {
- if (!$pr_data['user_active'])
- {
- $user_actkey = make_rand_str(12);
- $pr_data['user_actkey'] = $user_actkey;
- $db_data['user_actkey'] = $user_actkey;
-
- require(INC_DIR .'emailer.class.php');
- $emailer = new emailer($bb_cfg['smtp_delivery']);
-
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
- $emailer->use_template('user_activate', $pr_data['user_lang']);
- $emailer->email_address("$username <$email>");
-
- $emailer->assign_vars(array(
- 'SITENAME' => $bb_cfg['sitename'],
- 'USERNAME' => html_entity_decode($username),
- 'U_ACTIVATE' => make_url("profile.php?mode=activate&u={$pr_data['user_id']}&act_key=$user_actkey"),
- ));
- $emailer->send();
- $emailer->reset();
-
- $message = $lang['PROFILE_UPDATED_INACTIVE'];
- $user->session_end();
- }
- else
- {
- meta_refresh('index.php' , 10);
- $message = $lang['PROFILE_UPDATED'];
- }
-
- $sql_args = DB()->build_array('UPDATE', $db_data);
-
- DB()->query("UPDATE ". BB_USERS ." SET $sql_args WHERE user_id = {$pr_data['user_id']} LIMIT 1");
-
- if ($pr_data['user_id'] != $userdata['user_id'])
- {
- if ($pr_data['user_level'] == MOD && !empty($db_data['username']))
- {
- $datastore->update('moderators');
- }
- }
-
- cache_rm_user_sessions ($pr_data['user_id']);
-
- if($adm_edit)
- {
- bb_die($lang['PROFILE_USER'] . ' <b>'. profile_url($pr_data) .'</b> '. $lang['GOOD_UPDATE']);
- }
- elseif(!$pr_data['user_active'])
- {
- bb_die($lang['PROFILE_UPDATED_INACTIVE']);
- }
- else
- {
- meta_refresh('index.php' , 10);
- bb_die($lang['PROFILE_UPDATED']);
- }
- }
- else
- {
- bb_die($lang['NOTHING_HAS_CHANGED']);
- }
- }
- }
-
- $template->assign_vars($tp_data);
-
- $template->assign_vars(array(
- 'PAGE_TITLE' => ($mode == 'editprofile') ? $lang['EDIT_PROFILE'] . ($adm_edit ? " :: {$pr_data['username']}" : '') : $lang['REGISTER'],
- 'SHOW_REG_AGREEMENT' => ($mode == 'register' && !IS_ADMIN),
- 'ERROR_MESSAGE' => ($errors) ? join('<br />', array_unique($errors)) : '',
- 'MODE' => $mode,
- 'EDIT_PROFILE' => ($mode == 'editprofile'),
- 'ADM_EDIT' => $adm_edit,
- 'SHOW_PASS' => ($adm_edit || ($mode == 'register' && IS_ADMIN)),
- 'CAPTCHA_HTML' => ($need_captcha) ? CAPTCHA()->get_html() : '',
-
- 'LANGUAGE_SELECT' => language_select($user_lang, 'user_lang'),
- 'TIMEZONE_SELECT' => tz_select($user_timezone, 'user_timezone'),
- 'USER_TIMEZONE' => $pr_data['user_timezone'],
-
- 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], (round($bb_cfg['avatars']['max_size'] / 1024))),
- 'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'allow_avatar'),
-
- '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_URL . "?logout=1&reset_autologin=1&sid={$userdata['session_id']}",
-
- 'AVATAR_URL_PATH' => ($pr_data['avatar_ext_id']) ? get_avatar_path($pr_data['user_id'], $pr_data['avatar_ext_id']) : '',
- ));
-
- print_page('usercp_register.tpl');