
FetchIt
Легковесная AJAX-отправка форм в MODX на Fetch API поверх FormIt или своего сниппета


FetchIt 1.x был пакетом для MODX 2, FetchIt 3.x — пакетом для MODX 3. FetchIt 4 заменяет оба: один пакет ставится и на MODX 2.8, и на MODX 3, поверх уже установленной версии через Менеджер пакетов. Системные настройки и чанки при обновлении остаются как есть.
Внимание
Сниппет и плагин FetchIt при обновлении заменяются вместе с параметрами сниппета по умолчанию, так что правки в их коде и параметрах пропадут. Вызовы сниппета на страницах менять не нужно.
$FetchIt = FetchIt::service($modx);. Вызовы из 1.x ($modx->getService('fetchit', 'FetchIt', MODX_CORE_PATH . 'components/fetchit/model/')) и из 3.x ($modx->services->get('FetchIt'), только на MODX 3) возвращают тот же объект.FetchIt\FetchIt из 3.x — тот же класс, instanceof \FetchIt\FetchIt работает. get_class() теперь возвращает FetchIt.storeActionProperties() / loadActionProperties() и их имена из 3.x saveActionProperties() / getActionProperties().@FILE) — и на MODX 2, и на MODX 3.fetchit.frontend.default.notifier больше не подключает Notyf, а показывает встроенные уведомления. Стили для .notyf__toast и вызовы new Notyf() нужно поменять или подключить Notyf самостоятельно.fetchit:error срабатывает и при сбое запроса: тогда detail.response равен null, а причина лежит в detail.error.fields только отправленную форму: $_POST и файлы из $_FILES при отправке через FetchIt, только $_POST при обычной отправке. Без GET-параметров и cookies — раньше приходил $_REQUEST.fetchit:success можно отменить: event.preventDefault() оставит поля заполненными.method и data-fetchit ставятся последними атрибутами тега формы.fetchit.protection.min_time и fetchit.protection.rate_limit в 0, чтобы защита не мешала тестам.fetchit.captcha: свой AJAX-режим FormIt в формах FetchIt выключается.Полный список изменений — в changelog компонента (на английском), пакеты всех версий — в релизах на GitHub.