Zum Inhalt springen

Lernen am Beispiel: Printversion

Erstellt am 13. Juli 2005 · 64 Antworten · letzte Antwort am 8. Januar 2007 · Seite 2 von 4

Tags: Tipp

Moeffz ·

Das hatte ich befürchtet. Es geht um so etwas wie Punkt drei bei folgendem Beitrag:

http://www.typo3forum.de/forum/list/list_post//27411/

Wenn Du es nicht über die Ordnerstruktur lösen willst, machst Du das so:
- Links auf "Liste", dann auf die Seite, auf der Dein Haupttemplate (TS) liegt (meist der globus). Dann steht da auch die Rubrik "Template", in der Dein Template (TS) steht (Sonst bist Du falsch.) Dort stehen vielleicht aber auch noch mehr Templates (TS). Steht hier Dein Print-Template (TS) - nicht das Printtemplate (HTML), das wäre ja Blödsinn.
- Das Printtemplate (TS) kannst Du hier einfügen, indem Du den Button "Neuen Datensatz nach diesem anlegen" anklickst. Als Namen gibst Du meintewegen Print ein und als Setup den Code von Proximo (temp.Print=COA usw.). Speichern.
- Dann gehst Du in der Listenansicht auf das Bearbeitensymbol Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template". Ein Klick auf das Print und es steht in der Liste.
- Im Feld "Setup" Deines Maintemplates fügst Du zu dem TypoScript-Teil Deiner normalen Seite die Markerzuweisung hinzu (marks.DRUCKEN < temp.PRINT). Was passiert denn da? Der Marker ###DRUCKEN### wird angesprochen. Ihm wird der temp.PRINT-Teil zugewiesen. Den haben wir in einem anderen Template (daher das temp), welches wir einen Schritt zuvor als Basis-Template eingebunden haben.

- Ganz an das Ende außerhalb jeder Klammern fügst Du außerdem den Teil (print = PAGE - vgl. proximo-Code) hinzu.

Folgendes beachten:
- In Template(HTML) Deiner normalen Seite sollte der Marker "###DRUCKEN###" vorhanden sein.
- Nach dem Code von proximo benötigst Du keine eigene html-Vorlage für Deine Druckausgabe. Es wird automatisch vom Inhalt die linke Spalte sowie der normale Content übernommen (Ich lasse mich hier gerne berichtigen).

Dieses verteilen des Codes auf mehrere Templates(TS) ist elementar, wenn Du nicht im Code ersticken willst. Wenn Du das bisher noch nicht gemacht hast, hol' es nach und lies dazu, was Du finden kannst (Ist im Buch der Open Source Press sehr gut beschrieben.).

Amelia ·

@Proximo:

Mmhhh, also ich habe mir den Template-Analyzer angeguckt und danach war das die einzige Erklärung für mich. Wenn die Print-Fkt. bei mir ganz unten steht und ich vorher aber schon den Marker zuweise, funktioniert es nämlich nicht! Definiere ich die Funktion aber vorher (was ich auch logisch finde, weil nur dann hat er ja auch was zuzuweisen), dann klappt es alles wunderbar! #paralyzed#

Okay also das CSS bekomme ich included! Das klappt! 8-)
Aber wie schaffe ich es, dass er auch das richtige HTML-Template benutzt !? :/ Muss ich das über eine extra Seite machen, die ich anlege!?

Proximo ·

Danke ich brauch keine Hilfe bei der Ordnung meines TS-Codes #giggle# , ich habe darüber gerade ein Tutorial geschrieben *lol*

#27411

Das mit den Templates stimmt nur halb... meine Lösung war eine Lösung ohne Templates... einfach eine Leere Seite völlig ohne CODE oder Html-Template (ja genau garkeins)!

Ich weiß das viele Programmierer dazu neigen irgendwelche Templates in der Druckversion zu verwenden, aber genau das ist meistens der Fehler! Wenn jemand eine Seite ausdrucken will will er genau das was er da sieht... und zwar NUR den Text der informativ ist (meistens der in der Hauptspalte oder in mehrere aufgeteilt wenn nötig und dann untereinander oder per wrap nebeneinander)

Auf der Ausgedruckten Seite steht links oben der Titel der Webseite, Rechts oben der Link und auf der Seite in der Mitte der Informative Text der Seite!

