Главная / Блог modx / Обновление, которое делает капчу умнее, спокойнее и удобнее

Обновление капчи для MODX scxcaptchaAjaxForm

Содержание:


Есть в веб-разработке одна тихая, почти невидимая область — защита форм. Она редко становится темой больших новостей, никто ею не хвастается, и клиенты обычно узнают о ней только тогда, когда в почту начинают прилетать десятки писем от ботов с одинаковыми именами и странными e-mail-адресами.

Но именно эта незаметная часть проекта часто спасает сайт от захламления, спама, нагрузки и неприятных сюрпризов. И ради такой защиты существует наш небольшой, но аккуратный инструмент — scxcaptchaAjaxForm. Простая числовая капча на пять цифр, но с умом, логикой и уважением к пользователю.

И вот настал момент, когда она получила обновление — версию 1.0.1. Скачать scxCaptchaAjaxFormIt -1.0.1
Не громкую, не маркетинговую. А именно ту, которая делает работу капчи спокойной, стабильной и удивительно комфортной.

Это обновление — как будто привести в порядок маленькую, но важную деталь: подточить механизм, смазать петли, убедиться, что все работает так, как и должно работать.

И давай расскажу, что же внутри.


Капча, которая научилась понимать FetchIt

FetchIt — это как быстрый курьер для форм. Без перезагрузки, без задержек, красиво и современно.
Но до версии 1.0.1 капча и FetchIt жили рядом, но не вместе. Они словно уважали друг друга, но разговаривать напрямую пока не умели.

С обновлением всё стало иначе.

Теперь scxcaptchaAjaxForm слушает события FetchIt:

  • fetchit:success — форма успешно отправлена, капча молча перерисовывается;

  • fetchit:error — если сервер вернул ошибку по scx_code, она аккуратно появится прямо под полем ввода;

  • fetchit:reset — сброс формы — сброс капчи.

Разработчику теперь не нужно думать, как «подружить» эти две сущности. Они уже друзья.

И самое приятное — это работает из коробки.
Поставил пакет, подключил ассеты — всё. Ты не занимаешься колдовством с JS, не ловишь события вручную. Капча сама заботится о себе.


UX стал мягче, а пользователю больше не встречается Bad token

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

Его задача — заполнить форму.
Задача капчи — не мешать ему.

В версии 1.0.1 исчезла одна давняя боль — раздражающая ошибка Bad token, которая могла появляться после успешной отправки формы. Технически это объяснимо, но пользователю от этого не легче.

Теперь всё иначе:

  • после успешной отправки капча перерисовывается автоматически,

  • обновление происходит на том же токене,

  • пользователь вообще не замечает внутренних процессов.

Капча стала как хорошая вежливая охрана — всегда на своём месте, но незаметная.


Ошибки теперь отображаются красиво и в правильном месте

Пожалуй, одна из самых приятных мелочей в 1.0.1 — это то, как теперь показываются ошибки в FetchIt.

Раньше приходилось руками выводить текст ошибки, чтобы она появилась под полем ввода. Теперь капча делает это сама:
— ловит ошибку,
— показывает её в правильном месте,
— перерисовывает изображение,
— и готова к следующему вводу.

То есть форма стала ощущаться «цельной».
Как будто всё это — один организм.


Документация стала понятнее, аккуратнее, живее

Мы обновили документацию так, чтобы в ней не нужно было «знать MODX наизусть». Всё разложено по полочкам:

  • куда вставить блок капчи,

  • как подключить inline-ассеты,

  • когда использовать head,

  • как работает токен,

  • что такое scx_hp, scx_ts, scx_code, scx_token,

  • примеры для FetchIt.

Если раньше документация была хорошей заметкой, то теперь — полноценный путеводитель.


Что важно знать об обновлении 1.0.1

— Пакет теперь стабильно работает с MODX 2.7+ и MODX 3.x.
— Требует PHP 7.4+ (рекомендуется 8.x).
— Работает через GD, умеет рендерить шрифт TTF.
— Капча подгружается только при действии: клике или фокусе.
— Защита стала ещё аккуратнее: honeypot, задержка по времени, короткоживущие токены.

Но главное — это ощущение.
Ощущение того, что капча работает как часть формы, а не как отдельный элемент.

Вопрос? Ответ

Если вы используете FetchIt или планируете — да, обязательно. Если нет — обновление всё равно улучшает UX и стабильность.

В большинстве случаев — нет. Фронтовый адаптер работает сам, важно только корректно подключить scx.css и scx.js.

При фокусе scx_code картинка должна подгружаться. При ошибке — текст ошибки появляется под полем. При успехе — капча мягко обновляется.

Да, для этого есть режим includeAssets=inline. Он гарантирует, что CSS/JS попадут в модалку.

Потому что мы пересмотрели логику обновления токена. Теперь после успешной отправки удаляется только хэш, но сам токен остаётся жив, что позволяет обновлять капчу без конфликтов.

На sait-modx.by есть контакты. Пиши смело — мы любим улучшать свои инструменты.

Как бы Вы хотели связаться?

Связь с нами