Einer eigenen Komponente (J3) den Zugriff auf das Joomla Core Captcha ermöglichen

  • Hallo zusammen,


    ich habe ein Problem mit einer selbst entwickelten Komponente in Joomla3.


    Die Komponente lädt ein RSFormPro Formular, welches das Joomla Default Captcha (in unserem Fall AimyCaptchalessForm Protection) nutzt.

    Wenn ich das gleiche Formular über einen Beitrag lade oder über ein Modul im SP Pagebuilder, funktioniert alles wunderbar.


    Lade ich es aber über die Komponente, dann fehlt vom Captcha das Skript und daher wird dieses natürlich auch nicht ausgeführt.

    Ich habe jetzt schon Stunden an Recherche hinter mir und verschiedene Lösungsansätze ausprobiert. Es scheint einfach daran zu liegen, dass die Komponente keinen Zugriff auf das Joomla Core Captcha Plugin hat und ich finde keine funktionierende Möglichkeit, das zu integrieren.


    Es gibt keine Fehler in der Console und auch im debug sieht alles genauso aus, wie wenn ich das Formular über einen Beitrag lade. Das Captcha wird im debug auch angezeigt. Aber das Skript fehlt einfach.


    Folgenden Code habe ich in die oberste PHP vom Frontend integriert:

    $captcha_plugin = JFactory::getConfig()->get('captcha');
    JPluginHelper::importPlugin('captcha', $captcha_plugin);
    $dispatcher = JDispatcher::getInstance($captcha_plugin);
    $dispatcher->trigger('onInit');


    Das führt zumindest schon einmal dazu, das die CSS Befehle für das Captcha in den Head geladen werden. Aber das Script fehlt leider weiterhin.

    Natürlich könnte ich das Skript händisch integrieren, wenn ich es in die o.g. PHP Datei mit addScriptDeclaration einbaue, funktioniert auch alles wie es soll.

    Aber das ist ja nicht der richtige Weg und auch umständlich, da mehrere Seiten die Komponente nutzen und das Skript abhängig von einer ID ist, die bei jeder Website anders ist.


    Hat jemand eine Idee dazu, ob der Code nicht vollständig ist, oder an einer anderen Stelle in der Komponente integriert werden muss?


    Liebe Grüße

    Tanja