[TYPO3-UG Denmark] printvenlig
Jakob Raaschou Nielsen - T3CMS.dk
typo3 at t3cms.dk
Wed Jul 4 00:07:32 CEST 2012
Hej gruppe. Vi har haft en intern diskussion i firmaet om hvad der er den
mest flexible og den mest korrekte måde at lave printvenlige sider
på i TYPO3
Jeg håber der er nogle af jer der vil komme med jeres input her og evt
hjælpe nye TYPO3 folk til at få defineret en best practice...
(eller er den allerede beskrevet et sted?)
Løsningsmodeller:
1) TemplaVoila. Man anvender TemplaVoilas måde til at lave en printvenlig
version vha. &print=1. Dvs man laver en subtemplate af hver TO med rendering
sat til "Printer friendly" og anvender samme datastruktur. Endvidere laves
der ny html template til den printvenlige TO med andet css osv. På denne
måde mapper man typisk kun de centrale felter og undlader headers og menuer
osv og dermed opnåes en printvenlig side kun med det centrale indhold uden
baggrundsbilleder og den omkringliggende template.
Fordele: integreret i templavoila. Loader kun de nødvendige ting og TYPO3
skal kun generere de ting der skal bruges og kan caches... Flexibelt i
forhold til hvilke områder man ønsker folk skal printe og brugeren ser det
før der printes.
Ulemper: seperat TO til printvenlig skal laves for hver alm TO hvor man
ønsker en printvenlig version. Der åbnes nyt vindue
Eksempel: http://biosikring.dk/ hvor der er printlink i toppen eller
http://www.urtekram.dk/om-urtekram/ hvor der er link i
contentfeltet til print der åbner
http://www.urtekram.dk/om-urtekram/?print=1&no_cache=1 med printdialogbox
2) TYPO3 page typeNum rendering. Her anvendes type=98 for at få TYPO3 til at
rendere indholdet med pågældende page type. Her skal der laves TS til
håndtering af page type 98. Her tilføjes bare type=98 til urlen og typisk
inkludere man tilsvarende anden css og udvælger hvilke elementer der skal
medtages. Jeg har personligt selv kun brugt dette på gamle sites for mange
år
siden, da jeg ikke kan se logikken i hvordan type=98 spiller sammen med
templavoila...
Fordele: Integreret i TYPO3 i forhold til rendering hvis man anvender den
gamle Auto-parse Template metode
Ulemper: PAGE konf skal laves og opsætning er som jeg husker det lidt mere
besværligt
eksempel: http://www.visionteam.dk hvor print ikon åbner ny side på
http://www.visionteam.dk/404/?type=98&no_cache=1&print=1 med dialogbox
3) mediatype CSS. Printvenligt version laves udelukkende via css. Enten via
@media print inline i CSS eller med header include af <link rel="stylesheet"
type="text/css" href="print.css" media="print">
Fordele: forholdsvist nemt og hurtigt lavet og kræver mindre TYPO3
tilpasning.
Kræver ikke nyt vindue og load af ny side.
Ulemper: Typisk mange elementer der skal deaktiveres hvis man kun ønsker
print skal indeholde maincontent. Brugeren ved oftes ikke hvad der kommer ud
på printet i forhold til det man ser på skærmen, da man oftes ikke ser
printpreview.
Eksempel: http://www.hki.dk/ hvor printikon åbner printdialogbox og
printoutput er stylet til printformat via header include af css med
media="print" og alle elementer der ikke skal vises er sat til display:none,
dvs #header, #sidebar, .sound, .print{display:none;}
Jeg anvender normalt løsning 1 hvilket er nemt nok hvis der ikke er sindsygt
mange TO's men hvad
gør i andre normalt?
Optimalt vil jeg mene, at hvis man bruger TemplaVoila så ville jeg bruge
løsning 1 kombineret med 3 så man også tilføjer et stylesheet via header
include med media="print" ,hvor man sikrer det ser fornuftigt ud hvis
brugeren ikke anvender printlinket men printer direkte via ctrl+p eller
filer->print, hvis man ikke ønsker at brugeren skal kunne printe hele sitet
uden printformatering som er 100% styret.
Andre småting som man måske også lige skal tæke over:
SEO: hensyn til double content og anvendelse af canonical med hensyn til at
man typisk kun viser alm indhold og ofte slet ikke vil have den
printvenlige version indexseret... Så anvendes løsning 1 med ny print side,
så bør der være et nofollow på printlinket.
dvs ATagParams = rel="nofollow"
Ændring af metatags på de printvenlige sider...
Konfiguration af Realurl til at oversætte filename "print" til print=1 eller
type=98, så man kan lave print link til f.eks /kontaktinfo/print i stedet
for /kontaktinfo?print=1 eller /kontaktinfo?type=98
Sættes typisk således:
'fileName' => array (
'index' => array(
'backend.php' => array(
'keyValues' => array (
'type' => 100,
)
),
'print' => array(
'keyValues' => array(
'print' => 1, (eller 'type' => 98, afhængigt af om man
anvender typeNum eller templavoilas måde)
)
),
),
),
den gamle ext:make_printlink kan sagtens undværes og printlinket kan bare
laves med
alm typolink og stdWrap...
Eksempel på standard generering af printlink via Ts kunne være således:
lib.print_url = TEXT
lib.print_url {
value = <img src="fileadmin/templates/images/print-icon.gif"
alt="print-icon" /> Udskriv
typolink {
parameter = {page:uid} _blank
parameter.insertData = 1
useCacheHash = 1
addQueryString = 1
addQueryString.method = GET
addQueryString.exclude = id
additionalParams = &print=1
ATagParams = rel="nofollow"
title = Print denne side
wrap = <div class="print-con">|</div>
}
}
Smider normalt følgende i nederst i printtemplaten for at åbne print
dialogboxen:
<script language="Javascript1.2" type="text/javascript">
<!--
window.print();
//-->
</script>
Venlig hilsen
Jakob Nielsen - T3CMS.dk
More information about the TYPO3-UG-Denmark
mailing list