Добавляем дополнительные поля в профиль пользователя Joomla 2.5

Добавляем дополнительные поля в профиль пользователя 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 файлы, которые изменялись, будут заменены. Все новые поля, которые вы добавите, исчезнут, однако информация, которая была забита в них останется (она хранится в базе данных). Учтите это.

dlrm
Разработчик на джумле, автор многих идей проектов.

Вы можете почитать все статьи от dlrm'а.



Другие статьи по этой теме:

Комментарии (8)     Подпишитесь на RSS комментариев к этой статье.

8 комментариев

#435
almix говорит:
April 12, 2012 at 06:24 pm

а в БД нужно создать это дополнительное поле в какой-то таблице или оно само создаётся? Где хранятся значения этого поля в БД?

Все изменения внёс, но Joomla никак не отреагировала на них. Это точно для Joomla 2.5?

#436
dlrm говорит:
April 12, 2012 at 06:49 pm

Таблицы должны сами создаваться.

Но доп.поля сами не включаются, там надо их активировать через джумло-админку. В менеджере плагинов - плагин user-profile (как-то так называется) - там отмечаешь, какие поля должен заполнять юзер при регистрации.


#451
zzajacc говорит:
May 9, 2012 at 12:26 am

А можно добавить поле, чтобы пользователь смог загружать свой аватар? Или есть какие-нибудь другие внешние расширения для этого?

 

#455
Сергей говорит:
May 10, 2012 at 08:03 pm

с 4 пунктом не согласен...

Можно сделать все проще без дополнительного кода - просто прописать новосозданные поля в массив:

$fields = array(
   'firma',
   'post',
   'city',
   'postal_code',
   'address1',
   'phone',
   'mobphone',
   'fax',
   'website',
   'tos',
  );

 

$fields = array(
   'firma',
   'post',
   'city',
   'postal_code',
   'address1',
   'phone',
   'mobphone',
   'fax',
   'website',
   'tos',
  );
#456
Александр говорит:
May 12, 2012 at 01:23 pm
Спасибо огромное, статья помогла. Только не пришлось менять PHP, ведь он и так обрабатывает все поля "profile-require_".
#457
Сергей говорит:
May 13, 2012 at 09:24 pm
Я ж и говорю... Добавление лишнего кода - лишнее. Достаточно прописать еще одну строку с названием поля в массив. Так будет правильней
#729
Сергей говорит:
December 20, 2012 at 02:57 pm

Подскажите пожалуйста как сделать тоже самое но с полями формы регистрации

Нужно добавить к полю "Имя" еще "Отчество" и "Фамилию"

и тоже самое в профиле пользователя что-бы он мог их редактировать

#910
Vick говорит:
July 4, 2013 at 11:34 pm

Подскажите как при регистрации создать выбор профиля будущего пользователя?

Ищу вторые сутки и кроме cb profile pro для community builder не нашел... хотя бы в какую сторону копать намекните

Спасибо заранее