Beiträge von Ulricus

    Hi, I have meanwhile worked on this topic with the following result:


    I implemented my own router, see code below, but now I do not know how to register it correctly.


    This is the router:

    Then I found some tutorial on how to register this router in my provider.php:

    In line 36, I try to register the router, however, this function (setRouterFactory) does not exist. So how do I correctly register my router?

    OK, ich habe den Link oben gelesen und dann noch diesen:

    https://github.com/joomla/joomla-cms/discussions/35621


    Das scheint tatsächlich die Ursache für meine Problem zu sein, zumindest liest sich das so.


    Aber ich stecke nicht so tief drin in Joomla 4, dass ich wüsste, an welcher Stelle ich jetzt die empfohlene public function preprocess(&$query) implementieren sollte.


    Die relevanten Teile meiner default.php, wo die Links erzeugt werden, sehen wie folgt aus:



    In Zeile 44 wird der entsprechende Link generiert. Muss ich jetzt einen eigenen Override zu /libraries/src/Router/SiteRouter.php kreieren und dort preprocess() implementieren?

    Sorry, Elwood, irgendwie war ich gerade so im Englischen...


    Ich habe leider keinen "Bearbeiten"-Button im Originalbeitrag. Nur unter meinen Antworten :(


    Hier ist der Link zum neuen Post, falls es jemand interessiert:

    Hallo, ich versuche gerade, eine lokale Kopie meiner HP von J3 auf J4 zu migrieren. Dabei stoße ich auf ein Problem mit der Auflösung von Links in einer meiner eigenen MVC-Komponenten.


    Dort habe ich eine Liste mit Einträgen, die man durch Anklicken editieren kann. Dabei wird ein neues Template namens "edit.php" aufgerufen. Hier ist der Aufruf im Quelltext:


    $link = Route::_('index.php?option=com_easyfpu&task=easyfpu.edit&layout=edit&id=' . $row->id);


    In Joomla 3 wurde dieser Link aufgelöst nach


    https://.../index.php/de/easyfpe/easyfpe-web/easyfpe-app?view=easyfpu&layout=edit&id=15


    In Joomla 4 wird er aufgelöst nach


    https://.../index.php/de/component/easyfpu/?view=easyfpu&layout=edit&id=15


    Leider führt diese Auflösung dazu, dass ein falscher Seiten-Stil angewendet wird. Wenn ich den ursprünglichen Link in die Browseradresszeile kopiere, funktioniert es genauso wie es sollte.


    Wie bekomme ich alte Linkauflösung wieder hin? Die SEO-Einstellungen sind auf beiden Seiten identisch (Suchmaschinenfreundliche URL ja, alles andere nein).


    Vielen Dank!

    Hallo, ich versuche gerade, meine Homepage als lokale Kopie von J3 auf J4 zu migrieren. Ich habe eine eigene MVC-Komponente laufen, das ich ebenfalls auf J4 migriert habe. Auf einer jungfräulichen J4-Version läuft es auch einwandfrei. Bei der migrierten Version allerdings stimmt etwas mit der Zuweisung der Stile nicht.


    In meiner Live-Version auf J3 sowie in der lokalen und migrierten J4-Version wird folgende Liste dargestellt, aus der der Benutzer dann ein Essen auswählen kann (anklicken) zum Bearbeiten:



    Der Link zum Bearbeiten der Bratwurst (id=2) auf meiner Live-Webseite lautet wie folgt:

    https://rueth.info/index.php/d…=easyfpu&layout=edit&id=2


    Der Link auf meiner lokalen Kopie wie folgt:

    http://localhost/joomla-34/ind…fpu.edit&layout=edit&id=2


    Auf meiner Live-Webseite nutzt Joomla 3 dann das den Default-Style und das Bearbeitungsformular wird korrekt angezeigt.

    Joomla 4 nutzt leider für den gleichen Link einen speziellen Style, der keinen Content anzeigt, dadurch wird das Formular nicht angezeigt.


    Ich nutze das Helium-Template. Der Default-Stil sollte eigentlich "Helium - Standard - ..." sein. Leider springt J4 aber mit o.g. Link auf den Stil "Helium - EasyFPE - ...":


    Was macht J4 das anders als J3, dort habe ich dieselben Stile verwendet und es hat problemlos funktioniert.


    Vielen Dank!

    Hallo, ich suche eine Erweiterung, mit der ich einfach die An- bzw. Abwesenheit von Chormitgliedern abfragen kann. Ich will dazu "Events" (Auftritte) anlegen und jedes eingeloggte Chormitglied soll mit Ja/Nein/Weißnochnicht seine Anwesenheit eintragen können. Ist so ähnlich wie Doodle.


    Hat jemand gute Vorschläge? Möglichst gratis, zumindest nicht zu teuer.


    Danke!

    Danke, Harmageddon, ich override jetzt die validate-Funktion in meiner Model-Klasse wie folgt und es funktioniert nun wunderbar:


    Danke für den Hinweis!

    Hallo zusammen,


    ich habe evtl. einen Bug im MysqliDriver.php gefunden, bin mir aber nicht sicher, könnte auch ein Fehler meinerseits sein. In Joomla 3 hat derselbe Code aber funktioniert. Version ist Alpha12. Folgendes Verhalten:


    - Ich habe ein Formular mit teilweise optionalen, daher leeren Werten, siehe Screenshot. Rechts sieht man mein Table-Objekt $object mit den drei leeren Werten "amount_..." rot eingerahmt. Ich befinde mich in MysqliDriver.php, Funktion insertObject.


    - Nun laufe ich durch die foreach-Schleife bis zur Auswertung des Wertes amount_small. Folgender Code ist das:

    - Am Ende der Schleife, bei // Prepare and sanitize ..., werden alle Werte mit Hochkommata umgeben. Auch leere Werte, aus denen wird "''", siehe folgenden Screenshot:



    - Wird nun die Query ausgeführt, kommt folgende Fehlermeldung von der Datenbank:


    Incorrect integer value: '' for column 'amount_small' at row 1


    Hier noch meine Datenbankdefinition:


    Ist dort ggf. etwas falsch eingestellt?


    Vielen Dank für Eure Hinweise!

    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!

    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!

    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!

    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.

    ... 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.

    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!

    Hallo!


    tatsächlich - wenn ich die Instanzen in eine vorhandene Modulposition (bei mir: footer) durch Menüzuweisung auf zwei verschiedenen Seiten lade, funktioniert es einwandfrei, d.h. die Parameter werden korrekt gesetzt.


    Das Modul ist ein selbst geschriebenes, hier noch in der Version für Joomla! 3:

    https://extensions.joomla.org/…/custom-fields/eventlist/


    Hier meine Module:


    4475-bildschirmfoto-2019-09-20-um-22-10-47-png

    Und so versuche ich, die beiden Instanzen in einem Artikel zu laden:


    (a) mit loadposition:
    {loadposition Kleingruppen_Regeltermine} im einen Artikel und

    {loadposition Regeltermine} im zweiten Artikel.


    Verhalten wie im initialen Post beschrieben.


    (b) mit loadmodule:


    {loadmodule mod_eventlist,Regeltermine Kleingruppen} bzw.

    {loadmodule mod_eventlist,Regeltermine}


    (so heißen die Module analog den Positionen in (a))


    (c) mit loadmoduleid:


    {loadmoduleid 120} bzw.

    {loadmoduleid 115}