BenBE's humble thoughts Thoughts the world doesn't need yet …

14.06.2011

Komponenten-Update mit sehr viel Fail

Filed under: Software — Schlagwörter: , , , — BenBE @ 01:50:56

Heute gibt es wiedermal ein Leckerli aus der Kategorie „Soviel Fail gibt’s nur bei Joomla“. Wer also schon immer über Joomla lästert, findet hier nun genau einen weiteren Punkt, wie Software nicht aussehen sollte. Aber gehen wir einmal der Reihe nach.

Für ein Projekt baue ich derzeit eine Komponente in Joomla, die eine Reihe von Erweiterungen in der Oberfläche implementiert. Die Komponente ist auch soweit fast fertig und ist im Backend wunderbar angebunden. Da im Laufe der Entwicklung noch zwei Menüpunkte zu ergänzen waren, musste diese kurzzeitig deinstalliert und wieder neuinstalliert werden, was an sich auch kein Problem darstellt, wäre da nicht … ähhhm … Joomla.

Die Komponente implementiert im Frontend nämlich die Erzeugung von SEO-freundlichen Links, die – aus einem Vorgängerprojekt stammend – auch bereits wunderbar funktionierten und im Produktiveinsatz keinerlei Probleme zeigten. Seitdem die Komponente jedoch zwischenzeitlich neu im Joomla eingebunden wurde, um die Anpassungen im Menü des Backends zu übernehmen, sah man nur die Joomla-typischen ItemId-Parameter in der Adresszeile. Die vormals funktionierenden Routen (wie die SEO-URLs im Joomla-Slang heißen) wurden nicht einmal mehr noch beachtet. Aufrufbar waren die Links dennoch. Auch ein erneutes Abspeichern der Menüeinträge, nachdem der Item-Type neu gesetzt wurde, bewegte Joomla nicht dazu, wieder SEO-URLs anzuzeigen.

Also fängt das Debugging an. Und wer jetzt als Admin nicht zumindest die Postfix-Konfiguration oder eine Einsendung zum IOCCC gewohnt ist, sollte u.U. erstmal was essen; auf nüchternen Magen verträgt man das nämlich sonst nicht. Also gut: Schauen wir zuerst einmal in die Joomla-Datenbank, um zu sehen, was Joomla bei der Komponenten-Installation so feines anstellt. Als erster Kandidat erweist sich hier die Tabelle jos_extensions. In dieser stehen alle Komponenten, Themes, Plugins und wie die Teile im Joomla-Slang wohl noch so alle heißen. U.a. findet sich hier auch ein Eintrag unserer Komponente, die nicht mehr geht. Nunja: Normal wäre ein Eintrag, seltsamer Weise hat es Joomla aber geschafft, hier mehrere Einträge draus zu machen, weshalb die Komponente zwei Mal auftaucht. Auch übrigens im Admin-Panel. Naja, passiert. Löschen wir also beide Einträge, deinstallieren die Dateien aus dem Joomla-Verzeichnis, die unsere Komponente betreffen und spielen die Update-Datei erneut ein.

Wer nun mit einer Meldung „Juhu, erfolgreich installiert“ gerechnet hat, darf bitte noch einmal das Thema dieses Posts verinnerlichen: Joomla! Stattdessen wirft einem Joomla eine Meldung „Error building admin menu“ an den Kopf. Naja, schauen wir noch mal in die Datenbank und finden da eine Tabelle jos_menu. Ja, hier handelt es sich, wie der Name vermuten lässt, um die Tabelle, in der jegliche Menüeinträge aufgeführt werden. Und wie es sich für ein unsauber konzipiertes System wie Joomla gehört, auch anwendungsübergreifend Frontend und Backend gemischt. Wer also mal so richtig sein Backend zerschießen will, darf in der jos_menu-Tabelle gerne anfangen. In besagter Tabelle fanden sich nun die von der Komponente in der XML-Datei registrierten Menü-Punkte. Jedoch nicht von der aktuellen Installation, sondern – fein säuberlich aufgehoben – von der Erstinstallation der Komponente. Also jos_menu aufräumen, die Komponente aus jos_extensions deinstallieren UND die Komponente wieder aus der Joomla-Installation entfernen.

Text für „Komponenten-Update mit sehr viel Fail“ anzeigen
Direkt zum Beitrag

Flattr this!

Powered by WordPress