Modul für Menu lässt sich nicht zuordnen

  • Hallo Forum,

    ich erstelle gerade eine mehrsprachige Webseite. Zuerst erstelle ich die Menüs in den gewünschten Sprachen. Ich kann aber nachdem es zuerst möglich war, kein Menü Modul mehr zuordnen. Ohne Fehlermeldung wird das Programm verlassen und nichts gespeichert.

    Es wird aber ein JSON Fehler angezeigt. Nachdem ich diese Joomla Version von 3.10 auf 4.2 migriert habe ist der Fehler merkwürdigerweise auch in der Version 4 vorhanden.

    Fehler

    Ein Parsing-Fehler trat bei der Verarbeitung der folgenden JSON-Daten auf:

    <br />

    <b>Deprecated</b>: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/vendor/joomla/input/src/Input.php</b> on line <b>41</b><br />

    <br />

    <b>Deprecated</b>: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/vendor/joomla/input/src/Input.php</b> on line <b>170</b><br />

    <br />

    <b>Deprecated</b>: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/src/Input/Input.php</b> on line <b>31</b><br />

    <br />

    <b>Deprecated</b>: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/src/Input/Cookie.php</b> on line <b>0</b><br />

    <br />

    <b>Deprecated</b>: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/src/Uri/Uri.php</b> on line <b>141</b><br />

    {"success":true,"message":null,"messages":null,"data":[",1,1. jDownloads Latest",",2,2. CCC Two Click",",3,3. jDownloads View Limits",",4,4. jDownloads Featured",",5,5. jDownloads Rated",",6,6. jDownloads Related",",7,7. jDownloads Tree",",8,8. jDownloads Stats",",9,9. jDownloads Most Recently Downloaded",",10,10. jDownloads Last Updated",",11,11. jDownloads Top",",12,12. Test",",13,13. JSitemap module",",14,14. Menu FR",",15,15. Mainmenu EN",",16,16. Newsletter 01"]}

    sonnige Grüße aus Allmersbach :)

    Klaus

    Joomla 3.10.12

    php 8.1.27

  • Joomla 3.10.12 ist veraltet und wird (ohne ELTS) nicht mehr supportet.

    Joomla 4.2 ist auch veraltet. Aktuelle 4er ist 4.4.3.

    Welche Version wird jetzt eingesetzt?

    Auch mehr Infos gem. Forenregeln könnten hilfreich sein.

  • Hallo zusammen,

    bei den als "deprecated" - veraltet gekennzeichnten Dateien handelt es sich imho allesamt um Joomla Core Dateien. Da tue ich mich schwer, ohne Dokumentation o.ä. ranzugehen.

    Die aktuellen Joomla Versionen sind mir durchaus bekannt. Ich werde aber auf keinen Fall eine hochproduktive Seite mit neuester php und Joomla Version mit ebenfalls aktuellem Virtuemart aufs Gratewohl nach J4 migrieren und hoffen, dass dabei alles problemlos abläuft.

    Zumal sich mir die Sinnhaftigkeit, eine nicht funktionierende Seite zu einer neuen Version zu migrieren und zu beten, dass eventuell vorhandene Probleme wie durch Zahberhand in der neuen Version verschwunden sind, in keiner Weise erschließt. Wenn das Problem in J3 beseitigt ist, migriere ich gerne auf Version 4 oder mehr.

    Um das beschriebene Problem nochmals darzustellen, habe ich zum ganzen Ablauf einige Screenshots gemacht. Ich hoffe, die Antwort(en), werden zur Beseitigung des Fehlers dienlich sein.

    Ich möchte eine Shop Webseite mit ca. 10 Sprachen erstellen und habe dazu die Menüs in den entsprechenden Sprachen angelegt

    Weiter möchte ich dann ein entsprechendes Modul mit landesspezifischen Seiten auf der Position "menu" des Menüs im Template (horme_3)

    verknüpfen. Hier mit dem Menü in Italienisch


    Beim Ausfüllen gibt es keine Fehlermeldungen. Nach "Speichern und schließen", wird das Programm mit der Menü Zuordnung wieder aufgerufen. Es wurde aber nichts gespeichert oder geändert. Das wäre das Problem, das auch genauso so nach Migration in die neueste Version 4.4.4 weiterhin bestehen bleibt.

    Bei der Menüverknüpfung z.B.: für die schwedische Sprache, die einmal angelegt werden konnte, ergibt sich der merkwürdige Effekt, dass es zwar eine Zuordnung gibt, aber diese nicht veröffentlicht ist, sondern im Mülleimer liegt und mit einen Veröffentlichungsdatem versehen ist. Das hat natürlich niemand so eingegeben. Jeglicher Versuch, das Menü zu veröffentlichen, scheitert.


    php, 8.1.28, Joomla 3.10.12, db: 10.6.16-MariaDB-0ubuntu0.22.04.1


    mit sonnigen Grüßen aus Allmersbach

    Klaus

  • Die aktuellen Joomla Versionen sind mir durchaus bekannt. Ich werde aber auf keinen Fall eine hochproduktive Seite mit neuester php und Joomla Version mit ebenfalls aktuellem Virtuemart aufs Gratewohl nach J4 migrieren und hoffen, dass dabei alles problemlos abläuft.

    Schon mal was von 'Backup' und 'Update mit Backup auf lokaler Installation' gehört?

    Im Ernst:

    Mach ein Backup der Seite, lokal speichern und dann das:

    Joomla! 3.x nach 4.x: Migration - Schritt für Schritt - Joomla! Documentation

    Joomla 3 ist in der Free-Version out of support.

  • susi999 du schreibst:

    Zitat

    ich erstelle gerade eine mehrsprachige Webseite.

    Im folgenden schreibst du:

    Zitat

    ich werde aber auf keinen Fall eine hochproduktive Seite mit neuester php und Joomla Version mit ebenfalls aktuellem Virtuemart aufs Gratewohl nach J4 migrieren

    dann steht in deinem fehlerprotokoll

    Zitat
    Code
    <b>Deprecated</b>:  str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in <b>/home/users/kstrohmaier/www/ledamstiel/libraries/src/Uri/Uri.php</b> on line <b>141</b><br />
    {"success":true,"message":null,"messages":null,"data":[",1,1. jDownloads Latest",",2,2. CCC Two Click",",3,3. jDownloads View Limits",",4,4. jDownloads Featured",",5,5. jDownloads Rated",",6,6. jDownloads Related",",7,7. jDownloads Tree",",8,8. jDownloads Stats",",9,9. jDownloads Most Recently Downloaded",",10,10. jDownloads Last Updated",",11,11. jDownloads Top",",12,12. Test",",13,13. JSitemap module",",14,14. Menu FR",",15,15. Mainmenu EN",",16,16. Newsletter 01"]}

    Das passt alles schlecht zusammen.

    Kannst du deine Situation und deine Absichten sachlich und schlüssig erklaren?

    Natürlich raten wir jedem davon ab, "hochproduktive" Seiten weiter unter 3.10 zu betreiben und wissen, dass die Migration eine Herausforderung ist.

    Aber wenn du hier Hilfe möchtest musst du den Supportern helfen, dir zu helfen.

  • Hallo Forum,

    ich kann hier für alle einen Workaround anbieten, die das selbe Problem haben, nämlich dass keine weiteren Menüs angelegt und verknüpft werden können. Die Problematik ist ja im Thread schon genau und verständlich beschrieben, da kann man das Problem gut erkennen.

    Die grundlegende Aufgabestellung war für mich, eine extrem produktive Shopseite mit Virtuemart mit mehr als 10 Sprachen zu betreiben. Wie das grundsätzlich abläuft, ist gut beschrieben. Ich hatte aber das Problem, dass in unserem Shop aus welchen Gründen auch immer, ab einem bestimmten Zeitpunkt kein weiteres Hauptmenü für eine neue Sprache angelegt werden konnte.

    Das Problem exportiert man dummerweise bei einer Migration nach J4 mit, sodass man da definitiv in einer Sackgasse steckt. Da bei einer wie auch immer gearteten Migration die Anzahl der Probleme selten geringer wird, empfehle ich dringend, sinnvollerweise zuerst in der Ursprungsversion nach dem Problem zu suchen.

    Es funktioniert also nicht (mehr) : Neuanlage eines Menu Modules und Verknüpfung mit einer Sprache.

    ich zeige hier einen Workaround hier exemplarisch bei dem Menü für Belgien. Die entsprechende Inhaltssprache muss dazu veröffentlicht sein.


    Jetzt habe ich des Menu-Modul für die neue Sprache einfach aus dem schwedischen Menü dupliziert.

    Das war's aber auch schon, was man mit der Datei machen kann, das duplizierte neue Menü lässt sich in keiner Weise mehr bearbeiten, nur noch wieder löschen.

    Es bleibt nur die Bearbeitung der Datenbak-Tabelle z.B.: in phpMyAdmin. Dort findet man die Tabelle xxxxx_modules, in dem man durchaus Änderungen vornehmen kann. Bitte aber das Ganze mit extremer Vorsicht machen !!!!!!!


    Man sucht sich also zum Titel des neu angelegten, duplizierten Menüs den passenden Datensatz. Darin passt man einige Felder an.

    Auf jeden Fall sollten man die neue Sprache (hier nl-be) und den json Block unter params mit dem passenden Namen menu-be versehen. Im Feld published sollte eine 1 stehen, im Feld Title sollte z.B.: Menu BE stehen




    Nachdem man alles gespeichert hat, steht ein funktionsfähiges Menü in Belgischer Sprache (nl-be) zur Verfügung.

    Wenn die Inhalstsprache veröffentlicht ist, das entsprechende Menü angelegt und eine für die Sprache angelegte Startseite vorhanden ist, kann man die Fünktion mit Hilfe der jetzt auch vorhandnenen passenden Flagge für die Sprachauswahl testen. Wenn man mit Virtuemart verkauft, muss zusätzlich auch dort die entsprechende Sprache aktiviert sein.


    mit freundlichen Grüßen aus Allmersbach beer

    Klaus