Установка
1. Выполняем sql-запрос:ALTER TABLE `dle_users` ADD `familiya` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `dle_users` ADD `imya` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `dle_users` ADD `otchestvo` VARCHAR( 20 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `dle_users` ADD `pol` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `dle_users` ADD `strana` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `dle_users` ADD `gorod` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
Значение VARCHAR и кодировку ставим по вкусу. Также ставим свой префикс к БД.
2. Открываем engine/modules/register.php
Ищем:function check_reg($name, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) {
Заменяем на:function check_reg($name, $email, $password1, $password2, $familiya, $imya, $otchestvo, $pol, $strana, $gorod, $sec_code = 1, $sec_code_session = 1) {
Ищем:if( strlen( $name ) > 20 ) $stop .= $lang['reg_err_3'];
Добавляем ниже:if (strlen($familiya) > 15) $stop .= "<li>Фамилия должна быть не более 15 символов. </li>";
if (strlen($familiya) < 3) $stop .= "<li>Фамилия должна быть не менее 3 символов.</li>";
if (strlen($imya) > 15) $stop .= "<li>Имя должно быть не более 15 символов.</li>";
if (strlen($imya) < 3) $stop .= "<li>Имя должно быть не менее 3 символов.</li>";
if (strlen($otchestvo) > 15) $stop .= "<li>Отчество должно быть не более 15 символов.</li>";
if (strlen($otchestvo) < 3) $stop .= "<li>Отчество должно быть не менее 3 символов.</li>";
if (strlen($strana) > 15) $stop .= "<li>Страна должна быть не более 15 символов.</li>";
if (strlen($strana) < 3) $stop .= "<li>Страна должна быть не менее 3 символов.</li>";
if (strlen($gorod) > 15) $stop .= "<li>Город должен быть не более 15 символов.</li>";
if (strlen($gorod) < 3) $stop .= "<li>Город должен быть не менее 3 символов.</li>";
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $familiya ) ) $stop .= "<li>Фамилия содержит непопустимые символы.</li>";
if( preg_match( "/[0-9]/", $familiya ) ) $stop .= "<li>Фамилия содержит непопустимые символы.</li>";
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $imya ) ) $stop .= "<li>Имя содержит непопустимые символы</li>";
if( preg_match( "/[0-9]/", $imya ) ) $stop .= "<li>Имя содержит непопустимые символы</li>";
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $otchestvo ) ) $stop .= "<li>Отчество содержит непопустимые символы</li>";
if( preg_match( "/[0-9]/", $otchestvo ) ) $stop .= "<li>Отчество содержит непопустимые символы</li>";
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $strana ) ) $stop .= "<li>Страна содержит непопустимые символы</li>";
if( preg_match( "/[0-9]/", $strana ) ) $stop .= "<li>Страна содержит непопустимые символы</li>";
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $gorod ) ) $stop .= "<li>Город содержит непопустимые символы</li>";
if( preg_match( "/[0-9]/", $gorod ) ) $stop .= "<li>Город содержит непопустимые символы</li>";
Длинну строки настраиваем по вкусу. Также настраиваем проверку на спец символы и тоже по вкусу. Текст ошибок можно оставить как есть, а можно всунуть в ленгвич файл и подключать переменными, в тиле $lang['reg_err_номерошибки'] - кому как нравится.Ищем:$email = $db->safesql( $parse->process( $_POST['email'] ) );
Добавляем ниже: $familiya = $db->safesql($parse->process($_POST['familiya']));
$imya = $db->safesql($parse->process($_POST['imya']));
$otchestvo = $db->safesql($parse->process($_POST['otchestvo']));
$pol = $db->safesql($parse->process($_POST['pol']));
$strana = $db->safesql($parse->process($_POST['strana']));
$gorod = $db->safesql($parse->process($_POST['gorod']));
Ищем:$reg_error = check_reg( $name, $email, $password1, $password2, $sec_code, $sec_code_session );
Меняем на:$reg_error = check_reg( $name, $email, $password1, $password2, $familiya, $imya, $otchestvo, $pol, $strana, $gorod, $sec_code, $sec_code_session );
Ищем:$reg_error = check_reg( $name, $email, $regpassword, $regpassword );
Меняем на:$reg_error = check_reg( $name, $email, $regpassword, $regpassword, $familiya, $imya, $otchestvo, $pol, $strana, $gorod );
Ищем:$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
Меняем на:$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, familiya, imya, otchestvo, pol, strana, gorod, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$familiya', '$imya', '$otchestvo', '$pol', '$strana', '$gorod', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );
3. Открываем engine/modules/profile.php
Ищем:$tpl->set( '{usertitle}', stripslashes( $row['name'] ) );
Добавляем ниже: $tpl->set( '{familiya}', stripslashes( $row['familiya'] ) );
$tpl->set( '{imya}', stripslashes( $row['imya'] ) );
$tpl->set( '{otchestvo}', stripslashes( $row['otchestvo'] ) );
$tpl->set( '{pol}', stripslashes( $row['pol'] ) );
$tpl->set( '{strana}', stripslashes( $row['strana'] ) );
$tpl->set( '{gorod}', stripslashes( $row['gorod'] ) );
Ищем:$stop = false;
Добавляем ниже: $familiya = $db->safesql( $parse->process( $_POST['familiya'] ) );
$imya = $db->safesql( $parse->process( $_POST['imya'] ) );
$otchestvo = $db->safesql( $parse->process( $_POST['otchestvo'] ) );
$pol= $db->safesql( $parse->process( $_POST['pol'] ) );
$strana= $db->safesql( $parse->process( $_POST['strana'] ) );
$gorod= $db->safesql( $parse->process( $_POST['gorod'] ) );
Ищем:$password1 = md5( md5( $password1 ) );
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
} else {
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
}
Заменяем на: $password1 = md5( md5( $password1 ) );
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', familiya='$familiya', imya='$imya', otchestvo='$otchestvo', pol='$pol', strana='$strana', gorod='$gorod', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
} else {
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', familiya='$familiya', imya='$imya', otchestvo='$otchestvo', pol='$pol', strana='$strana', gorod='$gorod', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
}
4. Открываем engine/modules/show.full.php
Ищем:USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature,
Заменяем на:USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, familiya, imya, otchestvo, pol, strana, gorod,
5. Открываем engine/modules/lastcomments.php
Ищем:USERPREFIX . "_users.email, news_num,
Заменяем на:USERPREFIX . "_users.email, news_num, familiya, imya, otchestvo, pol, strana, gorod,
Ищем:$tpl->set( '{comm-num}', intval( $row['comm_num'] ) );
Добавляем ниже:$tpl->set( '{addpolereg}', $row['addpolereg'] );
6. Открываем engine/classes/comments.class.php
Ищем: $tpl->set( '{comm-num}', intval( $row['comm_num'] ) );
Добавляем ниже: $tpl->set( '{familiya}', $row['familiya'] );
$tpl->set( '{imya}', $row['imya'] );
$tpl->set( '{otchestvo}', $row['otchestvo'] );
$tpl->set( '{pol}', $row['pol'] );
$tpl->set( '{strana}', $row['strana'] );
$tpl->set( '{gorod}', $row['gorod'] );
7. Открываем registration.tpl и в нужное место вставляем (правим под свой стиль шаблона):
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Фамилия:</td>
<td><input type="text" name="familiya" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Имя:</td>
<td><input type="text" name="imya" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Отчество:</td>
<td><input type="text" name="otchestvo" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Пол:</td>
<td><select name="pol" id="pol"><option value="М" />Мужской</option>
<option value="Ж" />Женский</option></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Страна :</td>
<td><input type="text" name="strana" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Город:</td>
<td><input type="text" name="gorod" class="f_input" /></td>
</tr>
8. Открываем comments.tpl и в нужное место выводим нужние теги, например:
<br />Фамилия: {familiya}<br />Имя: {imya}<br />Отчество: {otchestvo}<br />Пол: {pol}<br />Страна: {strana}<br />Город: {gorod}
9. Открываем userinfo.tpl и в нужное место выводим нужние теги, например:
Фамилия: {familiya}<br />Имя: {imya}<br />Отчество: {otchestvo}<br />Пол: {pol}<br />Страна: {strana}<br />Город: {gorod}<br />
Также в этом же файле можем добавить возможность пользователю редактировать его данные. Вот пример когда пользователь может менять все поля:
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Фамилия:</td>
<td><input type="text" name="familiya" value="{familiya}" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Имя:</td>
<td><input type="text" name="imya" value="{imya}" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Отчество:</td>
<td><input type="text" name="otchestvo" value="{otchestvo}" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Пол:</td>
<td><select name="pol" id="pol" value="{pol}" ><option value="М" />Мужской</option>
<option value="Ж" />Женский</option></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Страна :</td>
<td><input type="text" name="strana" value="{strana}" class="f_input" /></td>
</tr>
<tr>
<td width="130" height="25"><font color="eb3d00">*</font> Город:</td>
<td><input type="text" name="gorod" value="{gorod}" class="f_input" /></td>
</tr>
Внимание! У вас нет прав для просмотра скрытого текста.