#1
Подскажите пожалуйста как создать обязательные дополнительные поля при регистрации ? (Пол и День Рождение).
// field => can_edit
$profile_fields = array(
'username' => true,
'user_password' => true,
'user_email' => true,
'user_timezone' => true,
'user_lang' => true,
);дописываем сюда в список свои поля. честно скажу, что я точно не помню обязалово это или нет, а смотреть сейчас настроения нету. но по крайней мере это не повредит.<!-- IF EDIT_PROFILE --> ... <!-- ENDIF -->Смысл его в том, что внутри этого условия поля видны только во время редактирования профиля, а значит для регистрации нет.
<!-- IF $bb_cfg['gender'] -->
<tr>
<td>{L_GENDER}:</td>
<td>{USER_GENDER}</td>
</tr>
<!-- ENDIF -->меняем на:<!-- ENDIF -->
<!-- IF $bb_cfg['gender'] -->
<tr>
<td>{L_GENDER}:</td>
<td>{USER_GENDER}</td>
</tr>
<!-- ENDIF -->
<!-- IF EDIT_PROFILE -->Прошу заметить, что я не перепутал местами теги, все верно. Почему? Просто выше уже стоит условие <!-- IF EDIT_PROFILE -->, а значит его нужно закрыть перед "полом", а потом снова открыть. Таким образом получается исключение, которое позволяет вывести блок для регистрации....ибо объяснять я не умеюЭто неправда, я так считаю. Написанная инструкция понятна. Возможно, у меня кривые руки.
switch ($mode)
{
/**
* Регистрация
*/
case 'register':
...
// field => can_edit
$profile_fields = array(
'username' => true,
'user_password' => true,
'user_email' => true,
'user_birthday' => true,
...2) в /templates/default/usercp_register.tpl<!-- ENDIF -->
<!-- IF BIRTHDAY -->
<tr>
<td>{L_BIRTHDAY}:</td>
<td>{BIRTHDAY}</td>
</tr>
<!-- ENDIF -->
<!-- IF EDIT_PROFILE -->Поле с датой рождения при регистрации не появилось. Ошибок и нотисов нет. Логи пустые.if($bb_cfg['birthday_enabled'] && $mode != 'register')заменить на:
if($bb_cfg['birthday_enabled'])
Вскрылась другая проблема: даже если юзер при регистрации не укажет свою дату рождения, регистрация всё равно проходит успешно. То есть, я так понимаю, что при регистрации не срабатывает верификация данных по дате рождения."Обязательное" поле для даты рождения можно сделать приблизительно так:
$profile_fields = array(
'username' => true,
'user_password' => true,
'user_email' => true, 'user_birthday' => true,найти:
$pr_data = array(
'user_id' => ANONYMOUS,
'username' => '',
'user_password' => '',
'user_email' => '',добавить после (для ревизии R495 и выше):'user_birthday' => '0000-00-00',* если ревизия ниже R495, тогда это:
'user_birthday' => 0,
$next_birthday_greeting = (date('md') < $b_md . (($b_day <= 9) ? '0' : '') . $b_day) ? date('Y') : date('Y')+1;
}
}
else
{добавить после: if ($submit && $bb_cfg['birthday_required'] && !IS_ADMIN) { $errors[] = $lang['BIRTHDAY_REQUIRED']; } $lang['BIRTHDAY_REQUIRED'] = 'Поле "День рождения" является обязательным';Открыть language/lang_english/lang_main.php
$lang['BIRTHDAY_REQUIRED'] = 'Your Birthday are required on this site';Открыть templates/default/usercp_register.tpl
<td>{L_BIRTHDAY}:</td>заменить на:<td>{L_BIRTHDAY}:<!-- IF $bb_cfg['birthday_required'] && not IS_ADMIN --> *<!-- ENDIF --></td>Открыть config.php$bb_cfg['birthday_required'] = true;P.S. по желанию поставить $bb_cfg['birthday_required'] = false; если поле не требуется как обязательное...
if($mode != 'register')