Wenn man noch unbedingt Logos möchte, bindet diese mit einem netten COA ein und zwar als simples "Element". In diesem Fall ist 5, auf den Screen, die Beschreibung für den gesammten Inhalt. Eingebunden habe ich dabei noch das Firmenlogo in der Version mit weißem Hintergrund (auf Wunsch der Firma)

MFG Proximo

Amelia ·

@Moeffz:

Dann gehst Du in der Listenansicht auf das Bearbeitensymbol Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template". Ein Klick auf das Print und es steht in der Liste.

Ich kann es nicht finden:
Bild: 666kb.com/…/10lnvf2o0t6v4.jpg

Nach dem Code von proximo benötigst Du keine eigene html-Vorlage für Deine Druckausgabe. Es wird automatisch vom Inhalt die linke Spalte sowie der normale Content übernommen.

Ja das ist ja okay, nur möchte ich das trotzdem gern in meiner eigenen HTML-Vorlage haben ! #paralyzed#

Amelia ·

@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 ·

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 ·

Ok probieren wirs 😉

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

print.10 = TEMPLATE
print.10 { 
template = FILE 
template.file = fileadmin/xyz.html 
workOnSubpart = DOKUMENT 
subparts.CONTENT < styles.content.get 
}

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 ·

@Moeffz:

Dann gehst Du in der Listenansicht auf das Bearbeitensymbol 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)

Wie 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 ·

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

Bei dir steht irgendwo sowas wie

print {
10 < styles.content.get
}

um ein Logo hinzuzufügen:

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

So war das nämlich eigendlich gedacht...

MFG Proximo

EDIT: Ich sagte oben das muß man NICHT 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 ·

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 ·
Amelia schrieb

den Text nur 561 px breit (nicht 100%)

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 ·

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 ·

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

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

wird nun zu:

   print {
      10 = TEMPLATE
      10 {
      template = FILE
      template.file = fileadmin/xyz.html
      workOnSubpart = DOKUMENT
      subparts.LOGO = IMAGE
      subparts.LOGO.file = fileadmin/.../images/logo.gif
      subparts.CONTENT < styles.content.get
      } 
   }

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!

Moeffz ·

Ein Rechtschreibfehler. Da ist ein 'h' zu viel.

Der Rest steht dann in Modern Template Building Teil 1. Grob gesagt macht der Dir aus Deiner Designvorlage das HTML-Template, wenn ich es richtig verstanden habe.

Amelia ·

Sagt mal, wie bekomm ich denn in die Druckseite (Vorschau)noch einen (Druck-)Button rein?

Oder: Wie kann ich denn die Seite 10.wrap=|.98.html ansprechen?

Proximo ·

?! Druckbutton? Ich weiß das klingt jetzt ungünstig (wer verwendet schon gerne js-Funktionen...) aber binde doch einfach folgendes in deinen BODY-TAG ein:

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

Simple aber effektiv... deine Kunden bekommen ein schönes Fenster das sie auffordert einen Drucker, bzw Seitenanzahl @ Co zu wählen... sollte der Kunde (was-weiß-ich-warum aber man weiß bei deinen Kunden ja nie 😉 ) nun doch nicht drucken wollen kann er hier den Druckvorgang sogar noch abbrechen!

MFG Proximo

Amelia ·

Okay ich probier das mal aus! Ich eprsönlich finde js auch nicht schön, aber der Kunde mags es so haben...

PS: Wie schreib ich das im CSS?

adventuremaker ·

Sorry, aber ohne jetzt persönlich werden zu wollen:
Hast du auch nur eine minimale Vorstellung von dem, was du machst?
Du scheinst echt die grundlegensten Techniken nicht verstanden zu haben. Tut mir echt leid, aber soviel Engagement und Einarbeitung kann man denke ich schon erwarten, dass man wenigsten die Unterschiede zwischen JavaScript und CSS weiß, bevor man sich mit Content-Management befasst und das sogar noch "Kunden" zumutet!
Korrigiert mich, wenn ich das flasch sehe, aber ich denke nicht, dass dieses Forum für solche _trivialen_ Dinge gedacht ist.

Nichts gegen Anfänger, bin selbst einer. Aber sowas...

Aber echt!

Proximo ·

Ich hab mich zwar auch grad gewundert, aber um das abschließen zu können... Probiers doch mal mit TS im bestehenden Druck-TS also bei:

print = PAGE
print {
...
}

und schreib

print = PAGE
print {
bodyTag =<body onLoad="javascript:window.print()">
}

MFG Proximo