Einfache Druckfunktion für TYPO3

Ich bin kein Freund davon hunderte Extensions zu installieren und damit Tonnen von fremden Code in das eigene Projekt zu schmeißen. Mit seinen 33MB bringt TYPO3 da schon genug mit. Also möchte ich einfache Aufgaben mit einfachen Boardmitteln lösen. Zum Beispiel dir Druckfunktion. Als verantwortungsvolle Webagentur erstellen wir ordnungsgemäß eine print.css. Doch trotz aller Erklärungen möchte der Kunde nicht auf das kleine Druckersymbol und die Vorschau verzichten. Folgenden Lösungsweg möchte ich Vorschlagen, ohne Extensions, nur mit ein paar Zeilen Typoscript.

Ein Artikel von Paul Lunow, erschienen 2008 auf Interaktionsdesigner.de.

Zuletzt überarbeitet am von : .

1. Im Template platzieren wir einen Marker PRINT und definieren diesen als Link auf die gleiche Seite mit einem weiteren Parameter: print=1

PRINT = TEXT
PRINT.typolink {
    value = drucken
    parameter.data = page:uid
    additionalParams = &print=1
    target = _new
}

Sehr schön. Weiter zur Einbindung der CSS Dateien. 2. Die Standardcss Datei lassen wir beim einbinden einfach leer:

page.includeCSS {
    file1.media = screen
    file2 = fileadmin/template/css/print.css
    file2 {
        title = Druckversion
        media = print
    }
}

Und am Ende vom Typoscript kommen wir zu Punkt drei. 3. Mit einer einfachen Bedingung fragen wir unseren Parameter ab und definieren je nach dem die CSS Datei “file1”:

# Standard CSS Datei - wird ggf. überschrieben
page.includeCSS.file1 = fileadmin/template/css/style.css
[globalVar = GP:print=1]
# Wenn &print=1 an die Adresse angehängt wird, läd das Print.css
page.includeCSS.file1 = fileadmin/template/css/print.css
[global]

**Das wars! **Und schon haben wir eine einfache und wirkungsvolle Druckfunktion. Ohne Extensions, ohne ein Drucktemplate, neue Fenster und JavaScript. Und Typoscript bietet noch so viel mehr. Zum Beispiel können wir die Variable “print” in die allgemeinen LinkVars mit aufnehmen. Damit schleift TYPO3 den Parameter durch alle ordentlich erzeugten Links und wir können in der Druckfunktion rumsurfen als wäre es eine eigene Webseite:

config.linkVars = L, print

Apropos “L”. Mehrsprachigkeit ist natürlich auch kein Problem, sollte man den Linktext nicht per Image Replacement verstecken.

[globalVar = GP:L=1]
  page.10.marks.PRINT.value = print
[global]

Selbsterklärend… Ein Styleswitcher ist genau so einfach zu realisieren.


Deine Meinung

Sind wir einer Meinung? Sind noch Fragen offen geblieben?

Mehr zum Thema