Pull to refresh

WebloginPE и manager MODx

Наверно у многих, кто делал сайты на MODx evolution вставала задача реализации регистрации пользователей. При этом от самого пользователя в зависимости от сайта могут требоваться различные данные: в одних случаях все ограничивается логином и адресом электронной почты, в других случаях (например в интернет магазинах) важно знать о человеке или об организации, больше, чтобы при заказе товаров каждый раз не просить ввода одних и тех же данных — начиная от адреса и, заканчивая, ИНН, расчетным счетом, БИК и т.д.

В самом MODx для хранения информации о пользователе предоставлено достаточно полей, чтобы покрыть повседневные нужды — (ФИО, адрес, телефон, email и остальные стандартные), но вот дополнительную информацию придется вносить своими силами.

К счастью для MODx есть известный сниппет WebloginPE, который умеет ее записывать. И казалось бы вопрос закрыт… Но возможна ситуация, если человек при регистрации указал неверные данные и, допустим, при обсуждении заказа товаров с менеджером выяснилась эта мелкая (или не очень) ошибка, то, согласитесь, не совсем правильно просить самого человека это исправить, а ведь дополнительную информацию мы храним отдельно от основной и MODx о ней знать не знает.

Конечно можно написать отдельный модуль для данной задачи, но всегда хочется дополнить систему аккуратно и красиво, тем более MODx позволяет это сделать с помощью плагинов. Как раз такой плагин я и захотел написать, когда стала вышеописанная задача.

Самым удобным для использования мне показался вариант с добавлением новой вкладки на страницу редактирования информации о пользователе:

image

Далее необходимо на созданное пространство добавить форму с нужными полями. Для того чтобы дать знать плагину какие поля нужны, необходимо их описать в созданном заранее чанке в следующем формате:

заголовок_поля1~имя_параметра1~тип_параметра1||заголовок_поля2~имя_параметра2~тип_параметра2 и т.д.

Где заголовки полей это некоторый текст, который визуально находится слева на странице редактирования пользователя и описывает для чего данное поле предназначено. Имя параметра — это имя параметра в форме регистрации посетителя, он указывается в параметре &customFields при вызове WebloginPE. И, наконец, тип параметра может принимать следующие значения:

string — обычное текстовое поле — тип по умолчанию,

date — поле, для которого будет прикреплен datepicker,

radio: Название_значения1(значение1): Название_значения2(значение2)… — группа переключателей,

checkbox: Название: Значение — чекбокс,

select: Название_значения1(значение1): Название_значения2(значение2) — выпадающий список,

multiselect: Название_значения1(значение1): Название_значения2(значение2) — список с возможностью выбора нескольких пунктов.

Следует отметить, если поле тип останется пустым то выведется текстовое поле.

Например вот такая конфигурация:

Тип~user_org_type~radio: Физическое лицо(Физическое лицо): Юридическое лицо(Юридическое лицо)||Полное наименование юр. лица~org_name~||Должность представителя~org_person~||ИНН~inn~||КПП~kpp~||Юридический адрес~org_address~||Расчетный счет~rs~||Корр. счет~ks~||Банк получателя~bank~||БИК~bik~

создаст следующую форму:

image

Установка плагина



1. Скачиваем архив с плагином.

2. Дополняем содержимое папки assets одноименной папкой из архива.

3. Создаем плагин WEbloginPE manager и добавляем в него содержимое файла plugin.tpl.

4. В конфигурации плагина устанавливаем системные события OnWebSaveUser и OnWUsrFormRender.

5. Прописываем в конфигурации строку &wlpe_fields=Чанк с параметрами;string;wlpeConf и сохраняем плагин.

6. Создаем чанк wlpeConf и прописываем в нем какие поля нам нужны.

7. Заходим в редактирование какого-либо пользователя и видим новую вкладку Доп. параметрами в указанными в чанке wlpeConf параметрами.

Надеюсь данный плагин окажется полезным для MODx пользователей и разработчиков.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.