Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует версию PHP
7.4
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже
2.6
!
НЕ РАБОТАЕТ С MODX 3
!!! ВНИМАНИЕ БАГ!!! В версии 1.0.6 и ниже для корректной работы обязательно нужно передавать параметр validate, пусть даже и пустым, или из параметров по умолчанию для сниппета AjaxFormItLogin удалить значение для этого параметра.
!!! ВАЖНО!!! При установке компонент так же будут установлены pdoTools и FormIt. При этом нужно самостоятельно включить Fenom на страницах. Для этого в системных настройках нужно найти ключ pdotools_fenom_parser и установить значение ДА.
Отличия от AjaxForm:
1. Нет jQuery.
2. Для показа уведомлений используется библиотека IziToast.
3. Принимает параметр clearFieldsOnSuccess, тем самым позволяя управлять очисткой полей при успешной оправке формы.
4. Принимает параметр transmittedParams (значение должно быть валидным JSON), который позволяете передавать в JS кастомные параметры отдельно при успешной, отдельно при неудачной отправке.
5. Позволяет отображать процесс загрузки файлов на сервер, для этого нужно указать параметр showUploadProgress со значением 1.
6. Событие af_complete заменено на afl_complete.
8. Работают редиректы. Для этого необходимо указать параметр redirectTo (абсолютная ссылка или ID ресурса) и, при необходимости изменить стандартное значение в 2с, redirectTimeout (в милисекундах) для задания задержки перед переходом на другую страницу.
9. Добавлен метод помогающий валидировать чекбоксы. Для его работы необходимо проверяемому чекбоксу добавить атрибут data-afl-required, где значением будет ключ указанный в параметре validate, а также нужно добавить скрытое поле с этим именем в форму. Самому чекбоксу имя можно не указывать.
10. Нет поддержки капчи от гугла, но встроена собственная защита от спама по методу Алексея Смирнова. Для активации нужно в вызове указать параметр spamProtection со значением 1.
11. Есть возможность регистрации, авторизации, сброса пароля и редактирования личных данных, при условии установки компонента FormIt. Подробнее о поддерживаемых параметрах можно прочитать в этой заметке
12. При обновлении данных пользователя добавлено системное событие aiOnUserUpdate, которое получает следующие данные $user — объект обновленного пользователя, $profile — его профиль, $data — переданные данные.
13. Есть автоматическая отправка целей в Яндекс.Метрику. Чтобы это работало нужно установить системную настройку afl_metrics в значение ДА. Указать в системной настройке afl_counter_id идентификатор используемого на сайте счётчика метрики. Вставить код самого счётчика на сайт. Добавить в вызов сниппет параметр ym_goal, в котором нужно указать имя JS цели из Яндекс.Метрики.
Возможные сценарии использования (в скобках указан путь к файлу с примером, который будет загружен вместе с компонентом):
1. Отправка формы еа указанный email (core/components/ajaxformitlogin/elements/templates/index.tpl);
2. Регистрация пользователя на сайте (core/components/ajaxformitlogin/elements/templates/register.tpl);
3. Авторизация пользователя на сайте (core/components/ajaxformitlogin/elements/templates/auth.tpl);
4. Сброс пароля (core/components/ajaxformitlogin/elements/templates/forgot.tpl);
5. Редактирование данных пользователя (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
6. Выход из аккаунта пользователя (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
7. Смена пароля (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
8. Активация пользователя (core/components/ajaxformitlogin/elements/templates/index.tpl);
9. Вызов любого сниппета через Ajax.
Пример вызова.
!!! ВНИМАНИЕ БАГ!!! В версии 1.0.6 и ниже для корректной работы обязательно нужно передавать параметр validate, пусть даже и пустым, или из параметров по умолчанию для сниппета AjaxFormItLogin удалить значение для этого параметра.
!!! ВАЖНО!!! При установке компонент так же будут установлены pdoTools и FormIt. При этом нужно самостоятельно включить Fenom на страницах. Для этого в системных настройках нужно найти ключ pdotools_fenom_parser и установить значение ДА.
Отличия от AjaxForm:
1. Нет jQuery.
2. Для показа уведомлений используется библиотека IziToast.
3. Принимает параметр clearFieldsOnSuccess, тем самым позволяя управлять очисткой полей при успешной оправке формы.
4. Принимает параметр transmittedParams (значение должно быть валидным JSON), который позволяете передавать в JS кастомные параметры отдельно при успешной, отдельно при неудачной отправке.
5. Позволяет отображать процесс загрузки файлов на сервер, для этого нужно указать параметр showUploadProgress со значением 1.
6. Событие af_complete заменено на afl_complete.
document.addEventListener('afl_complete', e => {
console.log(e.detail.response); // ответ сервера
console.log(e.detail.form); // текущая форма
});
7. Изменен формат ответа сервера.8. Работают редиректы. Для этого необходимо указать параметр redirectTo (абсолютная ссылка или ID ресурса) и, при необходимости изменить стандартное значение в 2с, redirectTimeout (в милисекундах) для задания задержки перед переходом на другую страницу.
9. Добавлен метод помогающий валидировать чекбоксы. Для его работы необходимо проверяемому чекбоксу добавить атрибут data-afl-required, где значением будет ключ указанный в параметре validate, а также нужно добавить скрытое поле с этим именем в форму. Самому чекбоксу имя можно не указывать.
10. Нет поддержки капчи от гугла, но встроена собственная защита от спама по методу Алексея Смирнова. Для активации нужно в вызове указать параметр spamProtection со значением 1.
11. Есть возможность регистрации, авторизации, сброса пароля и редактирования личных данных, при условии установки компонента FormIt. Подробнее о поддерживаемых параметрах можно прочитать в этой заметке
12. При обновлении данных пользователя добавлено системное событие aiOnUserUpdate, которое получает следующие данные $user — объект обновленного пользователя, $profile — его профиль, $data — переданные данные.
13. Есть автоматическая отправка целей в Яндекс.Метрику. Чтобы это работало нужно установить системную настройку afl_metrics в значение ДА. Указать в системной настройке afl_counter_id идентификатор используемого на сайте счётчика метрики. Вставить код самого счётчика на сайт. Добавить в вызов сниппет параметр ym_goal, в котором нужно указать имя JS цели из Яндекс.Метрики.
Возможные сценарии использования (в скобках указан путь к файлу с примером, который будет загружен вместе с компонентом):
1. Отправка формы еа указанный email (core/components/ajaxformitlogin/elements/templates/index.tpl);
2. Регистрация пользователя на сайте (core/components/ajaxformitlogin/elements/templates/register.tpl);
3. Авторизация пользователя на сайте (core/components/ajaxformitlogin/elements/templates/auth.tpl);
4. Сброс пароля (core/components/ajaxformitlogin/elements/templates/forgot.tpl);
5. Редактирование данных пользователя (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
6. Выход из аккаунта пользователя (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
7. Смена пароля (core/components/ajaxformitlogin/elements/templates/personal_data.tpl);
8. Активация пользователя (core/components/ajaxformitlogin/elements/templates/index.tpl);
9. Вызов любого сниппета через Ajax.
Пример вызова.
{'!AjaxFormitLogin' | snippet : [
'form' => 'aflExampleForm',
'snippet' => 'FormIt',
'hooks' => 'FormItSaveForm,email',
'emailTo' => 'shev.art.v@yandex.ru',
'emailFrom' => 'noreply@art-sites.ru',
'emailSubject' => 'Тестовая форма',
'emailTpl' => 'aflExampleEmail',
'successMessage' => 'Форма успешно отправлена! Менеджер свяжется с Вами в течение 5 минут.',
'clearFieldsOnSuccess' => 1,
'transmittedParams' => ["success" => 'ym_goal', "error" => 'aliases'],
'aliases' => 'email==Email,phone==Телефон,name==Имя,politics==Правила сервиса',
'showUploadProgress' => 1,
'spamProtection' => 1,
'ym_goal' => 'TEST_GOAL',
'validate' => 'email:required:email,name:required:minLength=^3^,phone:required,politics:minValue=^1^',
'validationErrorMessage' => 'Исправьте, пожалуйста, ошибки!',
'email.vTextRequired' => 'Укажите email.',
'fullname.vTextRequired' => 'Укажите ФИО.',
'fullname.vTextMinLength' => 'Слишком короткое ФИО.',
'secret.vTextContains' => 'Кажется Вы робот. Если это не так, обновите страницу.',
'politics.vTextMinValue' => 'Примите наши условия.'
]}
Отличия от AjaxForm:
- Нет jQuery.
- Для показа уведомлений используется библиотека IziToast.
- Принимает параметр clearFieldsOnSuccess, тем самым позволяя управлять очисткой полей при успешной оправке формы.
- Принимает параметр transmittedParams (значение должно быть валидным JSON), который позволяете передавать в JS кастомные параметры отдельно при успешной, отдельно при неудачной отправке.
- Позволяет отображать процесс загрузки файлов на сервер, для этого нужно указать параметр showUploadProgress со значением 1.
- Событие af_complete заменено на afl_complete.
document.addEventListener('afl_complete', e => { console.log(e.detail.response); // ответ сервера console.log(e.detail.form); // текущая форма });
- Изменен формат ответа сервера.
- Работают редиректы. Для этого необходимо указать параметр redirectTo (абсолютная ссылка или ID ресурса) и, при необходимости изменить стандартное значение в 2с, redirectTimeout (в милисекундах) для задания задержки перед переходом на другую страницу.
- Добавлен метод помогающий валидировать чекбоксы. Для его работы необходимо проверяемому чекбоксу добавить атрибут data-afl-required, где значением будет ключ указанный в параметре validate, а также нужно добавить скрытое поле с этим именем в форму. Самому чекбоксу имя можно не указывать.
- Нет поддержки капчи от гугла, но встроена собственная защита от спама по методу Алексея Смирнова. Для активации нужно в вызове указать параметр spamProtection со значением 1.
- Есть возможность регистрации, авторизации, сброса пароля и редактирования личных данных, при условии установки компонента FormIt. Подробнее о поддерживаемых параметрах можно прочитать в этой заметке
- при обновлении данных пользователя добавлено системное событие aiOnUserUpdate, которое получает следующие данные $user - объект обновленного пользователя, $profile - его профиль, $data - переданные данные.
Последние обсуждения в сообществе MODX.pro