Ich hatte vor kurzem den Fall, dass ich ein TYPO3-Menü erstellen musste, ein Eintrag dieses Menüs jedoch auf „Seite drucken” führen sollte. Dies kann man mit COAs oder ähnlichen Einträgen realisieren, ich zeige hier jedoch eine andere Vorgehensweise, die wesentlich redaktionskompatibler sein dürfte.

typo3_menue_link_ersetzenGesetzt den Fall, man hat eine Footer-Navigation mit der pid 44 (siehe Bild rechts). Darunter befinden sich die Einträge, die im Footer erscheinen sollen. Nur der Link „Seite drucken” soll auf die Druckversion der Seite führen.

In TYPO3 ist dies relativ leicht zu bewerkstelligen. Man muss mit Hilfe von stdWrap diesen speziellen Eintrag entsprechend umschreiben. Die notwendigen Einstellungen finden sich unten im Listing.

Was macht das Listing? Im Grunde sehen wir hier eine HMENU/TMENU-Struktur, wie sie für Menüeinträge in TYPO3 typisch sind. Interessant wird es ab Zeile 8: Hier wird ein stdWrap auf doNotLinkIt angewendet. doNotLinkIt verhindert normalerweise das Setzen des Links im Menü. Der stdWrap in Verbindung mit if erlaubt uns, den Link nur im Fall der Page uid von 48 zu verbieten, also für den Link auf die Seite „Seite drucken”.

Bis dahin (Zeile 12) würde das Menü ein ganz normales Footer-Menü ausgeben, bis auf „Seite drucken”. Diesen Punkt wäre nicht verlinkt. Nun bauen wir uns den Link selbst!

Dafür verwenden wir before (Z. 13–21) und after (Z. 22– 26) für NO. Erstere Struktur ist etwas komplexer. Wir lesen mit Hilfe eines cObjects zunächst die Umgebungsvariable REQUEST_URI aus. Dies ist leider bislang die einzige Möglichkeit, dies in TYPO3 zu machen. Immerhin funktioniert dies mit realurl bzw. cooluri ohne Probleme. Dann wrappen wird diese URI mit einem Link, dem wir ?print=1&type=98&no_cache=1 anhängen.

Wie im Abschnitt doNotLinkIt wird der Link nur erstellt, falls es sich um die Seite mit der uid 48 handelt.

Der after-Abschnitt ist einfach: Hier wird lediglich der Link geschlossen, falls die Seiten-uid 48 ist, also die Seite „Seite drucken”.

Nun hat man den Link überschrieben! Vorteil dieses Verfahrens ist, dass der Redakteur die Seite nun beliebig im Footer hin- und herschieben kann. Ein Nachteil ist, dass das URL-Rewriting für diesen Link nicht einfach so funktioniert.