Tech 15. Apr. 2007

TYPO3: Bugfix beim Einsatz von Shortcuts und “typolinkCheckRootline”

Bei der Verwendung von mehreren Domains (über verschiedene Domain Records), welche auf verschiedene Ebenen in einem Seitenbaum zeigen, besteht die Problematik, dass Links aus einem Seitenbereich mit Domain A in einen anderen Seitenbereich mit Domain B jeweils die richtige Domain verwenden sollen.

Hierfür sieht TYPO3 die Einstellung “typolinkCheckRootline” vor. Hierüber werden bei der Erstellung von Links über die Typolink Funktion auch die Domain Records berücksichtigt, so dass immer die richtige Domain verwendet wird.

Ein Problem (vermutlich ein Bug) besteht beim Einsatz von Shortcuts auf einer Seite unter Domain A zu einer Seite unterhalb von Domain B. Beim Erzeugen des Links eines Shortcuts wird aus irgendeinem Grund nicht die gewöhliche Typolink Funktion verwendet, sondern die darunter liegende Funktion “t3lib_tstemplate.php->linkData”. Diese Funktion berücksichtigt allerdings nicht die Konfoguration “typolinkCheckRootline” oder die Domain Records.

Das Problem wurde auch schon vorher entdeckt und ebenfalls ein Lösungsansatz vorgestellt: “I fixed this by moving the code-block which reacts on “typolinkCheckRootline” from the tslib_content.php->typolink method to the t3lib_tstemplate.php->linkData method.” (siehe hier: http://www.archivesat.com/TYPO3_core_team/thread1912046.htm).

Als Lösung bzw. Patch wird hier vorgeschlagen, die tiefer liegende Funktion “linkData” um die entsprechende Auswertung des “typolinkCheckRootline” Parameters zu erweitern, also den Code dort rein zu kopieren. Etwas sauberer wäre vermutlich ein XCLASS.

Es müsste also die “linkData” Funktion in eine eigene Klasse kopiert werden. Anschließend ergänzt man diese um den Code aus “typo3/sysext/cms/tslib/ > function typoLink()”, ca. ab Zeile 5230 (TYPO3 3.8). Zuletzt muss natürlich noch die XCLASS Angabe an geeigneter Stelle eingebaut werden.

Nach einer erneuten Recherche, ließen sich einige fertige Extensions hierfür finden:

Allerdings habe ich diese beiden Extensions noch nicht getestet. Die erste scheint sogar eher ein anderes Problem beheben zu wollen. Wer sich der Evaluation dieser Extensions annimmt, kann mir gerne das Ergebnis zusenden: support (at) j2h.com

Vielen Dank!