Один из посетителей смог написать мне сообщение о том, что на сайте не работает контактная форма. За что ему большое спасибо. Открываю браузер в режиме инкогнито, пишу сам себе, — действительно, ошибка.
В логах вижу:
Error: Class "ReCaptcha\ReCaptcha" not found in C:\web\drupal8\modules\recaptcha\recaptcha.module on line 162
Пошерстил форумы и понял, ошибка распространённая. По каким-то причинам при установке модуля Recaptcha не скачивается зависимая гугловая библиотека. Composer её в упор не видит.
Возможно, проблема появилась с одним из обновлений. Кривой модуль, кривой, не у всех хочет нормально устанавливаться. Ну нет так нет. Один из участников форума дал наводку на решение проблемы. Ludwig — вот что нам поможет. Этот модуль меня спасает уже второй раз.
Drupal 9 — модуль Ludwig, ручная альтернатива Composer
Сносим ReCaptcha скачиваем снова, но не устанавливаем.
https://www.drupal.org/project/recaptcha
Теперь нужно подружить модули Recaptcha и ludwig:
https://www.drupal.org/project/recaptcha/issues/3152474
Создаём в модуле файл ludwig.json:
{
"require": {
"google/recaptcha": {
"version": "v1.2.4",
"url": "https://github.com/google/recaptcha/archive/1.2.4.zip"
}
}
}
Отчёты → Пакеты (/admin/reports/packages). И модуль Ludwig подсасывает нам все необходимые PHP пакеты и их зависимости.
Ludwig нашёл гугловский модуль google/recaptcha на гитхабе и скачал в папку модуля. Можно это и вручную сделать, если очень захотеть. Я не захотел.
Теперь включаем Recaptcha на сайте.
Потом настраиваем как обычно, понадобятся токены. Но здесь статья не про настройку, а про исправление ошибки. Теперь форма с Recaptcha отрабатывает без проблем.