Template Voila Tutorial German
Transcription
Template Voila Tutorial German
Template Voila Tutorial German Extension Key: doc_tv_de Copyright 20002002, Andreas Jonderko, <[email protected]> This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 a GNU/GPL CMS/Framework available from www.typo3.com Table of Contents Template Voila Tutorial German................1 Einführung......................................................................1 Was macht es?...........................................................1 Erweiterung................................................................1 Installation......................................................................2 Seitenstruktur.............................................................2 Erweiterungen............................................................2 Sysordner...................................................................3 Allgemeine Datensatzsammlung:...............................4 Erstellen des TypoScript Template Eintrag.................5 Erstellen des “Template Object”.................................7 Datenstruktur (DS) und Templateobjekt (TO)..............8 Datenstruktur (DS) erzeugen......................................9 Inhaltskontainer........................................................10 Hauptmenü...............................................................11 Untermenü links........................................................11 Speichern der Datenstruktur und des Templateobjektes.....................................................11 Inhalt anlegen...............................................................15 Die Menüs.....................................................................15 Hauptmenu...............................................................15 Untermenu................................................................16 Bekannte Probleme......................................................16 ToDo list.......................................................................16 Einführung Was macht es? Dieses Tutorial beschäftigt sich mit der Installation und der Nutzung von der Erweiterung TemplateVoila. Ich gehe davon aus, das Sie Typo3 in der Deutschen Sprache nutzen. Ansonsten empfehle ich Ihnen die Erweiterung German language pack (csh_de) zu installieren. Man kann dieses Tutorial als eine Erweiterung von dem Dokument “Futuristic Template Building“ sehen. Erweiterung Diese Erweiterung besteht aus einer Dokumentation (manual.sxw) und einem Template. (Ordner templates) Wenn Sie diese Erweiterung über den Extension Manager installieren, vergessen Sie nicht das Häckchen bei Include "doc/manual.sxw", if any Template Voila Tutorial German 1 zu machen. Nach der Installation ist die Erweiterung in folgendem Ordner zu erreichen: [....]/typo3conf/ext/doc_tv_de Template Voila Tutorial German 2 Installation Für die Installation benötigen wir eine bereits bestehende Seitenstruktur und zusätzliche Erweiterungen. Seitenstruktur Erstellen Sie zuerst folgende Seitenstruktur in Typo3: Erweiterungen Diese Erweiterungen müssen im Extension Repository installieren werden um TemplateVoila richtig zu nutzen: Gehen Sie zum Ext Manager und wählen Sie im Menü: Import extensions from online repository Danach geben Sie einfach die nachfolgend aufgelisteten Erweirungsnamen in das Look up Feld ein. css_styled_content static_info_tables templavoila Template Voila Tutorial German 3 Bei TemplateVoila müssen Sie noch zusätzlich den “Enable Page Template Selector” einschalten. Template Voila Tutorial German 4 Nachdem Sie die Erweiterungen installiert und den gesamten Cache geleert haben, sollten Sie dieses Web Menü sehen. Falls Sie es nicht in dieser Form sehen, dann loggen Sie sich neu ein, oder leeren Sie den Cache erneut. Sysordner Gehen Sie auf WEB>SEITE und klicken Sie das Symbol von RootElement an. In dem auftauchendem Menü wählen Sie Neu aus. Es spielt keine Rolle wo man diese neuerstellte Seite platziert. Es ist nur wichtig das man sie später richtig verbindet. Erstellen Sie nun eine neue Seite und definieren Sie sie als einen SysOrdner. Diese Seite speichert die TemplateVoila Daten. Die Seitenstruktur sollte so aussehen: Template Voila Tutorial German 5 Allgemeine Datensatzsammlung: Wir müssen jetzt unserer Wurzelseite beibringen wo sich ihre gewünschten Templatedateien befinden. Dazu gehen Sie auf WEB>SEITE und auf das “RootElement “. Drücken Sie auf der rechten Seite auf den Stift um den Seitenheader zu bearbeiten. Weiter unten finden die Allgemeine Datensatzsammlung, mir der wir den Speicherort von TV definieren werden : Wählen Sie den gerade erstellten SysOrdner aus (TemplateVoila). Template Voila Tutorial German 6 Erstellen des TypoScript Template Eintrag Als nächstes müssen wir einen “Wurzel Template Eintrag” erstellen. Dieser Templateeintrag kann für alle Unterseiten genutzt werden. Man kann auch andere Templateeinträge erstellen, und somit verschiede Designs auf anderen Seiten anbieten. Markieren Sie hierzu die Seite “RootElement” und gehen Sie im Menü auf Web> Template Auf der rechten Seite erscheint eine Meldung das noch kein Template existiert. Klicken Sie auf “Create template for a new site” um ein Template zu erstellen. Im Setup befindent sich bereits 6 Zeilen, die wir ändern müssen. Drücken Sie auf den Stift links neben dem Setup. Template Voila Tutorial German 7 Hier ändern wir den Standard SETUPCODE. Standard: # Default PAGE object: page = PAGE page.10 = TEXT page.10.value = HELLO WORLD! Ändern wir zu: # Default PAGE object: page = PAGE page.typeNum = 0 page.10 = USER page.10.userFunc = tx_templavoila_pi1>main_page Somit bringen wir Typo3 bei, dass unser Template über die Erweiterung TemplateVoila gesteuert wird. Wir müssen jetzt noch die Erweiterung CSS Styled Content in unser Template einbinden indem wir auf “Click here to edit whole template record” klicken. Im Feld “Include static (from extension)” fügen Sie das Objekt CSS Styled Content hinzu und speichern ab. Template Voila Tutorial German 8 Erstellen des “Template Object” Bevor wir das Template Objekt erstellen können, sollten sie die Templatedateien bereits irgendwo in das Verzeichniss Fileadmin/”irgendwo hier” kopiert haben. Wenn Sie diese Erweiterung installieren werden die Dateien in ihre lokale Typo3 Installation in das Verzeichniss /typo3conf/ext/doc_tv_de kopiert. In unserem Beispiel kopieren wir den templates Ordner: /typo3conf/ext/doc_tv_de/templates nach /fileadmin/templates Gehen Sie über Datei>Dateiliste> dann auf das Verzeichnis fileadmin/templates/ Auf der rechten Seite sehen Sie die Auflistung: meinTemplate.html style.css Gehen sie mit der Maus auf das HTML Symbol und Klicken Sie darauf. Es erscheint ein Menü in dem Sie auf TemplateVoila klicken müssen. Um ihr Template schonmal zu begutachten können Sie auf Preview klicken. Template Voila Tutorial German 9 In diesem Menü erstellen wir eine Datenstruktur (Data Structure > DS) und diese Datenstruktur verbinden wir zusammen mit den HTML Elementen und speichern diese Informationen in einem Templateobjekt (Template Object > TO). Datenstruktur (DS) und Templateobjekt (TO) Sie können mehr technische Informationen über Datenstrukturen und Templateobjekte in dem Dokument “TYPO3 Core API” und in der Dokumentation von TemplateVoila nachlesen. Um eine kurzen Überblick über die Unterschiede zwischen DS und TO zu erklären: • Eine Datenstruktur (DS) sagt welche “Felder” (fields) wir mit dem HTML Template verbinden können. • Ein Templateobjekt (TO) sagt welche HTML Elemente zu welchen “Feldern” (fields) verbunden sind. Mit diesen Definitionen sehen wir das ein TO immer auf ein DS verweist. Dieser “sagt” dem TO, welche Felder wie und in welcher Hierarchie verbunden sind. Das bedeutet auch das Sie mehrere TOs haben können, die auf das gleiche DS verweisen > mehrere Templates für die gleichen Daten. Template Voila Tutorial German 10 Datenstruktur (DS) erzeugen In unserem Tutorial werden brauchen wir folgende Felder: • ROOT für die Definition der gesamten Seite – und das ist der <body> Tag. • Hauptmenu: Wir definieren einen Kontainer für das Menü oben. Stufe 1 • Untermenü: Wir definieren einen Kontainer für das Unternenü links. Stufe 2 und 3. • Inhalt: Wir definieren einen Inhaltskontainter. Diese Datenstrukturen können auch selbst geschrieben werden wenn Sie die Syntax der DS XML, <T3DataStructure> kennen. Der Vorteil von TemplateVoila ist, dass wir mit einfachen Klicks und genau das ersparen können, und kinderleicht eine Datenstruktur bzw. ein Templateobjekt erstellen können. Als erstes verbinden (map) wir das Element ROOT mit dem <body> Tag. Drücken Sie auf den Knopf MAP (verbinden) und markieren Sie in der Vorschau den <body> Tag. Danach werden Sie gefragt wie das Element verbunden werden soll. • INNER (Exclude tag) Bedeutet: der jeweils ausgewählte Tag (in unserem Fall gerade der <body> Tag) stehen gelassen wird und das Element innerhalb des <body> Tags verbunden werden soll. • OUTER (Include tag) Bedeutet genau das umgekehrete, der aktuell ausgewählte Tag (in unserem Fall <body>) wir nicht mit in das Element aufgenommen. Unser Element würde vor dem <body'> beginnen und nach dem <body> enden. (Sehr schlecht bei dem <body> Tag ) :) So wir lassen ihn auf INNER und drücken SET. • TIP: drücken Sie immer auf Preview (Vorschau) um ihre Änderung zu überprüfen. Template Voila Tutorial German 11 Template Voila Tutorial German 12 Inhaltskontainer Gehen Sie in das Feld: [Enter new fieldname] und geben Sie einen Namen für den Inhalt an. Eine gute Angewohnheit ist es immer den Präfix field_ zu verwenden. In unserem Fall geben wir field_inhalt an und drücken ADD. In diesem Untermenü definieren Sie den Feldtypen, Titel etc. an. • Titel: Der Titel des Elements • Mapping instructions: Anweisung wie man das Feld verbindet. • Sample Data: Beispielinhalt, nachdem Sie das Element verbunden haben, sehen Sie diesen Inhalt in dem Element. • Editing Type: Der Typ, in unserem Fall wählen wir “Content Elements” für den Inhalt an. • [Advanced Mapping rules: Hier kann man die erweiterten Einstellungen für das Verbinden machen. Wie z.b. *:inner würde dem Element nur die Möglichkeit geben als INNER verbunden zu werden. Für dieses Tutorial ist diese Einstellunge nicht wichtig. Drücken Sie auf ADD um das Element zu erstellen. Wir müssen jetzt nur noch das Feld mit dem HTML verbinden. Wir drücken wieder auf MAP und markieren die DIVBox: Setzen Sie wieder das Element auf INNER und drücken SET. Wir wollen auch in diesem Fall das der Inhalt, der später reinkommt, IN der DIVBox landet und nicht ausserhalb. • TIP: drücken Sie immer auf Preview (Vorschau) um ihre Änderung zu überprüfen. Sie sehen nun, das der Inhalt des Templates gegen den Inhalt [Hier kommt der Inhalt] ausgetauscht wurde. Template Voila Tutorial German 13 Hauptmenü Das Hauptmenü wird im Prinzip genau so erstellt wie das Inhaltselement, mit dem Unterschied das wir den “Editing Type” auf TypoScript Object Path setzen. 1. field_Hauptmenu > ADD 2. Title: Hauptmenu 1. Sample Data: [Hier kommt das Hauptmenu] 2. Editing Type: TypoScript Object Path Drücken Sie auf ADD. Es erscheint ein neues Feld “Object Path”: das ist der Name des Typoscipt Objektes welches uns unser Menü zaubern soll. Tragen Sie dort lib.HauptMenu ein und drücken auf UPDATE. 3. Nun verbinden wir das Element wieder mit unserer DIVBox. 1. Drücken Sie auf MAP, markieren Sie die <div> Box für das Hauptmenu und setzen das Element wieder auf INNER. • TIP: Halten Sie ihre Maus länger über den Tags, somit wird die Bezeichnung bzw. die ID sichtbar, oder schalten Sie von Mode: Exploded Visual auf Mode: HTML Source um den Quellcode direkt zu markieren. Untermenü links Wiederholen Sie die Schritte vom “Hauptmenu”. Ändern Sie nur den Feldnamen auf field_submenu und den Object Path auf lib.SubMenu. Beim verbinden, markieren Sie das obere <UL> Element. (<ul id="Navigation">) und setzen es wieder auf INNER. Speichern der Datenstruktur und des Templateobjektes Drücken Sie auf SAVE und Sie kommen zum folgenden Menü: Beim erstmaligen Erstellen des TO und DS tragen Sie den Titel sowie den Typ Page Template ein. Store in PID: Hier sollten Sie den SysOrdner auswählen wo das TO / DS gespeichert werden soll. Wenn Sie später Änderungen an Ihrem Template vornehmen, nutzen Sie den unteren Bereich um Ihr bereits bestehendes TO/DS zu aktualisieren > Vorsicht ist hier geboten, denn alle Änderungen die sie per Hand an dem TO / DS vorgenommen haben gehen dadurch verloren! Drücken Sie anschließend auf CREATE TO and DS um die Einträge zu erstellen. Sie sollten folgende Meldung bei Erfolg ganz oben sehen: Data Structure (uid 2) and Template Record (uid 2) was saved in PID "26" Template Voila Tutorial German 14 Sie können sich die Einträge anschauen indem Sie auf Web> Liste gehen und den SysOrdner TemplateVoila auswählen. Wenn Sie nun versuche sich die Seite (über Web>Anzeigen > RootElement Seite auswählen) anzuschauen bekommen Sie immer noch eine Fehlermeldung. Template Voila Tutorial German 15 Das liegt daran, das wir noch nicht das Template auf den Seiten ausgewählt haben. Gehen Sie nun auf Web>Seite>RootElement> Stift um den Seitenheader zu bearbeiten. Sie finden dort neue Felder: Wählen Sie bei beiden Feldern Ihr neuerstelltes Template aus und speichern Ihr Dokument ab. Es kommen 2 Neue Felder: Template Voila Tutorial German 16 Tragen Sie in allen 4 Feldern ihr Template ein und speichern das Dokument ab. Wenn Sie sich jetzt die Seite anschauen (Web>Anzeigen RootElement auswählen) wird zwar die Seite angezeigt, bloss ohne Formatierungen. Das Liegt daran das wir unsere CSS Datei (style.css) noch nicht eingebunden haben. Gehen Sie hierzu über Web>Liste TemplateVoila zu ihren Templateeinträgen. Drücken Sie auf das Symbol Templateobjekt TO und schliesslich auf TemplateVoila. Sie sehen den Bereich “Adding parts from HTML header” in dem man im <head> Bereich definierte Objekte/Tags einbinden kann. In unserem Fall befindet sich hier auch die CSS Datei für unsere Formatierungen. Markieren Sie alle 3 und drücken SAVE. ... und Voila die Seite sollte sich fast so wie auf dem Originaltemplate präsentieren. Uns fehlen nur noch die Menüs, aber als erstes fügen wir einen neuen DummyInhalt ein, um zu überprüfen ob er richtig dargestellt wird. Template Voila Tutorial German 17 Inhalt anlegen Wichtig: • Wenn Sie einen Inhalt erstellen, MÜSSEN Sie ihn über das Web>TV Seite Modul erstellen. Die herkömliche Methode (Web>Seite) wird Ihren Inhalt nicht anzeigen! Markieren Sie Ihre Seite z.b. (RootElement) und gehen Sie auf Web>TV Seite > Hier können Sie nun Ihren Inhalt erstellen. Des Weiteren finden Sie hier auch Übersetzungen etc. zu Ihrer Seite. Die Menüs Hauptmenu Die beiden Menüs die wir als TypoScript Object Path gesetz haben, müssen wir nun definieren. Klicken Sie ihr RootElement an, und gehen Sie auf Web> Template. Drücken Sie den Stift neben dem Setup an um den Templatequelltext zu bearbeiten. Das Hauptmenu lib.HauptMenu soll nur die Erste Ebene darstellen, und wurde extra auf das minimum runtergeschraubt. Das gestalten von Menüs ist ein riesiges Thema und würde dieses Tutorial sprengen. Schauen Sie sich dazu die Tutorials über Menüs im Internet an. Fügen Sie folgenden Quellcode vor der bereits existierenden PAGE Definition ein! ########################################### # Hauptmenu ########################################### lib.HauptMenu = HMENU # First level menuobject, textual lib.HauptMenu.1 = TMENU lib.HauptMenu.1 { # Normal state properties NO.allWrap = | NO.stdWrap.htmlSpecialChars = 1 # Enable active state and set properties: ACT = 1 ACT.stdWrap.htmlSpecialChars = 1 ACT.allWrap = | } Template Voila Tutorial German 18 Untermenu Das besondere an dem Untermenu ist, dass wir es über die CSS Datei steuern (<UL> und <LI>). Fügen Sie diesen Quellcode ebenfalls vor der PAGE Definition ein. ########################################### # Untermenu ########################################### lib.SubMenu = HMENU lib.SubMenu.entryLevel = 1 # First level menuobject, textual lib.SubMenu.1 = TMENU lib.SubMenu.1 { NO.linkWrap = | NO.doNotShowLink = 1 NO.before.cObject = TEXT NO.before.cObject.field = alias//uid NO.before.cObject.dataWrap = <LI><A href="?id=|" title="{field:title}"> NO.after.cObject = TEXT NO.after.cObject.field = nav_title//title NO.after.cObject.wrap = | </a></LI> NO.RO=1 ACT.linkWrap = | ACT.doNotShowLink = 1 ACT.before.cObject = TEXT ACT.before.cObject.field = alias//uid ACT.before.cObject.dataWrap = <LI><A href="?id=|" title="{field:title}"> ACT.after.cObject = TEXT ACT.after.cObject.field = nav_title//title ACT.after.cObject.wrap = | </a></LI> } #2nd Level ################################################################## # Second level menuobject, textual lib.SubMenu.2 = TMENU lib.SubMenu.2 { # Abstand zum nächsten Menüpunkt wrap = <ul> | </ul> NO.linkWrap = | NO.doNotShowLink = 1 NO.before.cObject = TEXT NO.before.cObject.field = alias//uid NO.before.cObject.dataWrap = <LI><A href="?id=|" title="{field:title}"> NO.after.cObject = TEXT NO.after.cObject.field = nav_title//title NO.after.cObject.wrap = | </a></LI> NO.RO=1 ACT.linkWrap = | ACT.doNotShowLink = 1 ACT.before.cObject = TEXT ACT.before.cObject.field = alias//uid ACT.before.cObject.dataWrap = <LI><A href="?id=|" title="{field:title}"> ACT.after.cObject = TEXT ACT.after.cObject.field = nav_title//title ACT.after.cObject.wrap = | </a></LI> } Bekannte Probleme Bis jetzt noch nicht :) ToDo list Das Tutorial ist “auf die schnelle” entstanden, so das sich Fehler einschleichen konnten. Ausserdem wurde bei dem Tutorial mehr Wert auf die Erklärung von TemplateVoila als auf die “schöne” Gestaltung gelegt. Vielleicht findet sich jemand der eine bessere HTML Vorlage und einen ausgeprägteren CSS Code für den Anfang liefert. Template Voila Tutorial German 19