realURL: optimierte Multi-Domain-Konfiguration

Ausgangssituation

In einem Projekt waren in einer TYPO3-Instanz über den Seitenbaum mehrere Marken in verschiedenen Ländern mit jeweils eigenen (Teil-)Seitenbaum abgebildet. Die einzelnen Websites waren inhaltlich-strukturell sehr ähnlich, und es waren viele spezifische Plugins im Einsatz. Insgesamt entstand so für die rund 100 Einstiegseiten eine (via realURL-Autoconfiguration erzeugte) rund 4,5 MB große Konfiguration. Die war uns ein Dorn im Auge.

Weiterlesen»

realurl: aus Mountpoint echte Seite machen

Immer mal wieder kommt es vor, dass (gerade bei Multi-Domain/Multi-Tree-Seiten) an verschiedenen Stellen im Baum dieselber Seite erscheinen soll. Gelöst ist das schnell via Mountpoint.

Nach einiger Zeit wird dann aber festgestellt, dass diese doch nur eigentlich gleich ist, sich aber in ein paar kleinen Details unterscheiden müsste. Kein Problem: schnell die Originalseite danebenkopiert, angepasst, den Mountpoint gelöscht – prima. Ja, wäre da nicht noch realurl. Der Pfadname sollte gleichbleiben, müsste aber ja nun auf die neue Seite führen. Aber egal, wie oft man den realurl-Cache (Encode-, Decode-Cache, ID-to-Path-Mapping) löscht, aus irgendeinem Grund will realurl weiterhin einen Mountpoint auflösen 🙁

Lösung:
In der Tabelle tx_realurl_pathcache den entsprechenden pagepath suchen und dort löschen (dort steht dann vermutlich auch noch etwas in der mpvar-Spalte, wodurch es zum Fehlverhalten kommt).

Umgebung: TYPO3 4.5.29, realurl 1.12.3

Typolink + realurl in Scheduler-Tasks

Anforderung war, dass aus einem Scheduler-Task heraus korrekte sprechende URLs erzeugt werden. Der einfachste Weg hierfür ist eine der typolink-Methode des cObjects. Leider steht ein solches aber in Tasks von Haus aus nicht zur Verfügung. Anleitung, wie man sich ein solches erzeugen kann, finden sich im Internet viele – leider aber auch zahlreiche, die nicht (mehr) funktionieren oder riesen woodoo treiben. Nach einigen Recherchen und Tests kann ich nun einen Weg zur Problemlösung festhalten.

Weiterlesen»

PHP array_merge_recursive() + realurl „fixedPostVars“

Einige Zeit hat es mich heute gekostet, um festzustellen, warum meine Erweiterung der realurl-Konfiguration via Hook zur Autoconfiguration fehlerhaft in der Konfiguration ankommt. Ursache ist ein Fehlverhalten der PHP-Funktion array_merge_recursive().

array_merge_recursive()

Zunächst, die Beschreibung der Funktion aus der Dokumentation:

array_merge_recursive() merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.

If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later value will not overwrite the original value, but will be appended.

Beachtenswert ist hier der letzte Satz, insbesondere „same numeric key“ und „same numeric key“.

Was ist hier so seltsam bzw. fehlerhaft?
Weiterlesen»