Программирование, веб-кодинг, Расширения, виджеты

Yii2 reCAPTCHA (простейшая капча «Я не робот» от Google)

Устанавливаем расширение yii2-recaptcha-widget вместо стандартной капчи yii2

reCaptcha 2.0 от Google хороша своей простотой. Чтобы подтвердить эту капчу, нужно всего лишь поставить галочку в поле "Я не робот". В Yii2 есть прекрасное обёрточное расширение yii2-recaptcha-widget.

Yii2 reCAPTCHA (простейшая капча «Я не робот» от Google)

Устанавливаем как обычно через composer - https://github.com/himiklab/yii2-recaptcha-widget

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

Чтобы убрать у поля с капчей "Я не робот" label, оставив только сам виджет капчи, надо в коде для этого виджета указать 'template' => '{input}'

<?= $form->field($model, 'reCaptcha', ['template' => '{input}'])->widget(
    \himiklab\yii2\recaptcha\ReCaptcha::className()
    //['widgetOptions'=>['class'=>'pull-right']]
) ?>

Добавлю только одно дополнение. Как устанавливать расширения для Yii2 без composer (вот более детальная и точная отдельная статья). Это касается вообще всех расширений, которые мы устанавливаем в папку vendor через composer. Если вдруг понадобится установить расширение в папку vendor не с помощью composer, то надо в vendor/yiisoft/extensions.php вручную дописать в массив ваше расширение, указав правильную версию из Packagist.org

'himiklab/yii2-recaptcha-widget' => 
  array (
    'name' => 'himiklab/yii2-recaptcha-widget',
    'version' => '1.0.4.0',
    'alias' => 
    array (
      '@himiklab/yii2/recaptcha' => $vendorDir . '/himiklab/yii2-recaptcha-widget',
    ),
  ),

Вообще так делать не правильно, ведь это прерогатива composer прописывать все нужные настройки, чтобы расширение заработало. Но у меня, например, не установился composer на windows 8 из-за какой-то ошибки с правами в системе. Поэтому я скачал zip архив с github и разархивировав, скопировал папку с расширением в папку vendor.