{"id":1158,"date":"2012-01-29T02:07:54","date_gmt":"2012-01-29T01:07:54","guid":{"rendered":"http:\/\/blog.benny-baumann.de\/?p=1158"},"modified":"2012-01-29T02:07:54","modified_gmt":"2012-01-29T01:07:54","slug":"zu-faul-zum-suchen","status":"publish","type":"post","link":"https:\/\/blog.benny-baumann.de\/?p=1158","title":{"rendered":"Zu faul zum Suchen"},"content":{"rendered":"<p>H\u00e4tte ich nicht schon wieder zwei Abende damit zugebracht, die Ursache f\u00fcr einen Fehler bei einem Joomla-Update zu suchen, w\u00fcrde ich es ja unter der Kategorie &#8222;Running Gag&#8220; verbuchen, dass die Joomla-Entwickler jedes Mal auf&#8217;s Neue sich in der Kreativit\u00e4t ihrer Bugs \u00fcbertreffen. War es beim einem Komponenten-Update noch das Unverm\u00f6gen konsistente Datenst\u00e4nde zu halten, so ist es in Sachen Software-Update die Abw\u00e4rtskompatibilit\u00e4t zu seinen eigenen, fr\u00fcheren Versionen.<!--more--><\/p>\n<p>Alles fing damit an, dass eine Joomla-Installation f\u00fcr einen Bekannten zu aktualisieren war. An sich auch kein gro\u00dfes Ding, da die f\u00fcr das Update n\u00f6tigen \u00c4nderungen bereits einmal vor l\u00e4ngerer Zeit zusammengesucht wurden und daher das Datenbank-Update wie erwartet binnen 10 Minuten abgeschlossen war. Deutlich l\u00e4nger dauerte da schon, ein Backup der Seite zu ziehen, bzw. die aktualisierten Dateien hochzuladen. Dass dabei der Upload auf den Server entgegen \u00fcblicher Netzverbindungen im Upload fast doppelt so schnell ging, wie dessen Download, sei hier nur m Rande erw\u00e4hnt.<\/p>\n<p>Jedenfalls, laufen wollte die Seite nicht. Das \u00fcbliche halt: Man muss erst umst\u00e4ndlich mit einem FTP-Client den Cache leeren, sich im Backend abmelden, den Cache erneut anmelden und abermals den Cache leeren, um nach einem erneuten Login im Backend arbeiten zu k\u00f6nnen. Ohne diese Umst\u00e4nde sieht man zwar ein wundersch\u00f6nes Joomla-Backend; leider jedoch ohne irgendwelche Men\u00fcs oder anderen Luxus wie Schaltfl\u00e4chen, die ja eh keiner brauch. Aber da ich dieses Rumgehacke bei Joomla schon kenne, war auch das keine wirkliche Herausforderung.<\/p>\n<p>Dann schon eher, dass einige der Seiten im Frontend einfach nur ein &#8222;Beitrag nicht gefunden&#8220;, oder gar ein &#8222;Kategorie nicht gefunden&#8220; lieferten. Also einen kurzen Blick in die \u00fcblichen verd\u00e4chtigen Stellen in der Datenbank und prompt auch gleich eine Datenbank-Inkonsistenz gefunden: In der Tabelle jos_menu gibt es zwei Spalten lft und rgt, die zur schnelleren Suche in der Baumstruktur der Men\u00fceintr\u00e4ge verwendet werden. Alle in diesen Spalten eingetragenen Werte m\u00fcssen eindeutig sein (auf beide Spalten gesehen) und d\u00fcrfen sich nicht \u00fcberkreuzen; lediglich das \u00dcberlappen (d.h. Eintrag 1 hat lft kleiner lft von Eintrag zwei und rgt von Eintrag 1 ist gr\u00f6\u00dfer als das von Eintrag 2) ist zul\u00e4ssig. Nunja, war fehlerhaft, kurz korrigiert, aber laufen wollte es immer noch nicht.<\/p>\n<p>Also erneut geschaut, keine weiteren Inkonsistenzen gesehen und daher mit dem Printf-Debugging das Routing-System von Joomla auseinander genommen. Ohne Erfolg. Denn die von Joomla generierten Links waren allesamt korrekt. W\u00e4re auch zu einfach gewesen. Somit kurz einen Test gemacht: Mir war aufgefallen, dass einige der Aliasnamen Gro\u00dfbuchstaben enthielten und diese beim Speichern in Kleinbuchstaben umgewandelt wurden. Und siehe da: Sobald die Aliase eines Eintrags nur noch Kleinbuchstaben enthielten (oder Ziffern), funktionierte es auch mit dem Finden des (seit Anfang an enthaltenen) Contents. Joomla!<\/p>\n<p>Hat man also fr\u00fcher in Joomla! einen Alias angeben k\u00f6nnen, der aus Gro\u00df- und Kleinbuchstaben besteht, so hat man seit einer der Stable-Versionen zwischen 1.6.0 Beta 7 und 1.6.6 genau diese M\u00f6glichkeit nicht mehr. An sich auch kein Thema, wenn Joomla zumindest so nett w\u00e4re, genau diese \u00c4nderung entweder automatisch beim Aufl\u00f6sen der URLs von sich aus umzusetzen ODER n prominenter Stelle im Backend darauf hinzuweisen, dass im aktuellen Men\u00fc einige Links enthalten sind, deren zugeordneter Content nicht auffindbar ist.<\/p>\n<p>Nunja, was soll man da sagen:  Es ist halt Joomla!<\/p>\n<p class=\"wp-flattr-button\"><a href=\"https:\/\/blog.benny-baumann.de\/?flattrss_redirect&amp;id=1158&amp;md5=5e6811354c17fbe1ec53ad56875413c9\" title=\"Flattr\" target=\"_blank\"><img src=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" srcset=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" alt=\"Flattr this!\"\/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>H\u00e4tte ich nicht schon wieder zwei Abende damit zugebracht, die Ursache f\u00fcr einen Fehler bei einem Joomla-Update zu suchen, w\u00fcrde ich es ja unter der Kategorie &#8222;Running Gag&#8220; verbuchen, dass die Joomla-Entwickler jedes Mal auf&#8217;s Neue sich in der Kreativit\u00e4t ihrer Bugs \u00fcbertreffen. War es beim einem Komponenten-Update noch das Unverm\u00f6gen konsistente Datenst\u00e4nde zu halten, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[4],"tags":[14,98,289,312,128,13,21,20],"class_list":["post-1158","post","type-post","status-publish","format-standard","hentry","category-server","tag-bugs","tag-developement","tag-fail","tag-joomla","tag-meinung","tag-patch","tag-php","tag-update"],"_links":{"self":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1158"}],"version-history":[{"count":1,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1158\/revisions"}],"predecessor-version":[{"id":1159,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1158\/revisions\/1159"}],"wp:attachment":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}