Joomla! reCAPTCHA-Plugin in eigene Erweiterungen (Joomla 3/3.5/3.x) einbinden

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:

  1. Laden des Plugins
    JPluginHelper::importPlugin('captcha');
    (JEventDispatcher::getInstance())->trigger('onInit', 'dynamic_recaptcha_1');
  2. Einbinden des Captchas
    echo (JEventDispatcher::getInstance())->trigger('onDisplay', array(null, 'dynamic_recaptcha_1', 'class=""'))[0];
  3. Ü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
    }
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.