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}