Zum Inhalt springen

Mini-Tutorial Printlink - Druckversion (ohne Extension)

Erstellt am 19. März 2009 · 10 Antworten · letzte Antwort am 23. Oktober 2010

Tags: Frage

lizbet ·

Es gibt zahlreiche Posts zum Thema Printlink. Hier eine Mini-Anleitung fuer einen Druck-Link

- inkl. aller GET-Parameter, von wegen Druckansicht bei News bzw. Adressen,

- ohne eine Print-Extension wie "make_printlink" installiert zu haben,

- mit einem definierten page type 98,

- getestet u.a. mit wt_directory.

temp.print-link = TEXT
temp.print-link {
	value = Print this page
	wrap = <p class="print-link">|</p>
	typolink {
		# link to the current page id with type 98
		parameter = {page:uid},98
		parameter.insertData = 1
		useCacheHash = 1
		# add all get parameters from the current URL
		addQueryString = 1
		addQueryString.method = GET
		# remove the page id from the parameters so it is not inserted twice
		addQueryString.exclude = id
	}
}

# Add the print link to your page (you will have to adapt this to your setup)
page.10.subparts.PRINT-LINK < temp.print-link

Stammt nicht von mir sondern von: http://support.typo3.org/snippets/c/131/

Hier eine beispielhafte Definition fuer Page-Type 98:

# DRUCKSEITE DEFINIEREN
# *********************************************
print = PAGE
print {
  typeNum = 98
  ##disable typo3 index
  config.index_enable = 0
  
  ##disable google index
  headerData.123 = TEXT
  headerData.123.value = <meta name="robots" content="noindex, nofollow" />
  
  includeCSS.fileDefault = fileadmin/templates/stylesheet-print.css
  10 = TEMPLATE
  10 {
      template = FILE
      template.file = fileadmin/templates/template-print.html
      workOnSubpart = DOKUMENT
      
      marks { 
        INHALT < styles.content.get
      }      
    }
  }

Have fun
Liz

otti ·
lizbet schrieb

- inkl. aller GET-Parameter, von wegen Druckansicht bei News bzw. Adressen,

Funzt bei mir leider bei den News nicht; die Seite bleibt leer. #angry#
Bei normalem Content geht es.

Gruß aus Lippe,

Otti.

lizbet ·

hi otti,
zeig mal ein bisschen code.
sprich: wie sieht deine printpage (template) aus, wie ist der print-marker definiert und eingebunden?
gruesse aus ffm
liz

otti ·

Ich habe Dein Beispiel auf meine Seite umgebaut:

temp.printlink = TEXT
temp.printlink {
        value = | Seite drucken >>
        wrap = <p class="print-link">|</p>
            typolink {
                    # link to the current page id with type 98
                    parameter = {page:uid},98
                    parameter.insertData = 1
                    useCacheHash = 1
                    # add all get parameters from the current URL
                    addQueryString = 1
                    addQueryString.method = GET
                    # remove the page id from the parameters so it is not inserted twice
                    addQueryString.exclude = id
                     }
                }
 

druckversion = PAGE
druckversion {
       typeNum = 98
       ##disable typo3 index
       config.index_enable = 0
  
       ##disable google index
       headerData.123 = TEXT
       headerData.123.value = <meta name="robots" content="noindex, nofollow" />
  
       includeCSS.fileDefault = fileadmin/css/print.css
  10 = TEMPLATE
  10 {
      template = FILE
      template.file = fileadmin/templates/print.tmpl
      
      marks { 
        content_middle < styles.content.get
        content_right < styles.content.getRight
            }      
     }
             } 

printbutton < temp.printlink

Template der Printpage:

<!--###DOCUMENT_BODY### start -->
<div id="container">
    <div id="content_top2">
          ###content_middle###
    </div>
 
   <div id="right_top2">
          ###content_right###
    </div>
</div>
<!--###DOCUMENT_BODY### stop -->

Danke, Otti.

lizbet ·

ohne gross nachzudenken:

printbutton < temp.printlink

das ist bzw. soll ein marker sein, der in deinem page object mit type 0 eingebunden ist. ist vielleicht im howto nicht ganz so schoen formuliert...

also dein html-template fuer type 0 sollte irgendwie so aussehen :

<!--###DOCUMENT_BODY### start -->
<div id="container">
    <div id="content_top2">
          ###printbutton###
          ###content_middle###
    </div>
 
   <div id="right_top2">
          ###content_right###
    </div>
</div>

<!--###DOCUMENT_BODY### stop -->

dein ts-template fuer page 0 sollte so aussehen (das ts fuer den printlink und die page type 98 hab ich jetzt nicht komplett reingeschrieben):

temp.printlink = TEXT
## temp.printlink uswusf

page = PAGE
page {
  ## deine sachen ...
  typeNum = 0
  
  10 = TEMPLATE
  10 {
      template = FILE
      template.file = dein-NICHT-PRINT-template.html
      workOnSubpart = DOKUMENT
      
      marks { 
        ## deine anderen marker ...
        printbutton < temp.printlink 
        content_middle < styles.content.get
        content_right <  styles.content.getRight
      }      
  }
}

druckversion = PAGE
## druckversion uswusf.

ist das so?

otti ·

Hallo,

also jetzt bin ich etwas überfordert (wie so oft #paralyzed# )

Das

printbutton < temp.printlink

steht im root-Template im TS bei den anderen Markern, da der Printlink auf jeder Seite zu sehen ist.

Weiter oben - also außerhalb von "marks" - steht der Rest (siehe oben).

Ich muß doch nicht den "###printbutton###" noch ins Template der Druckseite schreiben,
denn dieser Marker wird doch nur durch "| Seite drucken >>" ersetzt?

Mit allem ausser der News funzt es ja auch?

Jetzt steh ich voll auf´m Schlauch ...

Danke,

Otti.

lizbet ·

hi otti,
du hast auf deiner news seite per ts fuer type 0 den marker "content-middle" umdefiniert:

# marks:
content_middle < plugin.tt_news
content_middle USWUSF.

dein druck-ts (type 98-) von der root macht aber fuer "content-middle" immer noch:

# marks
content_middle < styles.content.get

das heisst er will hier content reintun, den du auf dieser seite gar nicht hast (deshalb war die seite auch leer).

ich habs in deinem news-ts zeile 142 fuer das print umdefiniert:

## lizbet start
druckversion.10.marks { 
        content_middle < plugin.tt_news
		  content_middle { 
			pid_list >
			pid_list = DEINE_PID
			singlePid >
			singlePid =  DEINE_PID
			code >
			code = SINGLE
			_LOCAL_LANG.de.noNewsIdMsg =  DEINE_MSG
			}   
        content_right < styles.content.getRight
 }
## lizbet ende

fuer "content_right" gilt freilich das selbe. da musst du noch hand anlegen.

es gruesst aus ffm
liz

Climber ·

Hallo,
vielen Dank erstmal für das Script.

Ich bin aber auf der Suche, warum bei mir nicht das Powermailformular mitgedruckt wird - der normale Content wird gedruckt....

Weiß da jemand was??