Untermenü

TYPO3 Chat hosted by kj187kj.

Join now


Chat about what's on your mind. More about public chats.

Sunsite SourceForge.net

Statistik
Tutorials Gesamt:
56
Tutorials Hidden:
1
Kommentare:
499

Bücher zum Thema

Links / Friends
» typo3.org
» T3N Magazin
» CSS Tutorials
» TYPO3 SEO
» TYPO3 Blog



 

Druckversion [make print link] (inkl. realURL)


Tutorial abonnieren:
Author:
William Fenner
Author E-Mail:
Eingetragen:
11.02.2007 - 00:10

Quelle:
Keine Quelle vorhanden
Klicks:
1068




Problem :

Wir wollen in unsere Seite eine Druckfunktion einbauen, die nur den Content ausgibt.
(zu allem Übel verwenden wir vielleicht noch RealUrl)

Um diese Funktion einzubauen gibt es unterschiedlichste Extensions, es
geht aber auch ohne.

Also dann mal frisch ans Werk.

1.)
Zunächst bauen wir in unser html-Temp. einen neuen Marker ein.
Dieser muss natürlich sinnig in die bestehende Struktur eingebaut werden.
Um auf Nummer-Sicher zu gehen fügen wir diesen erstmal außerhalb jeder table,... in ein div ein.

Beispiel:
0:  <!-- ... -->
1:   <div id="printbutton">
2:   ###PRINTBUTTON###
3:   </div>
4:   <!-- ... -->
Hier koennen Sie sich den Quellcode kopieren.


diesen dann im css positionieren etc.

2.)
nun müssen wir in unser Haupt-TS folgendes eintragen (am besten ganz unten, dann packen wir es nicht versehendlich in irgendwelche Klammern in die es nicht gehört)

   0: ###make print link
   1: print = PAGE
   2: print {
   3:   typeNum = 98
   4:   bodyTag = <body onload="javascript:window.print()">    
   5:    
   6:   10 < styles.content.getLeft
   7: } 
   8: ###make print link END
Hier koennen Sie sich den Quellcode kopieren.


0:  
1:   body {
2:   background-color:#ffffff";
3:   margin-left:1px;
4:   margin-top:1px;
5:   }
Hier koennen Sie sich den Quellcode kopieren.


...gut wir haben eine Seite zum Drucken angelegt auf der das Druckpanel geöffnet wird.


3.)
Der Ordung halber machen wir den Rest in einem ext-Temp. Also neues Template erstellen und z.B. ext: print.link nennen

Ins Setup schreiben wir nun folgendes :

   0: temp.PRINT = COA
   1: temp.PRINT {
   2:   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Druckansicht</a>
   3:    
   4:   10 = TEXT
   5:   10.data = TSFE:id
   6:   10.wrap = index.php?id=|&type=98
   7: }
Hier koennen Sie sich den Quellcode kopieren.


Wer mag kann natürlich auch statt dem Wort "Druckansicht" ein Bild verwenden.
Dann einfach "Druckansicht" durch :

0:  <img src="fileadmin/.../...mein_drucker.gif">
Hier koennen Sie sich den Quellcode kopieren.


ersetzen.

So der aufmerksame Leser wird nun meckern : "Moment was is mit Marker füllen ?"
Mach wir direkt :

ins Haupt TS

   0: #...
   1:   #....
   2: PRINTBUTTON < temp.PRINT
   3:   #....
   4:   #...
Hier koennen Sie sich den Quellcode kopieren.


!!! Auf Subpart etc achten !!! also selbst das vor PRINTBUTTON ergänzen, was eure Struktur erfordert. (bsp. marks.xxx)

So und warum haben wir das Markerbefüllen am Ende gemacht ?
Damit wir jetzt vor speichern-schließen noch eben unser ext.-Temp einbinden :D

Und fertig !

Es gibt viele andere Möglichkeiten mit und ohne Extensions, aber obiges
Beispiel funktioniert ohne Probleme auch dann, wenn wir z.B. RealUrl verwenden.





Ergebnis:



Zum Eingabeformular

 
Ralf 15.04.2008 10:15 Uhr 

Hallo,

in meinem Haupt-Template steht:

###make print link
print = PAGE
print {
typeNum = 98
bodyTag = <body onload="javascript:window.print()">

10 < styles.content.get
}
10.marks.PRINT < temp.PRINT

###make print link END

Der Marker ###PRINT### in meinem HTML-Template wird leider nicht ersetzt?
Kann das an Templavoila liegen?

Viele Grüße
Ralf

 
 
 
Daniel Pötzinger 18.01.2008 12:27 Uhr 

Servus. Die Erzeugung des Printlinks ist nicht optinal: Da nicht die TYPO3 linkfunktion "typolink" verwendet wird.
Besser:
lib.printlink3 = TEXT
lib.printlink3.typolink {
addQueryString = 1
parameter.data=page:uid
additionalParams = &type=98
addQueryString.exclude = id,print
}
 
 
 
Will 11.03.2007 09:59 Uhr 

zum ERROR :D

da funzt irgendwas nicht oder ich habs falsch bedient :D

oben muss es also selbstverständlich :

...
10 < styles.content.getLeft
20 < styles.content.get
30 < styles.content.getRight
...

heißen
 
 
 
William Fenner 11.03.2007 09:56 Uhr 

Weil es Fragen hierzu gab:

Im Haupt-TS soll man folgendes eintragen s.o. :

...
bodyTag = <body onload="javascript:window.print()">

10 < styles.content.getLeft
...
}

kurz zur Erläuterung: da steht :
10 < styles.conten.getLEEEEEFFFFFFFT , was soviel heißt wie
"befülle die 10 mit Inhalten aus
der Spalte LINKS

War nur als Beispiel gedacht, schein aber zu verwirren.
Im Normalfall sollte an der Stelle also

10 < styles.content.get stehen.


Möglich ist natürlich aber auch:

   0: 
   1: ... - ERROR: Line 1: Object Name String, "..." was not preceeded by any operator, =<>({
   2: 10 > styles.content.getLeft  
   3: 20 > styles.content.get
   4: 30 > styles.content.getRight
   5: ... - ERROR: Line 5: Object Name String, "..." was not preceeded by any operator, =<>({
Hier koennen Sie sich den Quellcode kopieren.


lg
Will
 
 
 
Seite: 1