Donc suite à un nombre incalculable de spam via la page de contact
ajout et activation du plugin recaptcha sur la page du formulaire
Erreur : Since Thelia 2.5 this->dispatch() function is not allowed in controllers, use autowiring instead
donc suite au post suivant https://forum.thelia.net/viewtopic.php?id=13714
que roadster cite de remplacer cette
$this->dispatch(ReCaptchaEvents::CHECK_CAPTCHA_EVENT, $checkCaptchaEvent);
par celle-ci
$eventDispatcher->dispatch($checkCaptchaEvent, ReCaptchaEvents::CHECK_CAPTCHA_EVENT);
un autre fil https://forum.thelia.net/viewtopic.php?id=12758 qui explique l'insertion pour du thelia 2.4.3
en ayant pris soin
d'ajouter dans le fichier ContactController.php dans le répertoire /local/modules/Front/Controller
$checkModule = ModuleQuery::create()
->findOneByCode('ReCaptcha');
if($checkModule && $checkModule->getActivate()){
$checkCaptchaEvent = new ReCaptchaCheckEvent();
$this->dispatch(ReCaptchaEvents::CHECK_CAPTCHA_EVENT, $checkCaptchaEvent);
if ($checkCaptchaEvent->isHuman() == false) { throw new \Exception('Invalid reCAPTCHA'); }
}
$name = $translator?->trans('Sender name: %name%', ['%name%' => $event->getName()]);
pour l'activation de module recaptcha au travers du controller du formulaire on ajoute
use Thelia\Model\ModuleQuery;
use ReCaptcha\Event\ReCaptchaCheckEvent;
use ReCaptcha\Event\ReCaptchaEvents;
Cela ne suffit pas à faire l'appel, il faut provoquer la demande de contrôle à partir du fichier appelant
Donc le formulaire du fichier contact.html
on insère juste après exttends layout
{hook name="recaptcha.js"}
et dans la partie basse avant la fermeture de fieldset le check en partie du formulaire
{hook name="recaptcha.check"}
</div>
</fieldset>
Votre plugin devrait être actif avec l'insertion des clés publique et secrète dans la config du tableau de bord du module recaptcha et leur récupération via le controller
et ainsi ce la devrait contribuer à diminuer le nombre de spams,
Si cela ne suffit pas vous pouvez ajouter un champ caché + pot de miel + filtre sur les noms, titre du message constitué de letttres alambiquées qui n'ont ni queue ni tête
Last edited by stephst84 (14-03-2024 14:12:20)