SendIt

sendit

  • By Артур Шевченко
  • Latest release October 15, 2026 (18 days ago)

About

Компонент для отправки данных на сервер.

At a glance

MODX 3 compatibility unknown. Based on our testing and community reports where available.

  • Developer Артур Шевченко
  • Latest release October 15, 2026 (18 days ago)
  • First seen in SiteDash August 22, 2023 (3 years ago)
  • License GPLv2
  • MODX support 2.8+
  • Databases MySQL

Releases 65 indexed releases

Changelog
modstore.pro

3.1.1-pl

April 13, 2026

6 months ago

—
modstore.pro

2.10.0-pl

October 15, 2026

18 days ago

2.10.0-pl<br />
==============<br />
- Добавил вход и регистрацию по одноразовому коду (только MODX 2): сниппет siSendCode, валидатор<br />
siCheckCode, хук siCodeIdentification, пресеты code_send, code_send_register, code_auth,<br />
code_register, пример формы siExampleCodeAuthForm. Код хранится HMAC-хэшем под ключом получателя,<br />
а не сессии; лимиты codeTtl, codeResendDelay, codeAttempts, codeHourlyLimit, codeLength задаются<br />
в пресете. Телефон ищется по цифрам, без учёта маски в профиле.<br />
- Доставку кода пакет не реализует: проект пишет класс с интерфейсом siCodeSender (SMS, Telegram,<br />
почта) и подключает его настройками si_code_sender, si_code_sender_path или параметрами пресета<br />
codeSender, codeSenderPath.<br />
- Добавил события siOnBeforeSendCode (подменить код или запретить отправку) и siOnCodeLogin.<br />
- Добавил сохранённую корзину покупателя (таблица si_user_carts, действие savecart): корзина<br />
сохраняется на событиях корзины miniShop2 и возвращается при входе с другого устройства;<br />
совпавшая позиция получает большее количество, а не сумму. Работает при ms2_tmp_storage=session.<br />
- Добавил заявку на возврат из кабинета (действие return, пресет order_return): выбор позиций<br />
и количества, причина, комментарий. Настройки si_cabinet_return_statuses и<br />
si_cabinet_return_days. Что делать с заявкой, решает проект на siOnUserCabinetAction<br />
(method requestReturn).<br />
- Параметр пресета reloadPage работает для любых пресетов, а не только кабинета.<br />
- Добавил настройку si_cabinet_page_id — страница кабинета. Пресеты входа и регистрации (auth,<br />
sms_auth, sms_register, code_auth, code_register, afterLoginRedirectId в register) ведут на неё<br />
значением redirectTo = cabinet, менять пресеты под проект не нужно. По умолчанию 5, как было<br />
зашито в пресетах; 0 — без перехода. ID или URL в пресете по-прежнему важнее настройки.<br />
- Чанки кабинета и примеры форм свёрстаны в стиле остальных примеров пакета.<br /><br />
2.9.0-pl<br />
==============<br />
- Добавил работу покупателя с заказами miniShop2 (только MODX 2): список заказов с составом<br />
(сниппет siUserOrders, render пресета user_orders с пагинацией), перенос позиций в корзину,<br />
повтор с переходом на страницу оформления, оплата существующего заказа через его способ<br />
оплаты, отмена. Пресеты order_tocart, order_repeat, order_pay, order_cancel.<br />
- Добавил адреса доставки покупателя (таблица si_user_addresses, сниппет siUserAddresses):<br />
сохранение, удаление, адрес по умолчанию и быстрый выбор на странице оформления. Пресеты<br />
address_save, address_remove, address_default, address_apply. JS-модуль OrderFields<br />
заполняет форму #msOrder выбранным адресом.<br />
- Выбранные в кабинете поля держатся в сессии SendIt и подставляются на msOnBeforeAddToOrder,<br />
пока покупатель не поправит поле сам; без выбора подставляется адрес по умолчанию.<br />
- Набор действий кабинета настраивается в системных настройках: si_cabinet_actions,<br />
si_cabinet_checkout_id, si_cabinet_cancel_statuses, si_cabinet_pay_statuses.<br />
- Добавил события siOnBeforeUserCabinetAction (поправить данные действия или запретить его)<br />
и siOnUserCabinetAction (после выполнения).<br />
- Работа идёт через контракт miniShop2 (cart-&gt;add, order-&gt;add, changeOrderStatus,<br />
msPayment::send), без привязки к конкретным обработчикам корзины и заказа.<br /><br />
2.8.6-pl<br />
==============<br />
- SECURITY: известные SQLi-последовательности в полях SendIt отклоняются до запуска<br />
snippet-а; ответ формы не раскрывает правило срабатывания.<br />
- SECURITY: прежняя «санитизация» молча вырезала слова и символы из легитимного текста,<br />
но не закрывала SQL-инъекции. Входные значения теперь сохраняются без SQL-экранирования;<br />
SQL-безопасность кода snippet-а обеспечивают только prepared statements.<br />
- TESTS: добавлены автономные проверки нормализации и блокировки известных SQLi.<br /><br />
2.8.5-pl<br />
==============<br />
- FIX: Восстановление пароля через PasswordReset больше не сжигает ссылку до проверки<br />
срока действия и успешного сохранения пользователя. Повторный переход по ссылке в<br />
пределах TTL выставляет тот же временный пароль, поэтому предпросмотр письма или<br />
антивирус не ломает сброс для пользователя.<br />
- FIX: Ручная смена пароля через update очищает временный пароль восстановления, чтобы<br />
старая ссылка не могла откатить пароль назад.<br />
- FIX: Исправлен fallback срока действия ссылки восстановления при пустом activationUrlTime.<br />
- DOCS: Добавлен пример вывода нового временного пароля на странице activationResourceId<br />
через результат некешируемого PasswordReset.<br /><br />
2.8.4-pl<br />
==============<br />
- Закрыл запись файла с произвольным именем и путём через публичный экшен uploadChunk:<br />
имя из заголовка X-CONTENT-NAME больше не подставляется в путь. Приём чанка разрешён<br />
только для файла, который прошёл serverside-валидацию (validate_files) в этой же сессии,<br />
с теми же расширением, размером и пресетом; все пути проверяются на принадлежность<br />
каталогу загрузок сессии до создания каталога и записи.<br />
- Закрыл удаление произвольного файла через removeFile: путь проверялся вхождением<br />
session_id в строку, поэтому uploaded_files/{sid}/../../../core/config/config.inc.php<br />
проходил проверку. Теперь путь канонизируется и обязан остаться внутри каталога<br />
загрузок сессии. Флаг forceRemove для внутренних вызовов сохранён.<br />
- Закрыл path traversal в attachFiles(): список файлов из POST подставлялся в путь<br />
без проверки.<br />
- Добавил серверную нормализацию имён файлов (транслитерация без ext-intl, kebab-case,<br />
нижний регистр расширения, лимит длины) и обезвреживание исполняемых расширений:<br />
shell.php -&gt; shell-php, shell.php.jpg -&gt; shell-php.jpg.<br />
- Добавил событие siOnSanitizeFileName: проект может задать свои правила именования<br />
вплоть до полного переименования файла и раскладки по подкаталогам. Параметры: name<br />
(оригинал), sanitized (имя по правилам пакета), extension, directory, context,<br />
formName, presetName, SendIt; ответ — returnedValues['name'], пустой ответ означает<br />
"дефолт устраивает". Имя, вернувшееся из плагина, в любом случае проходит<br />
security-постфильтр пакета.<br />
- validate_files возвращает карту data.names (исходное имя -&gt; имя на сервере), клиентский<br />
загрузчик работает по ней. На сервер теперь уходит исходное имя файла, чтобы плагин<br />
проекта получал оригинал, а не результат клиентской транслитерации.<br />
- Удаление файла, загрузка которого не завершилась, убирает каталог его чанков, а не<br />
каталог сессии целиком.<br /><br />
2.8.3-pl<br />
==============<br />
- Исправил PHP warning "Undefined array key onestepform" в SendIt::getExtends() —<br />
обращение к несуществующему пресету при extends теперь через `?? []`.<br />
- Исправил PHP warning "Undefined array key siSession" в плагине sendit (OnHandleRequest) —<br />
чтение cookie заменено на `empty($_COOKIE['siSession'])`.<br /><br />
2.8.2-pl<br />
==============<br />
- Логирование переведено на mxLogger (единственный приёмник). Добавлен класс siLogger<br />
(services/siLogger.class.php), делегирующий записи сервису mxLogger; если он не<br />
установлен — один раз предупреждает в журнале MODX и молчит.<br />
- Новые настройки: si_debug (вкл/выкл, включено из коробки) + si_log_level (минимальный<br />
уровень debug|info|warning|error, по умолчанию error). Консистентно с mxlogger.min_level.<br />
- Тэги: базовые sendit + forms, этапные auth / preset / session. Боевые вызовы $modx-&gt;log<br />
(пресеты, таблица сессий, авторизация) переведены в логгер с нужным уровнем; дамп<br />
логина/пароля при ошибке авторизации убран (теперь debug без значений полей).<br />
- Скрипт modxbuilder/sendit/_mk_setting.php для создания настроек в БД стенда.<br /><br />
2.8.1-pl<br />
==============<br />
- Исправил блокировку модуля UserBehaviorTracker корпоративными прокси/DLP по имени файла (ошибка 499): модуль переименован в SessionLogger, cookie `siubt` → `sisl`.<br />
- Убрал re-throw в Main._initModule — при падении любого модуля приложение продолжает инициализацию (graceful fallback), ошибка только логируется в console.error.<br /><br />
2.8.0-pl<br />
==============<br />
- Добавил защиту Proof of Work (PoW) — клиент решает криптографическую задачу перед отправкой, что делает спам экономически невыгодным.<br />
- Добавил шифрованную подпись поведения (Encrypted Behavioral Signature) — результат анализа UserBehaviorTracker шифруется AES-128-GCM и проверяется на сервере.<br />
- Добавил отслеживание времени заполнения формы (formFillTime) — защита от мгновенной отправки ботами.<br />
- Добавил параметры пресетов: usePoW, powDifficulty, useBehaviorSign, minFillTime, maxBotScore.<br />
- Добавил per-preset карту защиты (protectionMap) — клиент применяет защиту только для тех форм, где она включена в пресете.<br />
- Добавил ротацию challenge и ключа шифрования после каждой успешной отправки (one-time use).<br />
- Добавил JS модули ProofOfWork и BehaviorSign.<br /><br />
2.7.3-pl<br />
==============<br />
- Вернул в конфиг QuizForm параметр nosaveAttr.<br />
- Добавил проверку на тип значения перед вставкой сохраненных данных.<br />
- Добавил загрузку скриптов в админке<br /><br />
2.7.2-pl<br />
==============<br />
- Добавил событие JS 'si:send:reset:after', которое срабатывает после сброса формы.<br />
- Исправил ошибку удаления загруженных файлов.<br /><br />
2.7.1-pl<br />
==============<br />
- Сделал обязательным указание пресета, даже дефолтного, чтобы предотвратить ненужные отправки<br />
- Изменил порядок сохранения данных из чекбоксов и переключателей.<br /><br />
2.7.0-pl<br />
==============<br />
- Переработал невидимую капчу.<br />
- Добавил возможность использовать кастомный session_id вместо стандартного.<br /><br />
2.6.0-pl<br />
==============<br />
- Добавил класс UserBehaviorTracker для анализа поведения пользователя.<br /><br />
2.5.0-pl<br />
==============<br />
- Поменял порядок проверки на Email.<br />
- Добавил системное событие senditOnSetValue.<br /><br />
2.4.9-pl<br />
==============<br />
- Доработал добавление HTML в блоки.<br /><br />
2.4.8-pl<br />
==============<br />
- Исключил из проверки на SQL-инъекции email.<br /><br />
2.4.7-pl<br />
==============<br />
- Исправил ошибку вызова метода loadScript().<br />
- Добавил возможность запоминать пользователя при авторизации без пароля.<br />
- Добавил дополнительную санитизацию входящих данных для защиты от SQL инъекций.<br /><br />
2.4.6-pl<br />
==============<br />
- Сделал метод getWebConfig() публичным.<br /><br />
2.4.5-pl<br />
==============<br />
- Добавил селектор пресета в конфиг.<br /><br />
2.4.4-pl<br />
==============<br />
- Вынес инициализацию события 'si:init' в индексный файл.<br /><br />
2.4.3-pl<br />
==============<br />
- Сделал webConfig public.<br /><br />
2.4.2-pl<br />
==============<br />
- Исправил определение версии скриптов.<br />
- Переписал инициализацию с учётом того, что метод getInstance() возвращает промис.<br /><br />
2.4.1-pl<br />
==============<br />
- Сделал так чтобы метод getInstance дожидался полной инициализации перед возвращением экземпляра.<br /><br />
2.4.0-pl<br />
==============<br />
!!! ОБНОВЛЯЙТЕСЬ С ОСТОРОЖНОСТЬЮ. ЕСЛИ ИСПОЛЬЗОВАЛИ КАСТОМНЫЙ КОНФИГ, ПЕРЕПИШИТЕ ЕГО В СООТВЕТСТВИИ С НОВВОЙ ВЕРСИЕЙ !!!<br />
- Немного переписал JS, чтобы модули подключались только если на странице есть хотя бы один элемент с селектором из поля конфигурации модуля rootSelector.<br />
- Метод Sending.prepareSendParams() заменён на метод Sending.sendRequest(), при этом обратная совместимость сохранена.<br />
- Метод Sending.send() заменён на метод Sending.fetch(), при этом обратная совместимость сохранена.<br />
- Добавил версионирование скриптов.<br />
- Добавил событие senditOnGetWebConfig для возможности прокидывать свои и изменять стандартные параметры веб конфига<br /><br />
2.3.1-pl<br />
==============<br />
- Добавил сброс ответа от сервера в JS.<br /><br />
2.3.0-pl<br />
==============<br />
- Обновил iziToast до 1.5.0<br />
- Добавил событие JS 'si:notify:before', которое позволяет задать опции показа уведомлений.<br />
- Поместил ответ сервера в свойство объекта Sending, теперь ответ сервера доступен где угодно так SendIt.Sending.result<br />
- Исправил ошибку автологина сразу после регистрации.<br /><br />
2.2.5-pl<br />
==============<br />
- Добавил возможность динамически выводить общее количество результатов указав в вёрстке блок с атрибутом [data-pn-total-results="presetName"]<br />
- Добавил возможность указывать ключи лексиконов для передачи сообщений и имён полей. Для этого нужно в параметрах сниппета указать ключ useLexicons<br />
в значении нужно перечислить через запятую пространства имён и темы для загрузки лексиконов в формате namespace:topic<br /><br />
2.2.4-pl<br />
==============<br />
- Исправил ошибку при которой уже загруженный файл добавлялся в список даже если общее количество при этом превышает допустимое.<br /><br />
2.2.3-pl<br />
==============<br />
- Правки предупреждений в PHP 8.<br />
- Добавил возможность передавать в качестве значения в поле из параметра userGroupsField строку с разделителем 'запятая'<br /><br /><br />
2.2.2-pl<br />
==============<br />
- Для облегчения перехода с AjaxForm сделал параметр form синонимом параметра tpl.<br /><br />
2.2.1-pl<br />
==============<br />
- Исправил ошибку совместимости с ClientConfig в MODX 3.*<br />
- Если вы используете ClientConfig нужно добавить задачу в крон, которая запустит скрипт core/components/sendit/cron/run.php<br /><br />
2.2.0-pl<br />
==============<br />
- Добавил возможность генерации username при регистрации, для этого нужно не указывать в пресете параметр usernameField.<br />
- Добавил возможность авторизовать пользователя по любому полю, кроме extended. Поле должно содержать уникальное для конкретного пользователя значение.<br /><br />
2.1.7-pl<br />
==============<br />
- Небольшие правки в JS.<br /><br />
2.1.6-pl<br />
==============<br />
- Добавил в событие 'si:send:before' параметр submitter, который содержит элемент, который стал инициатором отправки.<br />
- Устранил критическую уязвимость при загрузке файлов.<br /><br />
2.1.5-pl<br />
==============<br />
- Добавил очистку блока вставки контента, если контента нет.<br />
- Добавил принудительную смену метода вставки если всего одна страница в пагинации.<br />
- Исправил условие получения корневого элемента(формы) в JS.<br />
- Добавил системное событие OnBeforeFileRemove и параметр forceRemove в класс SendIt для удаления файлов без проверки владельца.<br />
- Добавил параметры в событие sf:change<br />
- Добавил событие si:quiz:init<br />
- Добавил метод resetHandler() в модуль загрузки файлов.<br /><br />
2.1.4-pl<br />
==============<br />
- Исправил ошибку "Укажите почту получателя".<br /><br />
2.1.3-pl<br />
==============<br />
- Теперь на событие OnBeforeReturnResponse можно полностью менять возвращаемые на фронт данные.<br /><br />
2.1.2-pl<br />
==============<br />
- Исправил ошибку валидации для имён файлов содержащих больше одной точки в названии.<br /><br />
2.1.1-pl<br />
==============<br />
- Переименовал сниппет ResetPassword в PasswordReset, чтобы не было конфликтов со сниппетом компонента Login.<br /><br />
2.1.0-pl<br />
==============<br />
- Добавил возможность выводить пагинацию списком.<br /><br />
2.0.7-pl<br />
==============<br />
- Исправил фатальную ошибку определения $allowDirs.<br /><br />
2.0.6-pl<br />
==============<br />
- Добавил сниппет mx3RenderForm.<br />
- Адаптировал код под Modx 3.<br />
- Убрал возможность удалять папки с фронта.<br />
- Добавил системную настройку si_allow_dirs для указания разрешённых путей для удаления папок.<br /><br />
2.0.5-pl<br />
==============<br />
- Поправил ошибку в методе forgot().<br /><br />
2.0.4-pl<br />
==============<br />
- Поправил ошибку при которой не устанавливался класс ошибки при отправке данные на события change и input.<br />
- Добавил пресет simpleform.<br /><br />
2.0.3-pl<br />
==============<br />
- Заменил константы путей на опции.<br /><br />
2.0.2-pl<br />
==============<br />
- Поправил ошибку обзёрвера в JS.<br />
- Добавил в сниппет ResetPassword параметр toPls.<br /><br />
2.0.1-pl<br />
==============<br />
Общее<br />
- Добавил проверку параметра antispam.<br />
- Добавил возврат ответа из сниппета ResetPassword.<br />
- Изменились параметры события OnBeforeFileValidate.<br /><br />
2.0.0-pl<br />
==============<br />
Общее<br />
- Переместил основные классы в папку services.<br />
- Поправил пути по умолчанию в методе loadCssJs().<br />
- Избавился от использования сессий.<br />
- Убрал проверку частоты и количества отправок для форм не использующих хук Email или FormItAutoResponder.<br />
- Добавил параметры pauseBetweenSending и sendingPerSession для управления проверкой отправки на спам.<br />
- Добавил в параметры события 'OnGetFormParams' объект SendIt, теперь можно создавать много плагинов на это событие.<br />
- Убрал параметр event из метода prepareSendParams().<br />
- Поменял порядок параметров в методе prepareSendParams().<br />
- Переписал метод getExtends() так, чтобы он мог работать с другими файлами пресетов.<br />
- Добавил возможность автоматической вставки контента, для этого сниппет должен возвращать параметр html, а в пресете нужно указать параметры resultBlockSelector и resultShowMethod<br /><br /><br />
Загрузка файлов<br />
- Добавил проверку на конечный слэш в методе removeDir() класса SendIt.<br />
- Добавил в плагин удаление загруженных файлов, срок хранения которых истёк.<br />
- Добавил системную настройку регулирующую срок хранения загруженных файлов si_storage_time.<br />
- Переписал отправку файлов, чтобы работала многопоточность.<br />
- Добавил очередь загрузки, если загрузка не началась - файл можно удалить из очереди кликом по полоске прогресса.<br />
- В процессе загрузки одного файла, можно добавлять другие файлы в очередь.<br />
- Загруженные файлы после перезагрузки страницы не удаляются, это позволяет продолжить загрузку, если она была прервана.<br />
- Добавил системную настройку регулирующую точность округления процентов при показе прогресса загрузки файлов si_precision.<br />
- Добавил параметр loadedUnit для пресета загрузки файлов, который позволяет указывать в каких единицах измерения показывать прогресс загрузки.<br />
- Добавил передачу параметра nomsg для обозначения автоматического удаления файла при очистке полей.<br /><br />
Квизы<br />
- Добавил в квиз JS событие 'si:quiz:progress'.<br />
- Добавил возможность убирать не нужные кнопки в квизе.<br /><br />
Идентификация<br />
- Переписал метод forgot, теперь сброс пароля надо подтверждать.<br />
- Добавил сниппет ResetPassword, который нужно вызывать для смены пароля.<br />
- Добавил сниппет userExists для проверки существования пользователя.<br />
- Есть два JS события ДО и ПОСЛЕ внесения изменений на страницу, и есть одно серверное событие для изменения параметров.<br /><br />
Пагинация<br />
- Добавил возможность вызывать любые сниппеты с постраничной навигацией.<br />
- Можно выводить на странице несколько блоков с пагинацией.<br />
- Можно динамически менять параметры вывода и выводить результаты с пагинацией.<br />
- Есть классическая пагинация, кнопкой или по скроллу.<br /><br />
1.2.6-pl<br />
==============<br />
- Исправил ошибку неопределенного конфига в обработчике загрузки файлов.<br />
- Добавил удаление класса disabled у кнопки назад.<br /><br />
1.2.5-pl<br />
==============<br />
- Добавил минимально необходимые стили.<br /><br />
1.2.4-pl<br />
==============<br />
- Поправил метод удаления файлов и директорий.<br />
- Удалил лишний параметр из JS метода квиза changeItem().<br />
- Поправил ошибку в загрузчике файлов при отсутствии в ответе параметра data.<br />
- Добавил в ответ сервера параметры вызова кастомного сниппета.<br />
- Добавил в квиз событие 'si:quiz:reset'.<br />
- Добавил в стандартный чанк письма вывод квиза.<br />
- Исправил ошибку обработки множества полей загрузки при отправки формы.<br />
- Добавил в JS метод getRoot()<br />
- Добавил в JS метод addInstances() в FileUploaderFactory<br />
- Добавил в FileUploader событие 'fu:preview:remove'<br />
- Добавил системное событие OnBeforeReturnResponse<br /><br />
1.2.3-pl<br />
==============<br />
- Оставил проверку на спам только в action.php<br /><br />
1.2.3-pl<br />
==============<br />
- Добавил возможность передавать параметры в метод prepareSendParams.<br />
- Добавил возврат результата запроса для возможности писать JS API.<br /><br />
1.2.2-pl<br />
==============<br />
- Убрал из возвращаемых на фронт данных объект класса SendIt.<br />
- Заменил событие OnHandLeRequest на OnWebPageInit это решило проблему с частой ошибкой "Невалидный токен".<br /><br />
1.2.1-pl<br />
==============<br />
- Добавил пример обращения к файловому сниппету.<br />
- Заменил обращение к методу $modx-&gt;runSnippet() на кастомный метод в основном классе.<br /><br />
1.2.0-pl<br />
==============<br />
- Добавил возможность через системные настройки задавать список не нужных в ответе сервера параметров.<br />
- Поправил ошибку вывода псевдонимов полей в чанке письма.<br />
- Добавил возможность передавать параметры валидации файлов из JS.<br />
- Добавил событие OnBeforeFileValidate, которое позволяет изменить параметры валидации.<br />
- Добавил параметр isTrusted для события 'si:quiz:change', позволяет отличить автопереключение от переключения пользователем.<br />
- Добавил обработку атрибута data-si-nosave в много шаговой форме, чтобы отключить переключение на последний шаг при загрузке страницы.<br />
- Добавил возможность загружать файлы перетаскиванием.<br />
- Исправил ошибку мигающего показателя прогресса в квизе.<br />
- Исправил ошибку обработчика ответа в опроснике при отсутствии пагинации в квизе.<br />
- Добавил обработку множества полей добавления файлов внутри одной формы.<br />
- Добавил обработку параметра validate, чтобы убрать переносы строк.<br />
- Изменил проверку куки в плагине, что убрать предупреждение.<br />
- Изменил проверку ключей в основном классе.<br />
- Добавил возможность автоматической авторизации после активации пользователя и переадресации на нужный ресурс по ID<br /><br />
1.1.2-pl<br />
==============<br />
- Поместил токен в сессию. Добавил проверку на наличие токена в сессии.<br />
- Создал сниппет RenderForm для любителей классических вызовов.<br /><br />
1.1.1-pl<br />
==============<br />
- Убрал стили по умолчанию<br />
- Убрал двойную отправку формы при нажатии на Enter<br />
- Поправил условия отправки по клику<br /><br />
1.1.0-pl<br />
==============<br />
- Добавил атрибут data-si-nosave для форм, которые не нужно сохранять<br />
- Добавил возможность отправить форму по клику на произвольный элемент внутри неё<br /><br />
1.0.9-pl<br />
==============<br />
- Исправил ошибку обработки формы без отправки целей<br />
- Добавил транслитерацию кириллицы в именах загружаемых файлах<br /><br />
1.0.8-pl<br />
==============<br />
- Изменил способ передачи параметров и заголовков в событие si:send:before<br />
- Исправил ошибку поиска формы в обработчике файлов<br />
- Добавил имя пресета в серверное событие OnGetFormParams<br />
- Добавил доступ к кнопкам в событии si:quiz:change<br />
- Удалил глобальные стили<br />
- Исправил невозможность указывать путь к кастомному коннектору<br /><br />
1.0.7-pl<br />
==============<br />
- Исправил баг создания папки для загрузки файлов.<br /><br />
1.0.6-pl<br />
==============<br />
- Добавил возможность указывать цели для метрики в коде шаблона в атрибуте data-si-goal.<br />
- Для одного элемента можно указывать несколько целей через запятую.<br />
- Цели указанные в вызове будут добавлены к указанным в шаблоне.<br /><br /><br />
1.0.5-pl<br />
==============<br />
- Исправил баг с ошибкой передачи имени события<br />
- Сделал метод Identification::generateCode($modx) статичным<br />
- Переработал обработку ошибок, теперь их можно увидеть все, если есть текст<br /><br />
1.0.4-pl<br />
==============<br />
- Добавил возможность отправлять данные на сервер без формы<br />
- Добавил рекурсивное наследование<br /><br /><br />
1.0.3-pl<br />
==============<br />
- Добавил ограничение общее количество отправок одной формы без перезагрезки страницы и ограничение на периодичность отправок<br />
- Удалил вывод логов в sending.js<br />
- Добавил возможность использовать параметры по умолчанию во всех формах.<br />
- Убрал обязательную очистку полей формы квиза<br />
- Изменил пути к стилям и скриптам на стандартные.<br />
- Добавил событие OnCheckPossibilityWork для возможности отменить ограничение на количество отправок для отдельных форм.<br /><br />
1.0.2-pl<br />
==============<br />
- Путь к пресетам указывается теперь относительно папки core<br />
- Добавил вывод сообщения из параметра vallidationErrorMessage<br />
- Исправлена ошибка отправки целой формы на события change и input.<br />
- Исправлена ошибка плагина из-за неверного пути к пресетам при вынесенной на уровень выше папке core.<br />
- Исправлена ошибка вызова функции удаления папки с загруженными файлами.<br /><br />
1.0.1-pl<br />
==============<br />
- В модуле SaveFormData добавил события si:set:before, si:set:after, si:change.<br />
- Исправил мелкие ошибки.<br />
- В основном классе поправил процесс формирования поля fields в массиве $_POST.<br /><br /><br />
1.0.0-pl<br />
==============<br />
- Первая стабильная сборка.<br /><br />
1.0.0-beta<br />
==============<br />
- Первая сборка.
modstore.pro

