YaSmartCaptcha

Защитите сайт от спама с Яндекс SmartCaptcha
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Alexey Naumov
Пакетов
9
Закачек
7 036
Автор дополнения
Пакетов
9
Закачек
7 036
Версия 1.0.4-pl
Дата выпуска 21.12.2025
Загрузки 384
Просмотры 4 442
Воспользуйтесь этим дополнением для защиты форм, созданных с использованием FormIt, от спама с помощью капчи от Яндекс.
Компонент совместим со сниппетами FormIt и Login.

Регистрация в Yandex Cloud
Перед началом работы ознакомьтесь с инструкцией и зарегистрируйтесь в сервисе:
https://yandex.cloud/ru/docs/smartcaptcha/quickstart

Для работы с капчей вам будет необходимо создать платежный аккаунт, для чего потребуется ввести данные банковской карты или зарегистрировать его на организацию.

После прохождения регистрации создайте свою первую капчу и вы получите 2 ключа (клиентский и серверный). У Яндекса хорошая и понятная документация, проблем быть не должно.

Настройка компонента
Перейдите в системные настройки, выберите пространство yasmartcaptcha, и пропишите оба ключа:
  • yasmartcaptcha_client_key — Клиентский ключ
  • yasmartcaptcha_server_key — Серверный ключ

Также вы можете поменять значение настройки yasmartcaptcha_send_user_ip, отвечающей за то, будет ли передаваться IP пользователя в Яндекс. По идее это может улучшить работу сервиса SmartCaptcha.

Добавление капчи в форму
Шаг 1. том месте, где вам нужно добавить капчу, добавьте некешированный вызов сниппета:
[[!YaSmartCaptcha]]

Данный сниппет подключит на страницу (перед закрывающимся body) скрипт
https://smartcaptcha.cloud.yandex.ru/captcha.js
и добавит html блок с капчей.

У сниппета единственный параметр tpl, имеющий значение по-умолчанию tpl.YaSmartCaptcha.

Шаг 2. Добавьте хук YaSmartCaptcha к FormIt, например:
[[!FormIt?
&hooks=`YaSmartCaptcha,email`
..
]]
Естественно, этот хук идет до других, например email.

Если проверка не будет пройдена, то хук установит 2 ошибки: smart-token и yasmartcaptcha.
Первая (smart-token) соответствует названию hidden поля, которое добавляет Яндекс SmartCaptcha в вашу форму.
Вторая (yasmartcaptcha) соответствует названию компонента и более понятна.

Можете использовать любой ключ для показа ошибки, они равнозначны.

Если все сделано правильно, то может быть 2 вида ошибки с текстами:
— Поставьте галочку «Я не робот»
— Проверка не пройдена, попробуйте еще раз.

1.0.4-pl

1.0.3-pl

  • Fix a bug with makePlaceholders function (remove it:))

1.0.2-pl

  • Add the global setting "yasmartcaptcha_enabled" to enable or disable the component

1.0.1-pl

  • Added support for Login snippet (Formit and Login are now supported)

1.0.0-alpha

  • First release

Последние обсуждения в сообществе MODX.pro