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


  • Amelia Amelia
    Jedi-Meister
    0 x
    327 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 12:20

    @Proximo:

    Ja aber ich möchte doch zumindest die Strukturierung der Seite beibehlaten.
    Es müssen ja keine Bild dabei sein - sollen es auch nicht in der Druckversion - das ist richtig!
    Aber das Textfeld soll in meinem Fall nicht breiter als 561px sein und 50 px entfernt vom linken Rand stehen und genau dadrüber soll das Logo positioniert sein. Wie soll ich das denn sonst hinbekommen, wenn nich über ein HTMl-Template?

    Bin doch noch ein kleines Newbie - noch nix wissen tun, aber lernwillig sein! ;o)

  • Moeffz Moeffz
    Jedi-Meister
    0 x
    431 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 12:24

    1. Listenansicht (links: Web -> Liste)
    2. auf den Seitentitel des root _nicht_ das Symbol daneben klicken - dann erscheint
    3. rechts eine Liste der Elemente, die sich auf dieser Seite befinden - da ist auch eine Liste der Templates, der Backenduser (z.B. der admins). Das müßtest Du doch kennen.

    Ich weiß nicht, wie Du Dich in die Ansicht zum Bearbeiten der Seite verirrt hast.

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 12:31

    Ok probieren wirs ;)

    Das is die ii-ekel-Ausführung einer Templateverarbeitung *g* aber sie ist sehr kurz:

    1. print.10 = TEMPLATE
    2. print.10 {
    3. template = FILE
    4. template.file = fileadmin/xyz.html
    5. workOnSubpart = DOKUMENT
    6. subparts.CONTENT < styles.content.get
    7. }

    Probleme:

    - SO nicht auslagerbar und bei diesem Beispiel auch nicht empfehlenswert
    - Marker- bzw Subparteinsatz erforderlich
    - workOnSubpart-Subparts müssen manuell platziert werden weil kein Autopharser dazwischensteht!
    - Verführt zur Überausführung einer Druckfunktion

    EDIT: Auch mit Wraps ist viel lösbar, auch ein kurzes Typotemplate wär vielleicht besser... (sowas wie die Standardtemplates die in Typo integriert sind... "glück" und co)

    MFG Proximo

    EDIT2: Oben ist nachzulesen wie das geht... oft reicht schon ein "5.wrap = <table..." (vorrausgesetzt 5 ist der gesammte inhalt der Seite)

  • Amelia Amelia
    Jedi-Meister
    0 x
    327 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 12:44

    @Moeffz:

    Dann gehst Du in der Listenansicht auf das [b]Bearbeitensymbol[/b] Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template".

    --> Also hab ich das getan!

    @Proximo:
    Also müsste ich das dann doch komplett auslagern !? *arg* das würd ich auch gern verhindern :/

    EDIT2: ... "5.wrap = <table..." (vorrausgesetzt 5 ist der gesammte inhalt der Seite)
    meinst Du das "ist der gesamte Inhalt der Seite" !?

    Jetzt aber erstmal STOP: Ich seh jetzt gar nicth mehr durch! Muss mich hier erstmal sortieren!!! :o

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 12:52

    Versuch doch einfach mal die ganz einfache variante und vergiss das ganze andere komplizierte:

    Bei dir steht irgendwo sowas wie

    1. print {
    2. 10 < styles.content.get
    3. }

    um ein Logo hinzuzufügen:
    1. print {
    2. 5 = IMAGE
    3. 5.file = fileadmin/.../images/logo.gif
    4. 10 < styles.content.get
    5. }

    So war das nämlich eigendlich gedacht...

    MFG Proximo

    EDIT: Ich sagte oben das muß man [u]NICHT[/u] auslagern.. aber vergiss das einfach, das ist BSP wie man eine HTML-Quelle (also ein HTML-Template) einbindet... ziemlich sinnlos für ne Druckversion...

  • Amelia Amelia
    Jedi-Meister
    0 x
    327 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 13:08

    Ja das ist schon klar! Aber dann habe ich doch die Sachen alle noch nicht richtig positioniert! Also das Logo linksbüdnig (steht jetzt mittig) den Text nur 561 px breit (nicht 100%) und die Überschriften drüber (nicht mittig!)!

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    18. 07. 2005, 13:11

    [quote="Amelia"]
    den Text nur 561 px breit (nicht 100%)[/quote]
    etwas OT, muss aber sein!
    genau DAS soll bei einer druckversion aber nicht sein! genau da will ich den text auf 100$ am papier und nicht so ein kleines rändchen!

  • Amelia Amelia
    Jedi-Meister
    0 x
    327 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2005, 13:24

    Ja schön, dass Du das soll willst! Mir wäre das auch so recht, aber der Kunde möchte das anders! Also soll es so sein ! Gell :o)

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

    Du hast zwar komische Kunden (vorallem welche die Papier und Druckfarbe in Mengen haben) aber:

    1. print {
    2. 5 = IMAGE
    3. 5.file = fileadmin/.../images/logo.gif
    4. 10 < styles.content.get
    5. }

    wird nun zu:

    1. print {
    2. 10 = TEMPLATE
    3. 10 {
    4. template = FILE
    5. template.file = fileadmin/xyz.html
    6. workOnSubpart = DOKUMENT
    7. subparts.LOGO = IMAGE
    8. subparts.LOGO.file = fileadmin/.../images/logo.gif
    9. subparts.CONTENT < styles.content.get
    10. }
    11. }

    Aber vergiss nicht:

    Du hast nun keinen Autopharser mehr der dir das "workOnSubpart" übernimmt... also mußt du manuell welche einfügen! (und in diesem Fall heißt dieser Subpart "<!-- ###DOKUMENT###--><!-- ###DOKUMENT###-->", in diesen kommt dann der Content wie Logo und CO rein der durch Subparts oder Marker definiert wird! Jeder Content, nicht so wie der subpart "CONTENT" (dazu gehört alles woran Typo pfuschen darf, alles andere ist "das HTML-Template"... unveränderbar von Typo)

    Nun lies dir nochmal genau durch was da oben steht... sooo und jetzt mach es!

    MFG Proximo ;)

    PS: Natürlich löst das nicht dein Problem, aber nun kannst du "alles was du willst" im Template "fileadmin/xyz.html", oder wie es sonst heißt, definieren!