Ситуация следующая. Необходимо добавить поле «Возраст» в форму регистрации. Использую альтернативный модуль авторизации BT-login, но, в принципе, вопрос касается любого модуля авторизации, хоть и встроенного, родного.
Делаю следующие шаги:
1. После поля USERNAME добавляю поле AGE в свою базу данных в таблицу ХХХ_users, поле текстовое, тип VARCHAR, длина 2.
2. Добавляю в САЙТ/modules/название_модуля_авторизации/tmpl/default.php новое поле – «Возраст»:
<div class="btl-field">
<div class="btl-label"><?php echo JText::_( 'AGE' ); ?></div>
<div class="btl-input">
<input id="btl-input-age" type="age" name="jform[age]" />
</div>
</div>
<div class="clear"></div>
Теперь у меня в форме регистрации появляется это поле для заполнения.
3. Добавляю в профиль пользователя поле «Возраст» в файл САЙТ/components/com_users/models/forms/registration.xml
<field name="age" type="text"
description="Введите свой возраст"
filter="string"
label="Возраст"
required="true"
size="30"
/>
Появляется это поле для самого пользователя
4. Аналогично добавляю в профиль пользователя в админке поле «Возраст» в файл САЙТ/administrator/components/com_users/models/forms/user.xml
<field name="age" type="text"
description="Введите Ваш возраст"
label="Возраст"
required="true"
size="30"
/>
Появляется поле возраста в админке при просмотре профиля пользователей
5. В в САЙТ/libraries/joomla/user/user.php после поля username добавляю поле age:
/**
* The users age
* @var string
* @since 11.1
*/
public $age = null;
Все поля прописаны, все есть. НО!
Значение возраста, вводимое при регистрации в форму регистрации – не вносится ни в базу данных (поле AGE), ни видно в админке или профиле пользователя!
Как сделать так, чтобы заполнение в форме регистрации синхронизировалось с БД и полями Возраста в профиле пользователя?