2.8.6-pl

August 9, 2026

2 months ago

—
modstore.pro

2.8.5-pl

August 1, 2026

3 months ago

—
modstore.pro

2.8.3-pl

June 21, 2026

4 months ago

—
modstore.pro

2.8.2-pl

June 16, 2026

4 months ago

—
modstore.pro

2.8.1-pl

April 13, 2026

6 months ago

—
modstore.pro

2.8.0-pl

March 2, 2026

8 months ago

—
modstore.pro

2.7.3-pl

February 28, 2026

8 months ago

—
modstore.pro

2.7.2-pl

December 24, 2025

10 months ago

—
modstore.pro

2.7.1-pl

November 17, 2025

11 months ago

—
modstore.pro

2.7.0-pl

November 15, 2025

11 months ago

—
modstore.pro

2.6.0-pl

October 26, 2025

1 year ago

—
modstore.pro

2.5.1-pl

October 2, 2025

1 year ago

—
modstore.pro

2.5.0-pl

September 13, 2025

1 year ago

—
modstore.pro

2.4.9-pl

September 9, 2025

1 year ago

—
modstore.pro

2.4.8-pl

September 5, 2025

1 year ago

—
modstore.pro

2.4.7-pl

September 5, 2025

1 year ago

—
modstore.pro

