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

Далее необходимо на созданное пространство добавить форму с нужными полями. Для того чтобы дать знать плагину какие поля нужны, необходимо их описать в созданном заранее чанке в следующем формате:
заголовок_поля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~
создаст следующую форму:

1. Скачиваем архив с плагином.
2. Дополняем содержимое папки assets одноименной папкой из архива.
3. Создаем плагин WEbloginPE manager и добавляем в него содержимое файла plugin.tpl.
4. В конфигурации плагина устанавливаем системные события OnWebSaveUser и OnWUsrFormRender.
5. Прописываем в конфигурации строку &wlpe_fields=Чанк с параметрами;string;wlpeConf и сохраняем плагин.
6. Создаем чанк wlpeConf и прописываем в нем какие поля нам нужны.
7. Заходим в редактирование какого-либо пользователя и видим новую вкладку Доп. параметрами в указанными в чанке wlpeConf параметрами.
Надеюсь данный плагин окажется полезным для MODx пользователей и разработчиков.
В самом MODx для хранения информации о пользователе предоставлено достаточно полей, чтобы покрыть повседневные нужды — (ФИО, адрес, телефон, email и остальные стандартные), но вот дополнительную информацию придется вносить своими силами.
К счастью для MODx есть известный сниппет WebloginPE, который умеет ее записывать. И казалось бы вопрос закрыт… Но возможна ситуация, если человек при регистрации указал неверные данные и, допустим, при обсуждении заказа товаров с менеджером выяснилась эта мелкая (или не очень) ошибка, то, согласитесь, не совсем правильно просить самого человека это исправить, а ведь дополнительную информацию мы храним отдельно от основной и MODx о ней знать не знает.
Конечно можно написать отдельный модуль для данной задачи, но всегда хочется дополнить систему аккуратно и красиво, тем более MODx позволяет это сделать с помощью плагинов. Как раз такой плагин я и захотел написать, когда стала вышеописанная задача.
Самым удобным для использования мне показался вариант с добавлением новой вкладки на страницу редактирования информации о пользователе:

Далее необходимо на созданное пространство добавить форму с нужными полями. Для того чтобы дать знать плагину какие поля нужны, необходимо их описать в созданном заранее чанке в следующем формате:
заголовок_поля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~
создаст следующую форму:

Установка плагина
1. Скачиваем архив с плагином.
2. Дополняем содержимое папки assets одноименной папкой из архива.
3. Создаем плагин WEbloginPE manager и добавляем в него содержимое файла plugin.tpl.
4. В конфигурации плагина устанавливаем системные события OnWebSaveUser и OnWUsrFormRender.
5. Прописываем в конфигурации строку &wlpe_fields=Чанк с параметрами;string;wlpeConf и сохраняем плагин.
6. Создаем чанк wlpeConf и прописываем в нем какие поля нам нужны.
7. Заходим в редактирование какого-либо пользователя и видим новую вкладку Доп. параметрами в указанными в чанке wlpeConf параметрами.
Надеюсь данный плагин окажется полезным для MODx пользователей и разработчиков.