Gelöst: Menüstruktur ist zerstört wenn per Drag & Drop ein Menüpunkt in der Position verschoben wird

  • Hallo miteinander.


    Bei einem meiner Joomla Installationen haben ich das Phänomen, dass sich der Menüaufbau zerstört, sobald man per Drag & Drop die Position (Reihenfolge) eines Menüpunkts verschiebt. Ihr könnt euch das so vorstellen:


    Es gibt z.B. zwei Hauptmenüpunkt mit jeweils mehreren Untermenüpunkten.


    Hautmenüpunkt1
    Submenüpunkt H1-1
    Submenüpunkt H1-2
    Submenüpunkt H1-3


    Hautmenüpunkt2
    Submenüpunkt H2-1
    Submenüpunkt H2-2
    Submenüpunkt H3-3


    Jetzt verschiebt man Submenüpunkt H3-3 auf die Position von Submenüpunkt H2-1 und speichert das Menü ab.


    Das Ergebnis:


    Submenüpunkt H2-2 zum Hauptmenüpunkt1
    Submenüpunkt H3-3 zum Hauptmenüpunkt2
    Submenüpunkt H1-2 zu Submenüpunkt H2-1
    Manche Menüpunkte sind gar nicht mehr sichtbar


    Ich habe dann mal im Backend alle Menümodule und auch alle Menüeinträge gelöscht. Danach wieder alles neu angelegt. Doch sobald ich wieder ein Menüpunkt per Drag & Drop verschiebe, tritt der Effekt wieder auf. Ich habe mich schon mit der Zuordnung und Gliederung der Menüpunkte in der SQL Datenbank beschäftigt. Joomla ist da ja etwas eigen. Ich habe dann in der SQL Tabelle dann von Hand wieder die Gliederung "repariert". Menü sieht auch wieder OK aus und ist funktional, doch sobald ich wieder ein Menüpunkt per Drag & Drop verschiebe, passiert es wieder. Das Menü ist zerstört.


    Hat jemand auch schon so ein Phänomen gehabt oder noch eine Idee?

  • Ich habe auch schon festgestellt, dass Drag and Drop bei großen Menüstrukturen zickt.
    Folgendes hat bei mir immer mal geholfen.
    Verschiebe per Drag and Drop den Menüpunkt. Wenn er nicht an der Stelle sitzt wo her hin sollte, nicht nochmal verschieben sondern Seite neu laden. Du solltes grundsätzlich nach Verschieben eines Menüpunktes die Seite neu laden.


    Wohlgemerkt es zickt nur bei "großen" Menüstrukturen.

  • Danke Tom, leider hilft das bei mir nicht. Ich kann einen Untermenüpunkt an letzter Stelle einfügen, kein Problem. Auch kann den den Menüeintrag editieren und die Art des Menüpunkts verändern. Doch sobald ich einen beliebigen Menüeintrag verschiebe oder die Position im Menüeintragdatensatz mit der Auswahlliste verändere, knallt es.


    Mir kommt es so vor, als wenn Joomla, respektive die dafür programmierte Routine, irgendwie beim berechnen der Menüeinträge durcheinander kommt. Man sieht dies in der SQL Datenbank-Tabelle für das Menü, welche Start und Endwerte dann in den Einträgen stehen.

  • So krass hatte ich es noch nie, obwohl ich auch schon mit sehr vielen Menüpunkten hantieren musste.
    Ich glaube, es ist ein Javascriptproblem (Ajax). Das ist nicht gerade mein Gebiet, von daher muss da jemand anders weiterhelfen.


    Ansonsten versuche mal eine Datenbankreparatur. Entweder im BE von Joomla oder direkt unter phpMyAdmin.

  • Hallo,


    also darüber habe ich mich auch schon öfters geärgert :-) Hab's jetzt nochmals probiert:


    Wenn ich im backend die Reihenfolge ändern möchte (vor dem Verschieben) dann mache ich ein Häkchen davor, bzw. auf Alle.
    Die Liste sollte ganz aufgeklappt sein. (nicht nur 20 items). Passt. Hat aber keinen Einfluss auf das frontend. Da tat sich nichts.


    Daher auf: Wiederherstellen geklickt (Urzustand) und dann einen Menüpunkt verschoben, ohne dass ich ein Häkchen gesetzt habe.
    Frontend: passt. Ob's es so bei Dir hilft?


    Liebe Grüße, Christine

  • Hi. Ist das eine migrierte Webseite und hast du beim migrieren Jupgrade verwendet?


    Ja, das ist eine Seite welche ich vor über einem Jahr mit juUpgrade von 1.5 auf 3 migriert habe. Habe das aber auch schon mit anderen Seiten gemacht, ist mir dort aber noch nicht aufgefallen. Aber je mehr ich beim Schreiben darüber nachdenke, habe ich bei späteren Upgrades aber auch das Menü nicht mehr mit migriert und neu aufgesetzt. (Vielleicht eine Vorahnung gehabt, dass es daran liegt...)


    Ich überlege nun, eine zweite Joomla Instanz zu installieren, dann alle Komponenten, Module und Plugins wie auf dem ersten System zu installieren und dann das Menü wieder nachbauen. Dann einen Dump der Menü-Tabelle machen und mit dieser die vorhandenen Menü-Tabelle in der ersten Instanz ersetzten. Könnte das helfen?

    • Hilfreich

    Dann ist das Problem soweit bekannt und es gibt viele verschiedene Lösungsvorschläge, die aber nicht immer und bei jedem Funktionieren. Wenn die Seite nicht Aufwendig ist, würde es sich eher lohnen es mit http://extensions.joomla.org/extension/j2xml zu probieren. Artikel aus der alten Seite exportieren und in eine neue Seite zu importieren. Danach Module, Menüpunkte etc. pp. neu anzulegen.
    Die Alternative wäre einen Profi drüber schauen zu lassen und dann die Datenbank händisch korrigieren zu lassen. Dafür müsste man dann die original Joomla Tabellen mit den jetzigen vergleichen. Soweit ich mich erinnern kann, lag es an der verschachtelten Menüpunkten, die nicht korrekt übernommen wurden...

  • Sie Seite hat hunderte von Beiträgen und ist über Jahre gewachsen. Module sind aber überschaubar und könnte ich neu aufsetzten. Werde das mal antesten.


    Die vorgeschlagene Alternative habe ich auch schon angewendet. Man hat in der Menü-Tabelle deutlich gesehen das dort von der Nummerierung (Start und Endwerte der Menüeinträge) Murks vorhanden ist. Habe dann das Menü schon mal händisch in der Datenbank-Tabelle aufgebaut. Danach war es auch wieder richtig angeordnet. Allerdings hatte ich mich nur auf die Frontend-Menüpunkte fokussiert. In der Tabelle sind aber auch die Backendmenüs hinterlegt. Ggf. hätte ich alles neu machen müssen.


    Dann werde ich da wohl am nächsten Wochenende noch mal ran gehen.

  • Habe es wie folgt gelöst bekommen.


    1. Neue autarke saubere Joomla-Installation und Datenbank aufsetzten
    2. Komponenten installieren welche auf dem Live System auch verwendet werden.
    3. Von der neuen Joomla Datenbank die Tabellen "menu" und "menu_types" exportiert.
    4. Backup der Tabellen "menu" und "menu_types" in der DB des Live-Systems umbenannt.
    5. Import der Tabellen "menu" und "menu_types" in die DB des Live-Systems.
    6. Menüpunkte für das Frontent alle wieder anlegen.


    Nun klappt alles wieder. Kann Menüpunkte per Drag & Drop verschieben.