hot!

reCaptchaV3

Google reCAPTCHA v3 для FormIt и AjaxForm
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Игорь Терентьев
Пакетов
3
Закачек
7 933
Автор дополнения
Пакетов
3
Закачек
7 933
Версия 1.0.11-beta
Дата выпуска 09.12.2025
Загрузки 6 469
Просмотры 21 547
Для работы компонента нужно добавить хук rcv3 в hooks вызова FormIt / AjaxForm (самым первым) и сниппет rcv3_html в форму (внутри тэга form):

[[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]]

Или на Fenom:
{'!rcv3_html' | snippet : [
    'action' => $rcv3Action,
    'error' => $_modx->getPlaceholder('fi.error.g-recaptcha-response'),
]}

Данный сниппет добавляет в форму input и регистрирует js-скрипты.

В системных настройках Formit указать ключи:

  • секретный — formit.recaptcha_private_key
  • и публичный — formit.recaptcha_public_key

Получить ключи можно на этой странице https://www.google.com/recaptcha/admin.

Пример вызова:


{'!AjaxForm' | snippet : [
    'snippet' => 'FormIt',
    'form' => 'tpl.AjaxForm.example',
    'emailTpl' => 'contactEmailTpl',
    'hooks' => 'rcv3,email',
    'emailFrom' => $_modx->config.emailsender,
    'emailFromName' => $_modx->config.site_name,
    'emailSubject' => 'Сообщение с сайта' ~ $_modx->config.site_name,
    'emailTo' => $_modx->config.emailsender,
    'validate' => 'name:required',
    'validationErrorMessage' => 'В форме содержатся ошибки!',
    'successMessage' => 'Сообщение успешно отправлено',
    'rcv3Action' => 'contactform',
]}

Параметр rcv3Action предназначен для изменения идентификатора action. Подробнее в документации: https://developers.google.com/recaptcha/docs/v3#actions

Пример чанка формы:



<form action="" method="post" class="ajax_form af_example">

    <div class="form-group">
        <label class="control-label" for="af_name">[[%af_label_name]]</label>
        <div class="controls">
            <input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="" class="form-control"/>
            <span class="error_name">[[+fi.error.name]]</span>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label" for="af_email">[[%af_label_email]]</label>
        <div class="controls">
            <input type="email" id="af_email" name="email" value="[[+fi.email]]" placeholder="" class="form-control"/>
            <span class="error_email">[[+fi.error.email]]</span>
        </div>
    </div>

    <div class="form-group">
        <label class="control-label" for="af_message">[[%af_label_message]]</label>
        <div class="controls">
            <textarea id="af_message" name="message" class="form-control" rows="5">[[+fi.message]]</textarea>
            <span class="error_message">[[+fi.error.message]]</span>
        </div>
    </div>

    <div class="form-group">
        <div class="controls">
            <button type="reset" class="btn btn-default">[[%af_reset]]</button>
            <button type="submit" class="btn btn-primary">[[%af_submit]]</button>
        </div>
    </div>
    
    [[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]]

</form>

1.0.11

  • Refactor action and form_id handling от @ilyautkin

1.0.10

  • Fixes for multiple forms on one page от Sterc @MrRoco

1.0.9

  • fix от Sterc @MrRoco

1.0.8

  • релиз от Sterc @MrRoco

1.0.7

  • добавлена проверка скоринга, спасибо @alexsoin за pull request

1.0.6

  • Удален лишний класс у span с сообщением об ошибке

1.0.5

  • Обновление капчи каждую минуту

1.0.4

  • Исправлены возможные проблемы с инициализацией капчи, спасибо Boshnik за Pull request

1.0.3

  • Добавлена возможность использовать несколько форм на странице.

1.0.2

  • Добавлены лексиконы.
  • Изменены тексты сообщений об ошибках.
  • Исправлена возможность обхода капчи. Спасибо Дмитрию (GoodSite) за багрепорт.

1.0.1

  • Мелкие исправления.

1.0.0

  • Релиз.

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