...мод написан давно (когда на свете были только Мужчина и Женщина), поэтому и даёт выбрать только два основных пола. доработки для тех, кто не относит себя к "основным" - я не нашёл.
сам мод взял здесь, небольшое обсуждение этого мода на этом сайте - здесь. говорят, что он обеспечивает "антиспамерскую защиту". не понял как именно.
Установка:
Скачать мод из архива сайта:
Скачать из файлового архива сайта
Распаковать, содержимое папки root загрузить на сервер вашего сайта (где файл config.php).
Редактирование файлов:
Код: Выделить всё
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
include($phpbb_root_path . 'includes/functions_genders.' . $phpEx);
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
, u.user_allow_pm
Вставить в строчку после найденной части
Код: Выделить всё
, u.user_gender
Код: Выделить всё
'U_VIEW_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'USER_GENDER' => get_user_gender($row['user_gender']),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'S_JABBER_ENABLED' => ($config['jab_enable']) ? true : false,
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'USER_GENDER_IMG' => get_user_gender($data['user_gender']),
'USER_GENDER' => get_user_gender($data['user_gender'], true),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
include($phpbb_root_path . 'includes/functions_genders.' . $phpEx);
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'age' => '',
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender_img' => '',
'gender' => '',
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'age' => '',
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender_img' => get_user_gender($row['user_gender']),
'gender' => get_user_gender($row['user_gender'], true),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'POSTER_AGE' => $user_cache[$poster_id]['age'],
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'POSTER_GENDER_IMG' => $user_cache[$poster_id]['gender_img'],
'POSTER_GENDER' => $user_cache[$poster_id]['gender'],
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
</dl>
Вставить после найденного
Код: Выделить всё
<dl>
<dt><label for="gender_x">{L_GENDER}:</label><br /><span>{L_GENDER_EXPLAIN}</span></dt>
<dd>
<input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}
<input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}
<input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}
</dd>
</dl>
Код: Выделить всё
// Additional constants
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
define('GENDER_F', 2); // Ladies first ;)
define('GENDER_X', 0);
define('GENDER_M', 1);
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
, 'icon_foe'
Вставить в эту же строчку после найденного фрагмента
Код: Выделить всё
, 'icon_gender_x', 'icon_gender_m', 'icon_gender_f'
Код: Выделить всё
'bday_year' => 0,
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender' => request_var('gender', $user_row['user_gender']),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'bday_year' => array('num', true, 1901, gmdate('Y', time())),
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender' => array('num', true, 0, 2),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'user_birthday' => $data['user_birthday'],
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'user_gender' => $data['gender'],
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'S_BIRTHDAY_DAY_OPTIONS' => $s_birthday_day_options,
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'GENDER_X' => GENDER_X,
'GENDER_M' => GENDER_M,
'GENDER_F' => GENDER_F,
'S_GENDER_X' => ($data['gender'] == GENDER_X) ? true : false,
'S_GENDER_M' => ($data['gender'] == GENDER_M) ? true : false,
'S_GENDER_F' => ($data['gender'] == GENDER_F) ? true : false,
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'interests' => utf8_normalize_nfc(request_var('interests', $user->data['user_interests'], true)),
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender' => request_var('gender', $user->data['user_gender']),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'interests' => array('string', true, 2, 500),
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'gender' => array('num', true, 0, 2),
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'user_interests'=> $data['interests'],
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'user_gender' => $data['gender'],
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
'INTERESTS' => $data['interests'],
Вставить после найденного
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
'GENDER_X' => GENDER_X,
'GENDER_M' => GENDER_M,
'GENDER_F' => GENDER_F,
'S_GENDER_X' => ($data['gender'] == GENDER_X) ? true : false,
'S_GENDER_M' => ($data['gender'] == GENDER_M) ? true : false,
'S_GENDER_F' => ($data['gender'] == GENDER_F) ? true : false,
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
?>
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
$lang = array_merge($lang, array(
'GENDER' => 'Gender',
'GENDER_EXPLAIN' => 'Please enter your gender here.',
'GENDER_X' => 'None specified',
'GENDER_M' => 'Male',
'GENDER_F' => 'Female',
));
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
?>
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
$lang = array_merge($lang, array(
'IMG_ICON_GENDER_X' => 'Gender: None specified',
'IMG_ICON_GENDER_M' => 'Gender: Male',
'IMG_ICON_GENDER_F' => 'Gender: Female',
));
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
?>
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
$lang = array_merge($lang, array(
'GENDER' => 'Пол',
'GENDER_EXPLAIN' => 'Пожалуйста, укажите ваш пол',
'GENDER_X' => 'Не указано',
'GENDER_M' => 'Мужчина',
'GENDER_F' => 'Женщина',
));
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
?>
Вставить перед найденным
Код: Выделить всё
//-- mod : Genders ------------------------------------------------------------
//-- add
$lang = array_merge($lang, array(
'IMG_ICON_GENDER_X' => 'Пол: не указано',
'IMG_ICON_GENDER_M' => 'Пол: мужчина',
'IMG_ICON_GENDER_F' => 'Пол: женщина',
));
//-- fin mod : Genders --------------------------------------------------------
Код: Выделить всё
img_icon_user_warn = icon_user_warn.gif*20*20
Вставить после найденного
Код: Выделить всё
img_icon_gender_x = icon_gender_x.gif
img_icon_gender_m = icon_gender_m.gif
img_icon_gender_f = icon_gender_f.gif
Код: Выделить всё
{memberrow.USERNAME_FULL}
Вставить в эту же строку после найденного
Код: Выделить всё
{memberrow.USER_GENDER_IMG}
Код: Выделить всё
{admin.USERNAME_FULL}
Вставить после найденного фрагмента в эту же строку
Код: Выделить всё
{admin.USER_GENDER}
Код: Выделить всё
{mod.USERNAME_FULL}
Вставить после найденного фрагмента в эту же строку
Код: Выделить всё
{mod.USER_GENDER}
Код: Выделить всё
<!-- IF LOCATION --><dt>{L_LOCATION}:</dt> <dd>{LOCATION}</dd><!-- ENDIF -->
Вставить перед найденным
Код: Выделить всё
<!-- IF USER_GENDER --><dt>{L_GENDER}:</dt> <dd>{USER_GENDER_IMG}</dd><!-- ENDIF -->
Код: Выделить всё
<label for="bday_year">{L_YEAR}: <select name="bday_year" id="bday_year" style="width: 6em;">{S_BIRTHDAY_YEAR_OPTIONS}</select></label>
</dd>
</dl>
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<dl>
<dt><label for="gender_x">{L_GENDER}:</label><br /><span>{L_GENDER_EXPLAIN}</span></dt>
<dd>
<label for="gender_m"><input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}</label>
<label for="gender_f"><input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}</label>
<label for="gender_x"><input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}</label>
</dd>
</dl>
Код: Выделить всё
<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.POSTER_GENDER --><dd><strong>{L_GENDER}:</strong> {postrow.POSTER_GENDER_IMG}</dd><!-- ENDIF -->
Код: Выделить всё
img_icon_topic_unapproved = icon_topic_unapproved.gif*18*19
Вставить после найденного
Код: Выделить всё
img_icon_gender_x = icon_gender_x.gif
img_icon_gender_m = icon_gender_m.gif
img_icon_gender_f = icon_gender_f.gif
Код: Выделить всё
{memberrow.USERNAME_FULL}
Вставить в эту же строку после найденного
Код: Выделить всё
{memberrow.USER_GENDER_IMG}
Код: Выделить всё
{admin.USERNAME_FULL}</strong>
Вставить в эту же строку после найденного
Код: Выделить всё
{admin.USER_GENDER}
Код: Выделить всё
{mod.USERNAME_FULL}</strong>
Вставить в эту же строку после найденного
Код: Выделить всё
{mod.USER_GENDER}
Код: Выделить всё
<td><!-- IF INTERESTS --><b class="genmed">{INTERESTS}</b><!-- ENDIF --></td>
</tr>
Вставить после найденного
Код: Выделить всё
<tr>
<td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_GENDER}: </td>
<td><b class="genmed">{USER_GENDER_IMG}</b></td>
</tr>
Код: Выделить всё
<td class="row2"><span class="genmed">{L_DAY}:</span> <select name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> <span class="genmed">{L_MONTH}:</span> <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> <span class="genmed">{L_YEAR}:</span> <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></td>
</tr>
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<tr>
<td class="row1" width="35%"><b class="genmed"><label for="gender_x">{L_GENDER}:</label> </b><br /><span class="gensmall">{L_GENDER_EXPLAIN}</span></td>
<td class="row2">
<label for="gender_m"><input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}</label>
<label for="gender_f"><input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}</label>
<label for="gender_x"><input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}</label>
</td>
</tr>
Код: Выделить всё
<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.POSTER_GENDER --><br /><b>{L_GENDER}:</b> {postrow.POSTER_GENDER_IMG}<!-- ENDIF -->
Для завершения установки запустите файл genders_mod_install.php
через ваш браузер по адресу
Код: Выделить всё
http://ваш сайт/genders_mod_install.php
После этого очистите кэши шаблонов, тем и рисунков и можете, в личном разделе, выбрать то, что вам необходимо.
Доработка по созданию поля выбора пола при регистрации на сайте.
предложена пользователем Dmitry (Дмитрий):
данное поле получается обязательным при регистрации и без его заполнения регистрацию не пройти.
Правка (выберите себе правки по стилю и языку):
Код: Выделить всё
'tz' => request_var('tz', (float) $config['board_timezone']),
Вставить после найденного
Код: Выделить всё
//-- mod : BB Genders Plus ------------------------------------------------------------
'gender' => request_var('gender', $user->data['user_gender']),
//-- end mod : Genders --------------------------------------------------------
Код: Выделить всё
'tz' => request_var('tz', (float) $timezone),
Вставить после найденного
Код: Выделить всё
//-- mod : BB Genders Plus ------------------------------------------------------------
'gender' => request_var('gender', $user->data['user_gender']),
//-- end mod : Genders -------------------------------------------------------
Код: Выделить всё
'lang' => array('language_iso_name'),
Вставить после найденного
Код: Выделить всё
//-- mod : BB Genders Plus ------------------------------------------------------------
'gender' => array('num', false, 1, 2),
//-- end mod : Genders -------------------------------------------------------
Код: Выделить всё
'user_inactive_time' => $user_inactive_time,
Вставить после найденного
Код: Выделить всё
//-- mod : BB Genders Plus ------------------------------------------------------------
'user_gender' => $data['gender'],
//-- end mod : Genders --------------------------------------------------------
Код: Выделить всё
'S_TZ_OPTIONS' => tz_select($data['tz']),
Вставить после найденного
Код: Выделить всё
//-- mod : BB Genders Plus ------------------------------------------------------------
'GENDER_X' => GENDER_X,
'GENDER_M' => GENDER_M,
'GENDER_F' => GENDER_F,
'S_GENDER_X' => ($data['gender'] == GENDER_X) ? true : false,
'S_GENDER_M' => ($data['gender'] == GENDER_M) ? true : false,
'S_GENDER_F' => ($data['gender'] == GENDER_F) ? true : false,
//-- end mod : Genders --------------------------------------------------------
Код: Выделить всё
<dl>
<dt><label for="tz">{L_TIMEZONE}:</label></dt>
<dd><select name="tz" id="tz" tabindex="7" class="autowidth">{S_TZ_OPTIONS}</select></dd>
</dl>
Вставить после найденного
Код: Выделить всё
<dl>
<dt><label for="gender_x">{L_GENDER}:</label><br /><span>{L_GENDER_EXPLAIN}</span></dt>
<dd>
<label for="gender_m"><input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}</label>
<label for="gender_f"><input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}</label>
<label for="gender_x"><input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}</label>
<br /><br />{L_GENDER_REGISTER}
</dd>
</dl>
Код: Выделить всё
<tr>
<td class="row1"><b class="genmed">{L_TIMEZONE}: </b></td>
<td class="row2"><select name="tz">{S_TZ_OPTIONS}</select></td>
</tr>
Вставить после найденного
Код: Выделить всё
<tr>
<td class="row1" width="35%"><b class="genmed"><label for="gender_x">{L_GENDER}:</label> </b><br /><span class="gensmall">{L_GENDER_EXPLAIN}</span></td>
<td class="row2">
<label for="gender_m"><input type="radio" name="gender" id="gender_m" value="{GENDER_M}"<!-- IF S_GENDER_M --> checked="checked"<!-- ENDIF --> /> {L_GENDER_M}</label>
<label for="gender_f"><input type="radio" name="gender" id="gender_f" value="{GENDER_F}"<!-- IF S_GENDER_F --> checked="checked"<!-- ENDIF --> /> {L_GENDER_F}</label>
<label for="gender_x"><input type="radio" name="gender" id="gender_x" value="{GENDER_X}"<!-- IF S_GENDER_X --> checked="checked"<!-- ENDIF --> /> {L_GENDER_X}</label>
<br />{L_GENDER_REGISTER}
</td>
</tr>
Код: Выделить всё
'GENDER_F' => 'Женщина',
Вставить после найденного
Код: Выделить всё
'GENDER_REGISTER' => '<strong>!! Указание вашего пола обязательно</strong>',
Код: Выделить всё
'GENDER_F' => 'Female',
Вставить после найденного
Код: Выделить всё
'GENDER_REGISTER' => '<strong>!! Your gender is mandatory</strong>',
Вроде бы всё. Успехов в применении.