Captcha überladen

Thema wurde von WinHelp GmbH, 17. August 2021 erstellt.

  1. WinHelp GmbH

    WinHelp GmbH Erfahrener Benutzer

    Registriert seit:
    2. April 2019
    Beiträge:
    79
    Danke erhalten:
    26
    Danke vergeben:
    20
    Hallo Zusammen,

    ich bekomme beim Überladen des Captchas einen Fehler: "Class 'CustomCaptcha_parent' not found in .../Overloads/Captcha/CustomCaptcha.inc.php:21". Ich bin mit meinem Latein am Ende eventuell hat jemand eine Idee.

    Gemäß Doku: https://developers.gambio.de/tutori...ern-bestehender-php-klassen#Class-Overloading

    • Unterverzeichnis mit dem Namen der zur überladenen Klasse -- OK
    • Namenskonvention {BeliebigerKlassenname}.inc.php -- OK
    • Wird durch Mainfactory im Shop erzeugt -- OK
    • Kann überladen werden -- OK (Liegt in "system/classes/security" gem. Doku kann "system/classes" überladen werden)
    • Überladen eines Namespace -- OK (Nicht vorhanden)
    • Caches geleert -- OK
    Code:
    PHP:
    class CustomCaptcha extends CustomCaptcha_parent
    {
        protected function 
    _validateCaptchaTypeVvcode(array $requestData$isAjaxRequest)
        {
           ...
        }
    }

    Gambio Version 4.4.0.3
     
  2. WinHelp GmbH

    WinHelp GmbH Erfahrener Benutzer

    Registriert seit:
    2. April 2019
    Beiträge:
    79
    Danke erhalten:
    26
    Danke vergeben:
    20
    Ergänzung:
    Der Fehler tritt nur beim Aufruf des CallbackService auf, nicht aber beim Aufruf des Kontaktformulars.


    Stack trace:
    #0 /system/core/MainFactory.inc.php(252): include_once()
    #1 /system/core/MainAutoloader.inc.php(94): MainFactory::load_class('CustomCaptcha...')
    #2 [internal function]: MainAutoloader->load('CustomCaptcha...')
    #3 [internal function]: spl_autoload_call('CustomCaptcha...')
    #4 /GXMainComponents/Application.inc.php(589): session_start()
    #5 /GXMainComponents/Application.inc.php(244): Gambio\GX\Application->startSession()
    #6 /GXMainComponents/ApplicationMain.inc.php(53): Gambio\GX\Application->setUpEnvironment()
    #7 /includes/application_top_main.php(15): Gambio\GX\ApplicationMain-
     
  3. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    @WinHelp GmbH Wo genau liegt dein Modul? Wen du es über GXModules hast, muss der Ordner /overloads/ immer entweder in einem Ordner /shop/ oder /admin/ liegen.

    Also der Pfad zur Klasse müsste /GXModules/MeineFirma/MeinModul/Shop/overloads/Klassenname/MyKlassennameOverload.inc.php lauten und in der Datei müsste die Klasse dann

    MyKlassennameOverload extends MyKlassennameOverload_parent lauten und der ModulCache und Cache für die Seitenausgabe muss geleert werden, damit der Shop die Klassen kennt.
     
  4. WinHelp GmbH

    WinHelp GmbH Erfahrener Benutzer

    Registriert seit:
    2. April 2019
    Beiträge:
    79
    Danke erhalten:
    26
    Danke vergeben:
    20
    @Till (Gambio) Die Datei liegt unter /GXModules/WinHelp/ModulName/Shop/Overloads/Captcha. Ist ja nicht unser erstes und einziges Modul ;-)

    Der Dateiname kann auch nicht das Problem sein, denn dieser folgt der üblichen Konvention.

    Die Klasse ist aus meiner Sicht auch korrekt deklariert.

    Caches sind geleert (Mehrfach und auch der ModulCache)