Seit Version 1.8 wird in der config.php von CMS made simple der Parameter $config['use_hierarchy'] = false nicht mehr unterstützt. Diese Änderung fand relativ stillschweigend und ohne Erwähnung in der Release-Meldung statt. Als das Kind schon in den Brunnen gefallen war und lediglich noch ein Downgrade mittels meiner Backups möglich gewesen wäre, habe ich dann natürlich auch eine Erwähnung in der Vorankündigung gefunden.
Das Problem
In seinem Posting schrieb calguy1000 so schön "Web sites are hierarchical, nuf said". Mein erster Gedanke war, daß ich dann wohl zu viele Ausnahmen kenne und nuf ein Idiot sein muss. Danach verbesserte ich erst einmal meine Englischkenntnisse und suchte nach einer Erklärung von nuf said. Dies bedeutet am ehesten, daß jemand den Diktator (in diesem Fall Ted) raushängen lässt und keine weiteren Kommentare/Diskussionen zum Thema erwünscht sind.
Die Entwickler haben sich in diesem Fall jedoch meiner Meinung nach gewaltig geschnitten, wie auch die Beteiligung in den beiden Beiträgen Multiple menus with use_hierarchy set to true und Removal of optional hierarchical URLs - Dissappointing decision zeigt.
Ich persönlich nutze CMSms als leichtgewichtige Lösung für kleine und simpel strukturierte Websites und möchte hier auf jeden Fall zusätzliche Hierarchie-Ebenen in den URLs vermeiden. Dies war auch problemlos möglich, da ich eigentlich kaum Module verwende.
Die Lösung
Die in dem ersten Beitrag vorgestellte Lösung sagt mir persönlich nicht zu, da hiermit maximal das Menü und die Sitemap korrigiert werden können. Links im Content wären hingegen weiterhin fehlerhaft oder man müsste alle URLs manuell verlinken. Aus diesem Grund habe ich den Ansatz verworfen und nach einer anderen Lösung gesucht.
Erste Tests ergaben, daß die zusätzlichen Hierarchie-Ebenen in den URLs weiterhin beim Seitenaufruf ignoriert werden und lediglich der Alias am Ende genutzt wird. Somit würde es reichen, wenn im Nachhinein alle betroffenen Links korrigiert würden.
Nach zwei Stunden Arbeit habe ich seit gestern Mittag ein passendes Plugin (Smarty Ausgabefilter) auf meiner geschäftlichen Website im Testeinsatz. Es sucht alle Links, die im href-Attribut (in Form einer absoluten URL-Angabe) auf die eigene Website verweisen und am Ende die Page-Extension aus der config.php aufweisen. Sofern die URL nicht mit einer Ausnahme beginnt, werden per preg_replace alle unnötigen Hierarchie-Ebenen gekillt. Als Ausnahme (in der Variable $exceptions) ist derzeit in Zeile 9 des Filters nur das News-Modul definiert, dessen URLs zu den Detailseiten mit news beginnen. Als weitere Ausnahmen werden automatisch alle Ordner im Root der CMSms-Installation festgelegt.
Der Download des Plugins ist auf meiner geschäftlichen Website im Download-Bereich möglich. Ich biete jedoch keinen kostenlosen Support und übernehme auch keine Haftung für mögliche Probleme. Es handelt sich um eine Beta-Version, die auf jeden Fall in einer lokalen Testumgebung mit der eigenen Website ausprobiert werden sollte.
Fazit
Ich persönlich hoffe, daß die Entwickler in diesem Fall einen Rückzieher machen, den Missbrauch des betroffenen Parameters akzeptieren und eine Version 1.8.2 mit erneutem Support veröffentlichen, wie es Ted in seiner ersten Reaktion angekündigt hat. Falls dies passieren sollte, bekommt man dies ehesten über den englischen Foren-Beitrag mit.



Re: CMSms: Flache URL-Struktur seit Version 1.8 unerwünscht
tony middleton (Gast), 7. August 2010 - 13:55
Thanks Larry - you've saved my bacon - funktioniert einwandfrei - es wird allerdings dauern bis ich weiss ob alle mein dazugehörige Probleme gelöst sind.
gruss - spike
Re: CMSms: Flache URL-Struktur seit Version 1.8 unerwünscht
Camma (Gast), 8. August 2010 - 10:17
Danke für die Lösung.
Das Problem betrifft ja vorallem das Menü. Dies liesse sich auch mit einem Hack im MenuManager lösen, denke ich. Währe möglicheweise ein wenig effizienter.
Re: CMSms: Flache URL-Struktur seit Version 1.8 unerwünscht
Jan, 8. August 2010 - 11:36
Hacks haben nur immer den Nachteil, daß man sie nach jedem Update neu einpflegen muss. Zudem kann mein Filter alle Teile des HTML-Codes korrigieren, egal wodurch sie entstanden sind.
Re: CMSms: Flache URL-Struktur seit Version 1.8 unerwünscht
Camma (Gast), 13. August 2010 - 12:19
In der gestern veröffentlichten Version 1.8.2 ist use_hierarchy wieder drin.
Möglicherweise jedoch nicht für immer:
"Die Option use_hierarchy in der config.php wurde aus Gründen der Abwärtskompatibilität wieder eingefügt. Dies wird eventuell in zukünftigen Versionen entfallen, da es dadurch schwierig wird, für Module Pretty URLs zu erstellen, aber wir haben dafür Abhilfe geschaffen."
Re: CMSms: Flache URL-Struktur seit Version 1.8 unerwünscht
Jan, 13. August 2010 - 20:51
Wunderbar dank Dir für den Hinweis.
Kommentar hinzufügen