diff --git a/upload/ajax/user_register.php b/upload/ajax/user_register.php index 2cbd3d2b3..b7dbed8d9 100644 --- a/upload/ajax/user_register.php +++ b/upload/ajax/user_register.php @@ -14,7 +14,7 @@ switch($mode) if (empty($username)) { - $html = ' '.$lang['CHOOSE_A_NAME'].''; + $html = ' '. $lang['CHOOSE_A_NAME'] .''; } else if($err = validate_username($username)) { @@ -26,7 +26,7 @@ switch($mode) if (empty($email)) { - $html = ' '.$lang['CHOOSE_E_MAIL'].''; + $html = ' '. $lang['CHOOSE_E_MAIL'] .''; } else if($err = validate_email($email)) { @@ -38,18 +38,29 @@ switch($mode) $pass_confirm = (string) $this->request['pass_confirm']; if (empty($pass) || empty($pass_confirm)) { - $html = ' '.$lang['CHOOSE_PASS'].''; + $html = ' '. $lang['CHOOSE_PASS'] .''; } else { - if ($pass != $pass_confirm) + if ($pass != $pass_confirm) { - $html = ' '.$lang['CHOOSE_PASS_ERR'].''; + $html = ' '. $lang['CHOOSE_PASS_ERR'] .''; } else { - $text = (IS_GUEST) ? $lang['CHOOSE_PASS_REG_OK'] : $lang['CHOOSE_PASS_OK']; - $html = ' '.$text.''; + if (mb_strlen($pass, 'UTF-8') > 20) + { + $html = ' '. sprintf($lang['CHOOSE_PASS_ERR_MAX'], 20) .''; + } + elseif (mb_strlen($pass, 'UTF-8') < 5) + { + $html = ' '. sprintf($lang['CHOOSE_PASS_ERR_MIN'], 5) .''; + } + else + { + $text = (IS_GUEST) ? $lang['CHOOSE_PASS_REG_OK'] : $lang['CHOOSE_PASS_OK']; + $html = ' '. $text .''; + } } } break; diff --git a/upload/config.php b/upload/config.php index abdc8048d..b92f7ea57 100644 --- a/upload/config.php +++ b/upload/config.php @@ -57,7 +57,7 @@ $bb_cfg['css_ver'] = 1; // Increase number of revision after update $bb_cfg['tp_version'] = '2.1 Beta'; -$bb_cfg['tp_release_state'] = 'R212'; +$bb_cfg['tp_release_state'] = 'R216'; $bb_cfg['tp_release_date'] = '16-08-2011'; $bb_cfg['board_disabled_msg'] = 'форум временно отключен'; // 'forums temporarily disabled'; // show this msg if board has been disabled via ON/OFF trigger diff --git a/upload/includes/datastore/build_stats.php b/upload/includes/datastore/build_stats.php index cbc84254a..73fc3cf85 100644 --- a/upload/includes/datastore/build_stats.php +++ b/upload/includes/datastore/build_stats.php @@ -32,11 +32,12 @@ $data['speed'] = $row['speed']; // gender + birthday stat $sql = DB()->fetch_rowset("SELECT user_gender, user_id, username, user_birthday, user_level, user_rank FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .") ORDER BY user_level DESC, username"); $birthday = array(); +$data['male'] = $data['female'] = $data['unselect'] = 0; foreach($sql as $row) { - if($row['user_gender'] == 1) @$data['male']++; - if($row['user_gender'] == 2) @$data['female']++; - if(!$row['user_gender']) @$data['unselect']++; + if($row['user_gender'] == 1) $data['male']++; + if($row['user_gender'] == 2) $data['female']++; + if(!$row['user_gender']) $data['unselect']++; if($row['user_birthday']) $birthday[] = array( 'username' => $row['username'], 'user_id' => $row['user_id'], diff --git a/upload/includes/functions_validate.php b/upload/includes/functions_validate.php index c9f7dca7a..0ba97dab5 100644 --- a/upload/includes/functions_validate.php +++ b/upload/includes/functions_validate.php @@ -103,43 +103,3 @@ function validate_email ($email, $check_ban_and_taken = true) return false; } - -// -// Does supplementary validation of optional profile fields. This expects common stuff like trim() and strip_tags() -// to have already been run. Params are passed by-ref, so we can set them to the empty string if they fail. -// -function validate_optional_fields(&$icq, &$website, &$location, &$occupation, &$interests, &$sig) -{ - $check_var_length = array('location', 'occupation', 'interests', 'sig'); - - for($i = 0; $i < count($check_var_length); $i++) - { - if (strlen($$check_var_length[$i]) < 2) - { - $$check_var_length[$i] = ''; - } - } - - // ICQ number has to be only numbers. - if (!preg_match('/^[0-9]+$/', $icq)) - { - $icq = ''; - } - - // website has to start with http://, followed by something with length at least 3 that - // contains at least one dot. - if ($website != "") - { - if (!preg_match('#^http[s]?:\/\/#i', $website)) - { - $website = 'http://' . $website; - } - - if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website)) - { - $website = ''; - } - } - - return; -} diff --git a/upload/includes/ucp/usercp_register.php b/upload/includes/ucp/usercp_register.php index 49402fac2..4f438d6f2 100644 --- a/upload/includes/ucp/usercp_register.php +++ b/upload/includes/ucp/usercp_register.php @@ -240,11 +240,15 @@ foreach ($profile_fields as $field => $can_edit) // пароль для гостя и при смене пароля юзером if (!empty($new_pass)) { - if (strlen($new_pass) > 20) + if (mb_strlen($new_pass, 'UTF-8') > 20) { - $errors[] = $lang['CHOOSE_PASS_ERR_20']; + $errors[] = sprintf($lang['CHOOSE_PASS_ERR_MAX'], 20); } - else if ($new_pass != $cfm_pass) + elseif (mb_strlen($new_pass, 'UTF-8') < 5) + { + $errors[] = sprintf($lang['CHOOSE_PASS_ERR_MIN'], 5); + } + elseif ($new_pass != $cfm_pass) { $errors[] = $lang['CHOOSE_PASS_ERR']; } @@ -255,7 +259,7 @@ foreach ($profile_fields as $field => $can_edit) { if (empty($new_pass)) { - $errors[] = $lang['CHOOSE_PASSWORD']; + $errors[] = $lang['CHOOSE_PASS']; } } else diff --git a/upload/index.php b/upload/index.php index db78d629b..3af5745f5 100644 --- a/upload/index.php +++ b/upload/index.php @@ -204,6 +204,7 @@ $template->assign_vars(array( 'TOTAL_TOPICS' => sprintf($lang['POSTED_TOPICS_TOTAL'], $stats['topiccount']), 'TOTAL_POSTS' => sprintf($lang['POSTED_ARTICLES_TOTAL'], $stats['postcount']), 'TOTAL_USERS' => sprintf($lang['REGISTERED_USERS_TOTAL'], $stats['usercount']), + 'TOTAL_GENDER' => sprintf($lang['USERS_TOTAL_GENDER'], $stats['male'], $stats['female'], $stats['unselect']), 'NEWEST_USER' => sprintf($lang['NEWEST_USER'], '', $stats['newestuser']['username'], ''), // Tracker stats diff --git a/upload/language/lang_english/lang_main.php b/upload/language/lang_english/lang_main.php index a3265dedb..bcdafbe27 100644 --- a/upload/language/lang_english/lang_main.php +++ b/upload/language/lang_english/lang_main.php @@ -145,6 +145,7 @@ $lang['POSTED_ARTICLES_ZERO_TOTAL'] = 'Our users have posted a total of 0 $lang['POSTED_ARTICLES_TOTAL'] = 'Our users have posted a total of %s articles'; // Number of posts $lang['REGISTERED_USERS_ZERO_TOTAL'] = 'We have 0 registered users'; // # registered users $lang['REGISTERED_USERS_TOTAL'] = 'We have %s registered users'; // # registered users +$lang['USERS_TOTAL_GENDER'] = 'Boys: %d, girls: %d, others: %d'; $lang['NEWEST_USER'] = 'The newest registered user is %s%s%s'; // a href, username, /a // Tracker stats @@ -576,11 +577,17 @@ $lang['GENDER_SELECT'] = array( 1 => 'Male', 2 => 'Female' ); + $lang['BIRTHDAY'] = 'Birthday'; $lang['WRONG_BIRTHDAY_FORMAT'] = 'The birthday format was entered incorrectly.'; $lang['AGE'] = 'Age'; $lang['BIRTHDAY_TO_HIGH'] = 'Sorry, this site, does not accept user older than %d years old'; $lang['BIRTHDAY_TO_LOW'] = 'Sorry, this site, does not accept user yonger than %d years old'; +$lang['BIRTHDAY_TODAY'] = 'Users with a birthday today:'; +$lang['BIRTHDAY_WEEK'] = 'Users with a birthday within the next %d days:'; +$lang['NOBIRTHDAY_WEEK'] = 'No users are having a birthday in the upcoming %d days'; // %d is substitude with the number of days +$lang['NOBIRTHDAY_TODAY'] = 'No users have a birthday today'; + $lang['NO_THEMES'] = 'No Themes In database'; $lang['TIMEZONE'] = 'Timezone'; $lang['DATE_FORMAT_PROFILE'] = 'Date format'; @@ -1580,8 +1587,11 @@ $lang['CHOOSE_A_NAME'] = 'You should choose a name'; $lang['CHOOSE_E_MAIL'] = 'You must specify the e-mail'; $lang['CHOOSE_PASS'] = 'Field for the password must not be empty!'; $lang['CHOOSE_PASS_ERR'] = 'Entered passwords do not match'; +$lang['CHOOSE_PASS_ERR_MIN'] = 'Your password must be at least %d characters'; +$lang['CHOOSE_PASS_ERR_MAX'] = 'Your password must be no longer than $d characters'; $lang['CHOOSE_PASS_OK'] = 'Passwords match'; $lang['CHOOSE_PASS_REG_OK'] = 'Passwords match, you can proceed with the registration'; +$lang['CHOOSE_PASS_FAILED'] = 'To change the password, you must correctly specify the current password'; $lang['EMAILER_DISABLED'] = 'Sorry, this feature is temporarily not working'; $lang['TERMS_ON'] = 'I agree with these terms and conditions'; $lang['TERMS_OFF'] = 'I do not agree to these terms'; diff --git a/upload/language/lang_russian/lang_main.php b/upload/language/lang_russian/lang_main.php index a544b900b..791bcc011 100644 --- a/upload/language/lang_russian/lang_main.php +++ b/upload/language/lang_russian/lang_main.php @@ -149,6 +149,7 @@ $lang['POSTED_ARTICLES_ZERO_TOTAL'] = 'Наши пользователи не о $lang['POSTED_ARTICLES_TOTAL'] = 'Наши пользователи оставили сообщений: %s'; // Number of posts $lang['REGISTERED_USERS_ZERO_TOTAL'] = 'У нас нет зарегистрированных пользователей'; // # registered users $lang['REGISTERED_USERS_TOTAL'] = 'Всего зарегистрированных пользователей: %s'; // # registered users +$lang['USERS_TOTAL_GENDER'] = 'Парней: %d, девушек: %d, ещё не определились: %d'; $lang['NEWEST_USER'] = 'Последний зарегистрированный пользователь: %s%s%s'; // username // Tracker stats @@ -1590,10 +1591,10 @@ $lang['NEW_THREADS'] = 'Создавать темы'; // Регистрация $lang['CHOOSE_A_NAME'] = 'Вы должны выбрать имя'; $lang['CHOOSE_E_MAIL'] = 'Вы должны указать e-mail'; -$lang['CHOOSE_PASSWORD'] = 'Вы должны указать пароль'; $lang['CHOOSE_PASS'] = 'Поля для ввода пароля не должны быть пустыми!'; $lang['CHOOSE_PASS_ERR'] = 'Введённые пароли не совпадают'; -$lang['CHOOSE_PASS_ERR_20'] = 'Пароль должен быть не длиннее 20 символов'; +$lang['CHOOSE_PASS_ERR_MIN'] = 'Пароль должен быть не короче %d символов'; +$lang['CHOOSE_PASS_ERR_MAX'] = 'Пароль должен быть не длиннее %d символов'; $lang['CHOOSE_PASS_OK'] = 'Пароли совпадают'; $lang['CHOOSE_PASS_REG_OK'] = 'Пароли совпадают, можете продолжить регистрацию'; $lang['CHOOSE_PASS_FAILED'] = 'Для изменения пароля вы должны правильно указать текущий пароль'; diff --git a/upload/templates/default/index.tpl b/upload/templates/default/index.tpl index b9316b1cc..eb2cb8719 100644 --- a/upload/templates/default/index.tpl +++ b/upload/templates/default/index.tpl @@ -172,6 +172,7 @@

{TOTAL_TOPICS}

{TOTAL_POSTS}

{TOTAL_USERS}

+

{TOTAL_GENDER}

{NEWEST_USER}

@@ -181,6 +182,9 @@

{SPEED_STAT}

+

{WHOSBIRTHDAY_TODAY}

+

{WHOSBIRTHDAY_WEEK}

+

{TOTAL_USERS_ONLINE}  {USERS_ONLINE_COUNTS}

{RECORD_USERS}