Aufrufen von Joomla Controller Funktionen

  • Joomla Version
    5.0.1
    PHP Version
    PHP 8.1.x
    Hoster
    Lokal

    Hallo zusammen.

    Ich bin gerade dabei eine Joomla Seite von Joomla 3 auf Joomla 5 zu migrieren. Bzw habe ich schon auf Joomla 5 migriert, habe jetzt jedoch einen Haufen an Fehlermeldungen.

    Unter anderem habe ich außerdem das Problem, dass mein User Objekt nach dem Anmelden NULL ist und ich nicht genau weiß warum.


    Code
    Wenn der User auf Mein Profil klickt, wird die folgende View aufgerufen:
    
    $link['user_profile'] = JRoute::_( 'index.php?option=com_powerdog&view=useredit' );


    Die default.php zu der view im tmpl Ordner sieht so aus:


    Stellt sich heraus, dass $this->user->idCustomer generell NULL ist.

    HIER MEINE ERSTE FRAGE:
    Auf was bezieht sich THIS in diesem Fall? Auf das Model von useredit.php oder? Also ist models/useredit.php das THIS objekt?

    das sieht jedenfalls so aus:



    Nun habe ich das Projekt natürlich mal nach idCustomer durchsucht, da diese ID ja mit der currentUserId übereinstimmen muss.

    Dann bin ich im Controller (controllers/useredit.php) auf diese Funktion gestoßen:


    Also wird hier anscheinend das user objekt initialisiert.
    Nun suche ich im Code nach Einstiegspunkten für diese Funktion, kann aber keinen finden außer einen (in default.php):


    Jedenfalls ist diese Stelle der einzige Punkt im Code, der "user_edit" enthält??

    Kann sich irgendjemand erklären wo der Einstiegspunkt in diese Controller Funktion user_edit sein könnte wo das $user Objekt initialisiert wird?

    Bzw. wie könnte ich diese Funktion aufrufen, damit mein $user Objekt in THIS nicht mehr NULL ist?

    LG

  • Hallo WM-Loose ,

    es wurde eh von Joomla 3 auf Joomla 4 und dann auf Joomla 5 upgedatet. Jedoch handelt es sich hier um eigens programmierte Komponenten, die unter anderem auch noch auf alten PHP Versionen laufen und eben auch noch veraltete Joomla Funktionen verwenden.

    LG Jakob

  • Ich vermute mal dass die Extensions und dabei auch die eigens programmierte Komponente nicht J4 / J5 tauglich sind und erst einmal dafür umgestellt werden müssten.


    Ich bin auch gerade dabei eine eigene Komponente zu bauen und mache die gleich fit für die nächsten Versionen. Dabei hat mit diese Anleitung schon ganz gut geholfen: https://www.techfry.com/resour…o-create-joomla-component


    Wenn man sich dabei einige Core-Funktionen anschaut, dann wird sich mit J6 auch nochmal einiges ändern, was mit J4 bereits als depracted deklariert wird und mit J6 aus dem Core verschwindet.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.