Итак, вы создали сайт. Однако Перед нами стоит задача по реализации дополнительных полей профиля пользователей на странице регистрации. Для этого не нужно ставить трактор типа Community Builder, ибо мы можем настроить расширеные профили пользователей в Joomla 1.7 — то, чего так не хватало в 1.5.
Часть 1. Настройка профиля пользователя в Joomla 1.7
Настройка расширенного профиля делается следующим образом:
1. Идём в Расширения > Менеджер плагинов > Пользователь — Профиль. Нажимаем в название плагина для перехода в режим редактирования.
2. Публикуем плагин. Далее смотрим доступные режимы в правой части экрана.
Этот список настроек содержит дополнительные типы данных, которые будут отображаться в профиле пользователя. По умолчанию всем настройкам выставлено значение «не обязательно». Это означает, что такие поля будут отображаться на странице регистрации пользователя и на странице редактирования профиля, однако данная информация не будет обязательной к заполнению. Режим «Обязательно» делает поля обязательными к заполнению (пользователь не сможет зарегистрироваться не заполнив такое поле), режим «отключено», соответственно, отключает параметр во фронте.
Группа основных параметров в закладке «основные параметры» будет отображаться на странице регистрации пользователя во фронтальной части сайта, также как и в режиме редактирования профиля пользователя в панели администрирования. Нижняя часть параметров предназначена для формы изменения профиля.
3. На картинке, приведенной ниже, я внес следующие изменения:
Отключил параметры: любимая книга, условия предоставления услуг (Terms of Service) и дата рождения;
Сделал обязательными параметры телефона и Веб-сайта.
4. Нажимем «Сохранить и закрыть» в верхней правой части админ.панели. Открываем фронтальную часть сайта. У меня установлена обычная версия Joomla 1.7 с демо-данными. Нажав на ссылку «Создать аккаунт» в модуле авторизации (левая колонка шаблона), получаю следующую картину:
Если снова переключиться на закладку с панелью управления и проследовать в верхнем меню: Сайт — Профиль пользователя, в вашем пользовательском профиле появятся добавленными нами ранее обязательные параметры для редактирования. Обратим внимание на правую часть экрана и дополнительные опции:
Возможно выйти из режима редактирования профиля нажав на иконку «отмена», но в случае нажатия на кнопку «сохранить», вам потребуется заполнить обязательные параметры «Телефон» и «Веб-сайт».
Если владелец сайт (клиент) хочет собирать информацию о пользователях в виде отчета, то, к сожалению, экспорт этих данных в базовых возможностях Joomla не предусмотрен. Однако все данные хранятся в базе-данных, поэтому в случае надобности можно написать собственное решение, позволяющие экспортировать данные или поискать аналог на JED.
Дополнительные поля профиля пользователей в Joomla! 1.6
Еще одна интересная особенность, о которой важно упомянуть — возможность легкого изменения и добавления параметров профиля пользователя путем редактирования xml файла плагина. Файл находится по следующему пути: plugins/user/profile/profiles/profile.xml. Можно внести модификацию и добавить свои поля / поменять текущие. Однако я не рекомендую этого делать ввиду нежелательности вносить изменения в core файлы, т.к. при последующем обновлении Joomla, вы можете затереть эти изменения. И здесь нам на помощь приходит смекалка и руки: ведь можно создать собственный плагин профиля пользователей в Joomla 1.7. Чему, собственно говоря, посвящена следующая часть статьи.
Часть 2. Создание собственного плагина профиля пользователей в Joomla
Плагин профиля пользователей является нововведением в Joomla 1.6 / 1.7. Он позволяет добавить дополнительные поля в форму регистрации и профиль пользователя во фронте и возможность редактировать их в панели администрирования.
Простой пример — стандатрный плагин под названием Пользователь — Профиль, идущий в дистрибутиве Joomla. Но ведь ничто не мешает переписать его и сделать собственный, расширенный плагин.
Плагин, который мы рассмотрим, использует премущества событий onContentPrepareForm и onUserAfterSave.
Joomla может исполнять ряд плагинов профиля пользователей в последовательном режиме.
В стандартном, т.н. core функционале Joomla, формы профиля используются в четырех случаях, отображение в каждом из которых можно индивидуально настроить, если требуется. В двух случаях это страница регистрации пользователя и страница редактирования профиля во фронте сайта и режим управления полями профилей, а также режим Мой профиль в панели управления.
Ниже разберем пример создания второго плагина полей пользовательского профиля и условно назовем его Пользователь — Профиль 5 — profile5. Плагин позволит нам добавить дополнительные параметры к существующим и будет дополнять стандартный плагин Пользователь — Профиль.
168.'DELETE FROM #__user_profiles WHERE user_id = '.$userId.
169." AND profile_key LIKE 'profile5.%'"
170.);
171.
172.if(!$db->query()) {
173.thrownewException($db->getErrorMsg());
174.}
175.}
176.catch (JException $e)
177.{
178.$this->_subject->setError($e->getMessage());
179.returnfalse;
180.}
181.}
182.
183.returntrue;
184.}
185.
186.
187.}
Файл profile5.xml отвечает за поля, настраиваемые в панели управления (обязательное поле, выключено, необязательное). Поскольку profile5.php отвечает за создание / редактирование полей в панели администратора, которые присутствуют и на странице регистрации, то плагин использует два набора параметров — для фронта и админки.
01.; Joomla! Project
02.; Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
Установив плагин profile5, вы можете добавить новые поля в дополнение к существующим в профиль пользователей. Также возможно управлять правами доступа этих полей. В случае, если возможностей данного плагина будет недостаточно, всегда можно написать более расширенный плагин, в котором возможно назначать права доступа разным группам пользователей.