2.4.6-pl

August 1, 2025

1 year ago

—
modstore.pro

2.4.5-pl

July 27, 2025

1 year ago

—
modstore.pro

2.4.4-pl

July 19, 2025

1 year ago

—
modstore.pro

2.4.3-pl

July 4, 2025

1 year ago

—
modstore.pro

2.4.2-pl

June 24, 2025

1 year ago

—
modstore.pro

2.4.1-pl

June 23, 2025

1 year ago

—
modstore.pro

2.4.0-pl

June 14, 2025

1 year ago

—
modstore.pro

2.3.0-pl

April 4, 2025

1 year ago

—
modstore.pro

2.2.5-pl

March 13, 2025

1 year ago

—
modstore.pro

2.2.4-pl

March 6, 2025

1 year ago

—
modstore.pro

2.2.3-pl

March 5, 2025

1 year ago

—
modstore.pro

2.2.2-pl

February 24, 2025

1 year ago

—
modstore.pro

2.2.1-pl

February 22, 2025

1 year ago

—
modstore.pro

2.2.0-pl

February 21, 2025

1 year ago

—
modstore.pro

2.1.7-pl

February 2, 2025

1 year ago

—
modstore.pro

2.1.6-pl

January 18, 2025

1 year ago

—
modstore.pro

