Lernen am Beispiel: Printversion [Gelöst]

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2005, 11:20

    Als Erstes muß ich erwähnen das große Teile dieser Printversion irgendwo in Schnippseln im Buch "Typo3 Enterprise Content Management" der Open Source Press zu finden sind.

    Der Grund für diese "Präsentation" ist die Tatsache das ich täglich Leute im Forum sehen die Neulingen erklären wollen das sie 2 Seiten Code in ihr eh meist schon ziemlich großes und unübersichtliches Project (das ist Tatsache wenn man eine Typoseite zum 1. oder 2. mal zusammenbastelt ;) ) reinbasteln müssen, nur um eine Printversion zu gestalten.

    Ich will beweisen das dies nicht der Fall ist:

    Als 1. definieren wir also die Druckversion:

    1. temp.PRINT= COA
    2. temp.PRINT {
    3. wrap = <!!=|====>Drucken</a>
    4.  
    5. # Diese Methode verwendet Typo wenn wir SimulateStaticHTML verwenden... sie fügt uns
    6. # den Type in die URL ein, und zwar so das SimulateStaticHTML damit zurechkommt
    7. 10 = TEXT
    8. 10.data = getIndpEnv:REQUEST_URI
    9. 10.listNum.splitChar = .
    10. 10.listNum = 1
    11. 10.wrap = |.98.html
    12. }
    13.  
    14. # Diese Methode verwendet Typo wenn wir kein SimulateStaticHTML verwenden
    15. [globalString = ENV:REQUEST_URI = /index.php*]
    16. temp.PRINT.10 >
    17. temp.PRINT {
    18. 10 = TEXT
    19. 10.data = getIndpEnv:REQUEST_URI
    20. 10.wrap = |&type=98
    21. }
    22. [GLOBAL]

    Nun haben wir einen Link geschaffen den wir irgendwo auf der Seite unserer Wahl einbauen können, zb im Marker "DRUCKEN" (###DRUCKEN###) also nicht vergessen dies auchnoch an der richtigen stelle mit

    marks.DRUCKEN < temp.PRINT

    einzubauen!

    Als nächstes definieren wir noch "was ist eine Druckversion?".´

    Nun das erklären wir Typo folgendermaßen:

    1. print = PAGE
    2. print {
    3. typeNum = 98
    4. bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
    5.  
    6. 10 < styles.content.getLeft
    7. 20 < styles.content.get
    8. }

    Achtung! Dieser ganze Absatz darf nicht in irgendwelchen Klammern stehen (es ist ja ein Seitentype für sich alleine) UND er MUß im Haupttemplate stehen! (falls ihr mehrere habt)

    Toll ist auch das dies nicht nur für 1 Seite sondern für alle funktioniert ;) (das stimmt natürlich nur solange wie unser Inhalt ausschließlich in der Hauptspalte und der Linken zu finden ist ;) )

    So und nun... nein Spaß^^ das wars schon... einfach oder? (jaja das sagen sie alle ;)

    MFG Proximo


  • slechelmayr slechelma...
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    03. 04. 2006, 15:18

    Hi,

    ich hatte gerade ein Projekt, bei dem das ganze so nicht funktioniert hat. Problem war, dass simulateStaticDocuments so konfiguriert war, dass die PageID *nicht* nicht in der URL vorkommt (addTitle = 0)

    mit folgender Anpassung funktioniert es dann trotzdem wunderbar:
    [code]10.data = TSFE:id
    10.wrap = |.98.html[/code]
    statt
    [code]10.data = getIndpEnv:REQUEST_URI
    10.listNum.splitChar = .
    10.listNum = 1
    10.wrap = |.98.html[/code]

    Also sprich, die PageID statt REQUEST_URI verwenden.

    EDIT: ups.. habe gerade erst gesehen, dass der Thread schon sieben Seiten lang ist. Falls das schonmal gepostet wurde tut's mir leid fuer die Redundanz :D

  • gunther gunther
    Padawan
    0 x
    39 Beiträge
    0 Hilfreiche Beiträge
    10. 08. 2006, 22:34

    [b]Ergänzung bei der Verwendung von tt_news + simulateStaticDocuments:[/b]

    ich bin wirklich etwas spät dran aber mir hat das Ausgangsposting von Proximo sehr weitergeholfen und gefallen: keine extra Extension und kein seitenlagnes TS. Nur die tt_news wollten nicht so richtig.

    Ergänzen:

    [TS]#teil static

    20 = TEXT
    20.data = GPvar : tx_ttnews|tt_news
    20.wrap = ?&tx_ttnews[tt_news]=|
    20.stdWrap.htmlSpecialChars = 1
    20.required = 1

    #teil kein static

    temp.PRINT.20 >
    [/TS]

    Ganzes Listening:

    [TS]

    #printpage

    temp.PRINT= COA
    temp.PRINT {
    wrap = <a href="|" target="_blank">Seite drucken</a>

    # Diese Methode verwendet Typo wenn wir SimulateStaticHTML verwenden... sie fügt uns
    # den Type in die URL ein, und zwar so das SimulateStaticHTML damit zurechkommt
    10 = TEXT
    10.data = getIndpEnv:REQUEST_URI
    10.listNum.splitChar = .
    10.listNum = 1
    10.wrap = |.98.html

    20 = TEXT
    20.data = GPvar : tx_ttnews|tt_news
    20.wrap = ?&tx_ttnews[tt_news]=|
    20.stdWrap.htmlSpecialChars = 1
    20.required = 1

    }

    # Diese Methode verwendet Typo wenn wir kein SimulateStaticHTML verwenden
    [globalString = ENV:REQUEST_URI = /index.php*]
    temp.PRINT.10 >
    temp.PRINT.20 >
    temp.PRINT {
    10 = TEXT
    10.data = getIndpEnv:REQUEST_URI
    10.wrap = |&type=98
    }
    [GLOBAL]

    [/TS]

    grüße gunther

  • RIBS RIBS
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    30. 08. 2006, 10:54

    Hallo

    Ich bin einiger Zeit, für eine mit Typo3 generierte Website für jede Seite eine
    Druckversion zu erstellen. Diese Beiträge haben mir schon ein Stückchen weitergebracht, aber noch nicht zum Ziel. Ich habe es mit der Fassung versucht, wie sie von Proximo vorgeschlagen wird. Nur das ich statt

    wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>

    wrap = <a href="index.php?id=|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>

    verwende, weil sonst immer eine Seite aufgerufen wurde, die nicht vorhanden ist:

    http://localhost/quickstart/.98.html

    Ansonsten bin ich aber vorgegangen, wie vorgeschlagen. Mein Problem habe ist, dass ich immer nur die Startseite als Druckansicht aufgerufen bekomme und nicht die aktuelle Seite.

    Wo könnte hier das Problem liegen?

    Vielen Dank für einen Ratschlag im voraus

    RIBS

  • slack1982 slack1982
    R2-D2
    0 x
    88 Beiträge
    0 Hilfreiche Beiträge
    08. 01. 2007, 10:34

    Hallo,

    möchte mich mal hier "nahtlos" einhängen und folgendes fragen:
    Funktioniert die "Druckverion" bei euch auch im IE7?
    Habe alle erforderliche Punkte gemacht und es klappt auch im Firefox.

    PS: den TS-Code erspare ich mir an dieser Stelle, weil er genau so ist, wie auf der ersten Seite.

    Danke im Voraus

    Gruß Alex

    Was ich soeben auch feststellen musste ist, dass er mir sporadisch einfach die exakt gleiche Seite aufruft ohne das Fenster "Drucken" anzubieten?!!
    Vielleicht könnt ihr mir helfen.