Kürzlich habe ich ein Kontaktformular-Modul entwickelt, welches ich später noch vorstellen und frei verfügbar machen werde.
Um Spam zu vermeiden wollte ich das Joomla!-eigene Captcha-Plugin nutzen, was sich als gar nicht so einfach herausstellte. In der Dokumentation lässt sich dazu nichts finden. Es gibt zwar einen Thread dazu bei stackoverflow, aber die dort vorgestellte Lösung funktionierte nicht mit reCAPTCHA v2. Das Captcha wurde einfach nicht angezeigt. Also half hier ein Blick in die Datei „/plugins/captcha/recaptcha/recaptcha.php“.
Um das Captcha in eigene Erweiterungen (Komponenten und Modulen) einzubinden sind folgende Schritte nötig:
- Laden des Plugins
JPluginHelper::importPlugin('captcha'); (JEventDispatcher::getInstance())->trigger('onInit', 'dynamic_recaptcha_1');
- Einbinden des Captchas
echo (JEventDispatcher::getInstance())->trigger('onDisplay', array(null, 'dynamic_recaptcha_1', 'class=""'))[0];
- Überprüfen des Captchas
$res = (JEventDispatcher::getInstance())->trigger('onCheckAnswer',$_POST['recaptcha_response_field']); if($res[0]){ //captcha gelöst } else{ //captcha konnte nicht verifiziert werden }