Добавляем дополнительные поля в профиль пользователя Joomla 2.5
1) Добавляем название поля в языковой файл.
Давайте определимся, как будет называться поле, которое мы хотим добавить. Я буду добавлять поле “Мобильный телефон” . Теперь откроем русский языковой файл :
/administrator/language/ru-RU/ ru-RU.plg_user_profile.ini
В него вставляем строки вида:
Где XXXXX – имя поля латинскими буквами – например, у меня пусть будет MOBPHONE,
YYYYY0– название поля по русски.
YYYYY1– описание поля по русски.
У меня получилось следующее:
По идее, идентификаторы PLG_USER_PROFILE_FIELD_MOBPHONE_LABEL и PLG_USER_PROFILE_FIELD_ MOBPHONE_DESC могут быть любыми (главное из латинских символов), я сделал просто по аналогии с другими записями в данном файле для общего стандарта.
Если у вас будет свой идентификатор вместо моего MOBPHONE (и или ещё будет mobphone) необходимо будет везде по коду использовать только его.
2) Добавляем дополнительное поле непосредственно на сайт (фронтальная часть).
Давайте теперь добавим отображение поля на сайте при регистрации пользователя. Для этого заходим в файл
/plugins/user/profile/profiles/profile.xml
И в нем добавляем следующий код перед тегом </fieldset>:
В итоге, у нас на сайте на странице регистрации пользователя появится новое поле Мобильный телефон
3) Добавляем дополнительное поле в админку.
Для этого в файл
/plugins/user/profile/profile.xml
сначала вставим код
Перед кодом
Потом в конце перед закрывающим тегом </fieldset>
После этих манипуляций в админке получим следующее
4) Добавляем обработку нового поля.
Визуальную часть сделали, осталось провести обработку данного поля.
Для этого заходим в файл /plugins/user/profile/profile.php и вставляем туда следующий код:
После кода
В админке, в Менеджере пользователей у конкретного пользователя, а также на сайте в профиле пользователя также увидим данное поле.
ВАЖНОЕ ЗАМЕЧАНИЕ: При последующих обновлениях CMS Joomla файлы, которые изменялись, будут заменены. Все новые поля, которые вы добавите, исчезнут, однако информация, которая была забита в них останется (она хранится в базе данных). Учтите это.
- 0 Защита Joomla от взлома, вирусов и спама (19.10.2013)
- 0 Добавляем в <title> название категории Joomla (22.08.2013)
- 0 Как склеить index.php и index.html с корнем сайта и стоит ли делать это? Устраняем дубли страниц в Joomla. (21.10.2013)
- 0 Рекомендации по .htaccess для Joomla (27.05.2013)
- Не отображается панель редактора JCE - Joomla 2.5 (25.08.2014)
- Joomla 2.5: ошибка при сохранении статьи Invalid parent id. (08.01.2013)
- Переходить ли на Joomla 3.0 и зачем? (05.01.2013)
- Как в Joomla заблокировать способ просмотра позиций модуля в шаблоне сайта (/?tp=1) (29.11.2012)
- Ошибка INVALID MIME TYPE в редакторе JCE (18.11.2012)
- Выводим название сайта в title на всех страницах (22.06.2012)
- Добавляем дополнительные поля в профиль пользователя Joomla 2.5 (11.04.2012) ← вы тут
- Перенос шаблона Joomla 1.5 на Joomla 2.5 (05.02.2013)
- Перенос сайта на Joomla 2.5: нужен ли он? (31.03.2012)
- Joomla 1.5 — JFolder::create: Could not create directory (20.03.2012)
- Joomla 1.5 — Как изменить формат даты (20.03.2012)
- Joomla 1.5 SEO: Добавляем тег <h1> в название статьи (20.03.2012)
- Joomla: ссылка на главную страницу /undefined (22.03.2012)
- Cтраница 404 со своим дизайном (Joomla 1.5) (11.12.2011)
- Как вставить модуль в тело статьи Joomla (18.11.2011)
- Как восстановить пароль администратора в Joomla 1.5? (26.11.2011)
8 комментариев
а в БД нужно создать это дополнительное поле в какой-то таблице или оно само создаётся? Где хранятся значения этого поля в БД?
Все изменения внёс, но Joomla никак не отреагировала на них. Это точно для Joomla 2.5?
Таблицы должны сами создаваться.
Но доп.поля сами не включаются, там надо их активировать через джумло-админку. В менеджере плагинов - плагин user-profile (как-то так называется) - там отмечаешь, какие поля должен заполнять юзер при регистрации.
А можно добавить поле, чтобы пользователь смог загружать свой аватар? Или есть какие-нибудь другие внешние расширения для этого?
с 4 пунктом не согласен...
Можно сделать все проще без дополнительного кода - просто прописать новосозданные поля в массив:
$fields = array(
'firma',
'post',
'city',
'postal_code',
'address1',
'phone',
'mobphone',
'fax',
'website',
'tos',
);
Подскажите пожалуйста как сделать тоже самое но с полями формы регистрации
Нужно добавить к полю "Имя" еще "Отчество" и "Фамилию"
и тоже самое в профиле пользователя что-бы он мог их редактировать
Подскажите как при регистрации создать выбор профиля будущего пользователя?
Ищу вторые сутки и кроме cb profile pro для community builder не нашел... хотя бы в какую сторону копать намекните
Спасибо заранее