2.1.5-pl

October 26, 2024

2 years ago

—
modstore.pro

2.1.4-pl

August 14, 2024

2 years ago

—
modstore.pro

2.1.3-pl

August 13, 2024

2 years ago

—
modstore.pro

2.1.2-pl

August 8, 2024

2 years ago

—
modstore.pro

2.1.1-pl

July 27, 2024

2 years ago

—
modstore.pro

2.1.0-pl

July 21, 2024

2 years ago

—
modstore.pro

2.0.7-pl

July 20, 2024

2 years ago

—
modstore.pro

2.0.6-pl

July 20, 2024

2 years ago

—
modstore.pro

2.0.5-pl

July 4, 2024

2 years ago

—
modstore.pro

2.0.4-pl

June 23, 2024

2 years ago

—
modstore.pro

2.0.3-pl

June 19, 2024

2 years ago

—
modstore.pro

2.0.2-pl

June 10, 2024

2 years ago

—
modstore.pro

2.0.1-pl

June 9, 2024

2 years ago

—
modstore.pro

2.0.0-pl

June 9, 2024

2 years ago

—
modstore.pro

1.2.6-pl

March 26, 2024

2 years ago

—
modstore.pro

1.2.5-pl

March 25, 2024

2 years ago

—
modstore.pro

1.2.3-pl

March 2, 2024

2 years ago

—
modstore.pro

1.2.2-pl

March 1, 2024

2 years ago

—
modstore.pro

1.2.1-pl

February 25, 2024

2 years ago

—
modstore.pro

1.1.2-pl

January 12, 2024

2 years ago

—
modstore.pro

1.1.1-pl

December 28, 2023

2 years ago

—
modstore.pro

1.1.0-pl

December 25, 2023

2 years ago

—
modstore.pro

1.0.9-pl

November 23, 2023

2 years ago

—
modstore.pro

1.0.8-pl

November 21, 2023

2 years ago

—
modstore.pro

1.0.7-pl

October 27, 2023

3 years ago

—
modstore.pro

1.0.6-pl

October 18, 2023

3 years ago

—
modstore.pro

1.0.5-pl

October 16, 2023

3 years ago

—
modstore.pro

1.0.4-pl

October 10, 2023

3 years ago

—
modstore.pro

1.0.3-pl

September 21, 2023

3 years ago

—
modstore.pro

1.0.1-pl

September 5, 2023

3 years ago

—
modstore.pro

1.0.0-pl

August 22, 2023

3 years ago

—