Die Druckversion der Seite kann über 3 mögliche Wege gesteuert werden. Der erste ist das Einbinden eines Stylesheets mit der media-Attribut „print“. Da kann man bestimmte Bereiche ausblenden, wie z.B. Menü. Der Nachteil ist, dass es nicht in allen Browsern funktioniert könnte und im Hinblick auf Typo3-Performance muss einiges für die Seite gerendert und gerendert werden, was dann nicht angezeigt wird. Die zweite Möglichkeit ist das Type-Attribut in Typo3. Da kann man bestimmte Elemente bereits in Typo3 ausgeben oder die Seite komplett anders gestalten. Der Nachteil ist, dass es mit TemplaVoila nicht funktioniert, sobald man FCEs benutzt. Die dritte Möglichkeit ist über die Übergabe der GET-Variable print, die TemplaVoila dazu veranlaßt, ein anderes Template zu verwenden (falls eins definiert ist). In diesem Beispiel werden alle drei Methoden miteinander verknüpft.
Drucken Link mit TypoScript anlegen
Zunächst definiert man den Link in TypoScript im Haupttemplate, damit er auf jeder Seite angezeigt wird:
lib.specialnavigation {
30 = TEXT
30 {
value = Seite drucken
wrap =
stdWrap.typolink.parameter.data = TSFE:id
stdWrap.typolink.parameter.wrap = |,98 710×600
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.additionalParams = &print=1&no_cache=1
stdWrap.typolink.JSwindow_params = status=0,menubar=0,scrollbars=1,location=0,toolbar=0
}
}
Die Druckversion geht in einem neuen Fenster auf. Die URL dazu ist die aktuelle Seite (mit allen Parametern, ergibt sich aus addQueryString) mit einem anderen Page Type (98) und den zusätzlichen Variablen print und no_cache. Nun kann man im TypoScript-Template die Druckversion mit typeNum 98 definieren und da ein anderes Stylesheet angeben und einen anderen Header. Hier ist ein Beispiel für eine Toolbar, die das Drucken de Dokuments und das Schließen des Fensters ermöglicht.
20 = TEXT
print = PAGE
print {
bodyTag =
typeNum = 98
includeCSS {
print = {$templateRoot}/css/print.css
print2 = {$templateRoot}css/print2.css
print2.media = print
}
10 = TEXT
10.value =
20.value = |
Super Beschreibung!!!
1000 Dank
Gruß, Walter
thx
letzte mal als ich das machte war schon 2 jahre her…
wusste gar nicht mehr wie das alles ging *g*
popup ist leider nicht mehr so aktuell aber ansonsten super beschrieben. mann könnte das alles in die tollen lightboxen einbauen
gruss
hallo,
habe etwas probleme mit der umsetzung. weiß nicht wirklich wo genau ich den „page“ bereich einfügen muss. ich habe die yaml typo3 installation und daher mehrere ts-dateien. will jetzt hier nicht die komplette übersicht posten, daher wäre es super wnen du mich per mail kurz anschreiben kannst (bei lust und zeit natürlich)
Grüße
Andreas
Den PAGE-Teil kannst du grundsätzlich immer ins Setup-Feld deines Haupttemplates schreiben.
Tip: Nutze den TypoScript Object Browser, um herauszunfinden, welche Dateien in welcher Reihenfolge inkludiert werden. Wenn du nicht weißt, wo der ist, dann frag Google.
Hallo,
bei mir funktioniert das wunderbar lokal auf meinem xampp.
Aber auf dem online Server, da wird ?type=98 nicht angehängt, womit dann die falschen Stylesheets eingebunden werden und auch keine „Toolbar“ vorhanden ist.
Wodran kann das liegen?
Ich benutze Typo3 4.3.1, Templavoila, Realurl
Moin!
Super! Vielen Dank. Für alle, die verzweifeln, warum dieses How-To bei ihnen keine Wirkung zeigt:
Im normalen Template-Datensatz („Vollständigen Template-Datensatz bearbeiten“, kein TemplaVoila…) unter dem Register „Enthält“ darf das Druck-Plugin „plugin.alt.print (98)“ NICHT als statisches Template geladen sein!!! Sonst werden unter Umständen alle versteckten und deaktivierten Content-Elemente in das Standard-Drucktemplate geladen… und das sieht dann nicht so cool aus.
Hi,
spontan weiß ich nichts. Dass muss man sich im Detail genauer ansehen.
@erazr
probier es so:
temp.print = COA
temp.print {
30 = TEXT
30 {
value =
stdWrap.wrap = |
stdWrap.typolink.parameter.data = TSFE:id
stdWrap.typolink.parameter.wrap = |,98 710×600
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.additionalParams = &print=1&no_cache=1
stdWrap.typolink.JSwindow_params = status=0,menubar=0,scrollbars=1,location=0,toolbar=0
}
}
lib.printlink < temp.print
P.S. Bei Value natürlich Dein Text oder Bild einfügen.
im page teil beim javascript fehlen versehentlich zwei Anführungszeichen
grüßle
W.