Komponente startet nicht im Frontend

  • Hallo, ich stelle gerade eine größere Komponente auf J4 um. Das Tutorial https://docs.joomla.org/J4_Component_example_-_Mywalks hat mir dabei schon gut geholfen. Die Admin-Seite läuft mittlerweile. Jetzt habe ich aber das Problem, dass die Komponente im Frontend nicht startet.


    So sieht mein default.xml aus:


    Die Auswahl erscheint auch korrekt beim Anlegen eines Menüs:


    Im Frontend erscheint aber der Link nicht korrekt, sondern führt zur Homepage, siehe roter Pfeil:


    Und wenn ich den Link manuell eingebe (siehe URL), erscheint ebenfalls die Startseite:


    Irgendwas scheint mit dem Routing nicht zu klappen. Hat jemand einen Tipp, was ich falsch mache?


    Danke!

  • ... diese Routing-Klassen aus dem Tutorial nutze ich gar nicht. Dachte die sind optional, denn er schreibt ja auch, dass er damit eine eigene SEF URL generieren will, die nicht Standard ist. Das brauche ich nicht. Habe eigentlich unverändert meine default.xml aus dem J3 Code übernommen.

  • Ulricus Ich denke auch, dass das Routing nicht das Problem ist. Im Frontend Code ist sicher ein Fehler der abgefangen wird und dies ist die Ursache für die Weiterleitung zur Startseite.


    Ich habe einige Versuche hinter mir, Erweiterungen an Joomla 4 anzupassen. Die meisten Probleme hatte ich sicher, weil sich im Moment in Joomla 4 noch so viel ändert - aber auch weil Vieles anders ist.


    Ich bin nun dazu übergegangen "von vorne anzufangen". Das heißt, ich habe mir eine keine Erweiterung geschrieben, die die Grundfunktionen nutzt und erweitere diese Stück für Stück um die bisher in Joomla 3 genutzten Funktionen. So kann ich Probleme besser eingrenzen und verstehen. Wenn du magst, kannst du dir meine Foo-Komponente - die im Moment wie Joomla 4 selbst noch im Wandel ist - einmal ansehen: https://github.com/astridx/boilerplate/releases/tag/v0.0.1

    Im Wiki versuche ich auch die einzelnen Funktionen separat anzusehen: https://github.com/astridx/boilerplate/wiki


    Hier ist sicherlich nur etwas beim Kopieren in JDoc falsch umgewandelt worden. Der echte Programmcode ist richtig: https://github.com/ceford/j4xdemos-com-mywalks/blob/cad5bcb432c890961af38502d809f03faca65075/com_mywalks/site/Helper/RouteHelper.php#L40

  • astrid , vielen Dank, ich denke auch, dass ich hier nicht unbedingt weiterkomme, wenn ich alles auf einmal versuche. Mittlerweile habe ich ein weiteres völlig rätselhaftes Problem: Auf meiner lokalen Entwicklungsumgebung (MAMP) läuft die Komponente im Backend einwandfrei, wenn ich sie auf einen Server aufspiele, kommt eine Fehlermeldung. Wenn ich die Serverversion per Akeeba 1:1 wieder in eine neue lokale Umgebung einspiele, tritt der Fehler nicht auf... Da soll einer durchblicken...


    Danke für den Link auf Dein github-Projekt, das schaue ich mir auf jeden Fall gut an! Und warte dann auf die Beta-Version.

  • firstlady , bitte entschuldige meine missverständliche Art zu kommunizieren, ich habe das Thema zumindest vorläufig abgeschlossen, weil ich wohl erst mal eine stabilere J4 abwarten sollte und mich außerdem mit Hilfe von Astrids Tutorial von vorne heranpirschen sollte statt eine recht komplexe Komponente umzustellen.


    Debug-Modus und Entwickler-Reporting sind natürlich aktiv.


    Wenn ich ein spezifischeres Problem habe, melde ich mich wieder. Geholfen habt Ihr alle mir aber, vielen Dank dafür!

  • Hallo zusammen, ich konnte mein Problem nun eingrenzen. Ich habe meine Komponente auf dem Server installiert und dann per Akeeba 1:1 auf meinen localhost übertragen. Während die Komponente auf dem localhost anstandslos startet, findet die MVCFactory-Funktion getClassName meine View nicht. Hier die Funktion:



    In beiden Installationen wird der korrekte Klassenname gebildet, nämlich

    $className=RuethInfo\Component\EasyFPU\Administrator\View\Easyfpus\HtmlView


    Auf dem Server liefert class_exists($className) aber false zurück, während die Klasse auf dem localhost gefunden wird.


    Ich vermute, das hat irgendetwas mit Pfaden zu tun. Nun meine Fragen:

    - Wie finde ich heraus, in welchen Pfaden gesucht wird?

    - Sollte auf dem Server der Pfad fehlen, obwohl der Programmcode absolut identisch ist, wie kann ich sicherstellen, dass meine Views doch gefunden werden?


    Danke für Eure Hilfe!

  • Danke, astrid , das war es tatsächlich! Ich hatte in meinem Namespace das Wörtchen "EasyFPU" - nun alles geändert auf "Easyfpu" und alle Dateien umbenannt...


    Lokal arbeite ich auf einem Mac, Server ist tatsächlich Linux. Wundert mich, dass es lokal funktioniert hat, wo doch Mac auch auf Unix basiert.


    Also: Nochmals vielen Dank!