Backend Sortierung Menüeinträge durcheinander - Error beim Speichern

  • Hallo,
    irgendwie ist mir die Sortierung der Menüeinträge durcheinander geraten und jetzt bekomme ich auch noch eine ellenlange Fehlermeldung wenn ich nach dem umsortieren speichern möchte.
    Kann mir jemand diese Fehlermeldung erklären, bzw. falls ich hier falsch bin, wo kann ich da fragen?:

    Code
    WarnungSpeichern fehlgeschlagen! Fehler: exception 'UnexpectedValueException' with message 'MenusTableMenu::moveByReference(1055, last-child, 1253) parenting to child.' in [rootverzeichnis]/libraries/joomla/table/nested.php:338 Stack trace: #0 [rootverzeichnis]/libraries/joomla/table/nested.php(840): JTableNested->moveByReference(1055, 'last-child', 1253) #1 [rootverzeichnis]/libraries/legacy/table/menu.php(238): JTableNested->store(false) #2 [rootverzeichnis]/administrator/components/com_menus/models/item.php(1258): JTableMenu->store() #3 [rootverzeichnis]/administrator/components/com_menus/controllers/item.php(267): MenusModelItem->save(Array) #4 [rootverzeichnis]/libraries/legacy/controller/legacy.php(728): MenusControllerItem->save() #5 [rootverzeichnis]/administrator/components/com_menus/menus.php(18): JControllerLegacy->execute('apply') #6 [rootverzeichnis]/libraries/cms/component/helper.php(392): require_once('/var/www/vhosts...') #7 [rootverzeichnis]/libraries/cms/component/helper.php(372): JComponentHelper::executeComponent('/var/www/vhosts...') #8 [rootverzeichnis]/libraries/cms/application/administrator.php(98): JComponentHelper::renderComponent('com_menus') #9 [rootverzeichnis]/libraries/cms/application/administrator.php(152): JApplicationAdministrator->dispatch() #10 [rootverzeichnis]/libraries/cms/application/cms.php(252): JApplicationAdministrator->doExecute() #11 [rootverzeichnis]/administrator/index.php(47): JApplicationCms->execute() #12 {main}


    Hilfe wäre dringend nötig!
    Grüße, Klaus

  • Sorry, habe ich in der Aufregung ganz vergessen:

    Code
    PHP erstellt für Linux v22011048610528699 3.13.0-68-generic #111-Ubuntu SMP Fri Nov 6 18:17:06 UTC 2015 x86_64
    Datenbankversion 5.5.46-0ubuntu0.14.04.2
    Datenbankzeichensatz utf8_general_ci
    PHP-Version 5.5.9-1ubuntu4.14
    WebserverApache/2.4.7 (Ubuntu) 
    PHP-Interface für den Webserver apache2handler 
    Joomla!-VersionJoomla! 3.4.5 Stable [ Ember ] 22-October-2015 21:30 GMT
    Joomla!-Plattform-VersionJoomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT
    BrowsererkennungMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36


    An Erweiterungen die da eine Rolle spielen könnten habe ich höchstens "The GrueMenu". Das habe ich aus Versehen installiert aber nie benutzt und auch nicht aktiviert. Der Fehler ist mir gestern zum ersten Mal aufgefallen als ich einen Batch-Prozess anstoßen wollte, nämlich die Kopie eines Zweigs aus einem Menü in dasselbe Menü mit anderer Zugriffsebene einzuhängen. Ich vermutete, dass ich eine nicht zulässige Operation ausgeführt hatte, da das Ziel der Kopie ein Menüpunkt war, der auch kopiert wurde. Ich habe das wiederholt aber vorher das Ziel manuell als neuen Menüpunkt erstellt und wieder die gleiche Fehlermeldung erhalten (vermute ich mal, denn gemerkt habe ich mir die nicht). Obwohl jeweils ausgegeben wurde, dass die Operation wegen des Fehlers nicht ausgeführt werden konnte fand ich später die Menüzweige im Menü wieder, allerdings nicht dort wo sie hin sollten. Beim Versuch das wieder zu richten stellte ich nicht nur fest, dass ich nicht mehr in der Lage war, den Menü-Baum darzustellen, sondern es trat auch der gepostete Fehler auf als ich einem Menüpunkt eine neue Zuordnung geben wollte.
    Mit welcher Einstellung der Sortierreihenfolge ergibt sich eigentlich die normale Baumdarstellung, also oben die Wurzel und nach unten die Krone?
    Ach so, gerade fällt mir noch ein, dass ich nach dem Erstellen einiger Sprach-Verknüpfungen zum ersten Mal bemerkt habe, dass der Menübaum nicht mehr richtig dargestellt war.
    Übrigens vielen Dank für die schnelle Antwort.
    Grüße, Klaus

  • Die Warnung erscheint, wenn man versucht einen Eltern-Eintrag auf einen untergeordneten Kind-Eintrag zu verschieben. Das ist eine illegale Aktion und geht natürlich nicht, da so eine Rekursion hinein käme. Wenn du Menü-Links an anderer Stelle erzeugen möchtest, die den gleichen Inhalt als Ziel haben sollen, kannst du den Menüeintrags-Typ Menüeintrag-Alias unter Systemlinks verwenden.


    Wo ist denn nun dein Problem?

  • addi: das Problem scheint zu sein, dass er nichts mehr speichern kann.


    Das System dürfte eine "nicht zulässige Operation" eigentlich nicht zulassen. Aber so eine rekursiv arbeitende Batchfunktion .. könne sein dass das die Ursache war.
    Spontan so von ausserhalb wüsste ich jetzt keine schnelle Maßnahme.
    Das Menü bzw. seine Struktur ist in der Datenbank als nested set gespeichert. Damit wird einen Baumstruktur erzeugt. Und "normal" zeigt Joomla diese Baumstruktur immer, wenn man sich neu anmeldet und noch keine andere Sortierung gemacht hat. Wenn du wirklich nicht mehr speichern kanns (und sich das Problem nach abmelden und neu anmelden nicht gelöst hat) Müsste man die Baumstruktur jetzt wieder reparieren.
    Von hand ist das sehr aufwendig.
    Wenn dein menü nicht wirklich riesig ist würde ich ein backup machen und dann das Menü komplett von Hand neu aufbauen, dabei die Einstellungen aus dem alten Menü kopieren (in phpmyadmin).
    Aber vielleicht hat einer der anderen Supporter eine bessere Idee.

  • Das Problem ist, dass die Darstellung des Menübaums völlig durcheinander geraten ist. Ursprünglich war das alles ordentlich dargestellt und jetzt kann ich machen was ich will aber die ursprüngliche Baumform ist nicht mehr hinzukriegen.
    Das Menü ist ziemlich komplex und wenn das nicht richtig dargestellt ist verliere ich die Übersicht.
    Das PullDown zur Sortierung bietet zwar eine Menge Optionen aber keine hilft mir weiter.

  • Das System dürfte keine "nicht zulässige Operation" eigentlich nicht zulassen. Aber so eine rekursiv arbeitende Batchfunktion .. könne sein dass das die Ursache war.
    Spontan so von ausserhalb wüsste ich jetzt keine schnelle Maßnahme.


    Ja, Joomla hat da noch ein Usability-Loch.


    Ich hatte mal einen VHS-Kurs, da hat ein Teilnehmer das mit Kategorien veranstaltet und dann Kategorien gelöscht. Beiträge erzeugten auf einmal einen 404-Fehler und waren nicht mehr erreichbar. Die Lösung war, die gelöschten Kategorien wieder herzustellen, dann manuell Stück um Stück die Sortierung wieder runterzusetzen. Käme auf einen Versuch an.

  • Das Menü ist ganz schön umfangreich. Ich würde mir eine händische Reparatur gerne ersparen. Falls es nicht anders geht, wie mache ich das in phpmyadmin? Ich spiele ungern an der Datenbank rum. Habe mir da vor einigen Jahren mal ein Ding eingefangen das nie besonders aufgefallen ist, aber regelmäßig als Fehler in der Datenbank angezeigt wurde. Beim Versuch des Upgrades von der letzten 2.5 auf 3.x wurde mir das zum Verhängnis. Jetzt hatte ich nach langer Fummelei und Neuinstallation endlich eine saubere Installation und dann passiert so was!
    Trotzdem vielen Dank für die Hinweise. Vielleicht müsste man das mal als Bug melden, denn eigentlich sollte es tatsächlich nicht möglich sein eine unzulässige Operation durchführen zu können. Und noch weniger sollte die Operation die Meldung "Konnte nicht durchgeführt werden" ausgeben und trotzdem einen Teil der Aktion abschließen. Ich glaube ich kann das reproduzieren.
    Jetzt wäre es allerdings nett wenn mir noch jemand aus dem Schlamassel helfen könnte!
    Grüße, Klaus

  • Das Menü ist ganz schön umfangreich. Ich würde mir eine händische Reparatur gerne ersparen. Falls es nicht anders geht, wie mache ich das in phpmyadmin? Ich spiele ungern an der Datenbank rum. Habe mir da vor einigen Jahren mal ein Ding eingefangen das nie besonders aufgefallen ist, aber regelmäßig als Fehler in der Datenbank angezeigt wurde. Beim Versuch des Upgrades von der letzten 2.5 auf 3.x wurde mir das zum Verhängnis. Jetzt hatte ich nach langer Fummelei und Neuinstallation endlich eine saubere Installation und dann passiert so was!


    Wenn du ein backup von vor dem "Unfall" hast (frag ggf. bei deinem Hoster nach) dann wäre das eine Lösung.
    Wenn es kein Backup gibt: Du kannst jemanden beauftragen, das er sich die Datenbank anschaut und den Schaden repariert. vielleicht ist es nur eine Winzigkeit, aber in Ferndiagnose läßt sich das nicht sagen.

  • Hallo @klabog,


    Zitat

    Trotzdem vielen Dank für die Hinweise. Vielleicht müsste man das mal als Bug melden, denn eigentlich sollte es tatsächlich nicht möglich sein eine unzulässige Operation durchführen zu können. Und noch weniger sollte die Operation die Meldung "Konnte nicht durchgeführt werden" ausgeben und trotzdem einen Teil der Aktion abschließen. Ich glaube ich kann das reproduzieren.


    Warum meldest du den Fehler nicht selbst? Ich wollte es gerade angehen, aber mir fällt es schwer ihn zu rekonstruieren.


    Wenn du möchtest kannst du den Fehler auf Englisch hier melden: issues.joomla.org/tracker/joomla-cms


    Oder, wenn du es lieber auf Deutsch machen möchtest auch gerne hier: joomla-bugs.de/forum/


    Jeder Bugreport und Fix verbessert Joomla für alle Benutzer. Zitat von zero24 :)

  • Hallo,
    sorry für meine lange Funkstille. Bin noch nicht dazugekommen auf einer Testinstallation auszuprobieren ob sich das Problem reproduzieren lässt und habe deshalb auch noch keinen Bug-Report verfasst. Werde das aber auf alle Fälle im Auge behalten.
    Mein Problem musste ich leider brachial mit einem (leider nicht ganz aktuellen) Backup lösen da ich mir keine längere Ausfallzeit erlauben konnte.
    Noch mal vielen Dank für alle Hilfestellungen.
    Klaus