new

reCaptchaV3

Google reCAPTCHA v3 для FormIt и AjaxForm
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Игорь Терентьев
Пакетов
3
Закачек
163
Автор дополнения
Пакетов
3
Закачек
163
Версия 1.0.3-beta
Дата выпуска 14.12.2018
Загрузки 72
Просмотры 359
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.3 !
Для работы компонента нужно добавить хук rcv3 в hooks вызова FormIt / AjaxForm (самым первым) и сниппет rcv3_html в форму (внутри тэга form):

[[!rcv3_html? &action=`[[+rcv3Action]]` &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]]` &error=`[[+fi.error.g-recaptcha-response]]`]]

</form>

Github: github.com/ig0r74/reCaptchaV3

1.0.3

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

1.0.2

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

1.0.1

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

1.0.0

  • Релиз.

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