TYPO3 Dynamisierung mit TemplaVoila – Teil 3
In dem ersten Teil dieser Serie haben wir eine HTML-Vorlage mittels des TemplaVoila Wizards dynamisert. Im zweiten Teil haben wir den Header und die Sidebar der Vorlage gemappt.
In dem heutigen Teil der Serie “Dynamisierung mit TemplaVoila” beschäftigen wir uns damit, den Header unseres Design per TypoScript zu setzen. Weiterhin wollen wir uns für die Sidebar ein flexibles Contentelement erstellen.
Beginnen wir mit dem TypoScript für den Header. In der HTML-Vorlage wird der Header wie folgt erzeugt:
<h1><a href="#">Center Stage</a></h1>
<h2><a href="http://www.freecsstemplates.org/">By Free CSS Templates</a></h2>
Wir wollen, dass die erste Überschrift “TV Demo” lautet und die zweite Überschrift aus dem aktuellen Seitentitel generiert wird. Das TypoScript dazu sieht wie folgt aus:
1 lib.header = COA
2 lib.header.10 = HTML
3 lib.header.10.value = <h1><a href="#">TV Demo</a></h1>
4 lib.header.20 = TEXT
5 lib.header.20.data = page:title
6 lib.header.20.wrap = <h2><a href="#"> | </a></h2>
In Zeile eins erzeugen wir das Objekt “lib.header” und weisen ihm die Klasse “COA” zu. Diese Klasse dient dazu, mehrere Unterobjekte in einem Objekt zusammen zu fassen.
In Zeile 2 und 3 erzeugen wir ein Unterobjekt “lib.header.10″, dass uns die erste Zeile des Headers liefert. Wir benutzen dazu die Klasse “HTML” mit der Eigenschaft “value”.
In Zeile 4 erzeugen wir ein weiteres Unterobjekt “lib.header.20″ der Klasse “TEXT“.
In Zeile 5 benutzen wir die Eigenschaft “stdWrap” dieser Klasse, um den Seitentitel der aktuellen Seite auszulesen.
In Zeile 6 wrappen wir den Seitentitel mit den nötigen HTML-Tags die in der Vorlage verwendet werden.
Dieses TypoScript fügen wir in unser Main template ein. Nun sollte der Header dynamisch ausgegeben werden.
Als nächstes wollen wir die Sidebar mit Inhalten füllen können. Normale Inhaltselemente können wir schon für diese Stelle eingeben. Allerdings sind die Elemente der Vorlage etwas komplizierter aufgebaut:
<div class="boxed">
<h2 class="title">News & Events</h2>
<div class="content">
Der Content der Box
</div>
</div>
Eine Box für die Rechte Seite besteht immer aus einem umfassenden “div”, das die Klasse “boxed” trägt.
Die Überschrift der Box ist von einem “h2″ mit der Klasse “title” umschlossen.
Der eigentliche Inhalt der Box wird von einem “div” mit der Klasse “content” umfasst.
Wir werden dieses Konstrukt nun nachbauen. Der Redakteur kann dann in einem neuen Content Element eine Überschrift für die Box ausfüllen und ein Content Element in die Box einfügen.
Im ersten Schritt erzeugen wir unter “fileadmin/templates” eine Datei contentelemente.html. In dieser Datei speichern wir den HTML-Code für die Box von oben.
Danach mappen wir dieses Contentelement mittels TemplaVoila.
Nun können wir in die rechte Spalte ein Inhaltselement unseres selbst erstellten Typs einfügen:
Ich hoffen, Ihr seid nun in der Lage, weitere Elemente selber zu mappen.
Die Einführung in TemplaVoila ist damit beendet. Ich werde sicherlich weiter Artikel zu dem Thema veröffentlichen. Schaut einfach mal wieder rein!
Popularity: 8%
Werbung
2007-07-13 - 9.21 pm
yigged it ;-)
so weit hab ichs mit meinem TV-Tut nicht getrieben, bin nicht dazu gekommen. Aber gut, da ich nicht auf redundanzen stehe, werd ichs auch nicht nachholen ;-)
Dafür gibt es bei mir demnächst eine Glossar/Lexikon Extension und vermutlich Beschreibung wie s zu bedienen ist und was ich da genau gemacht hab… muss jetzt nur noch den letzten Schliff bekommen und nochmal ordentlich durchgetestet werden.
Ansonsten mal wieder ein Top Artikel von dir – weiter so!
Gruß
Alex
2007-07-13 - 9.25 pm
Ich find es gut, dass wir uns da nicht in die Quere kommen. Ich hatte angefangen mit den TypoScript – Tutorials und wollte TemplaVoila machen als ich Deinen Artikel gesehen habe.
Auf Deinen Extension – Artikel bin ich schon gespannt!
Danke für das Lob!
2007-07-13 - 10.16 pm
Ach was – im Internet gibts eh jede Information mindestens 20 mal, wenn wir mal über das gleiche Thema schreiben, werden wir das auch aushalten, oder?
Aber es nutzt ja nix, wenn ich mir die Mühe mache, das in nen Artikel zu fassen, wenns schon einen guten gibt – und das nachher auch noch so aussieht, als hätte ich nen Teil kopiert, weil ich den Artikel ja gelesen und demnach mit sicherheit einen Teil mit rein nehmen würde…
Aber ich werd meinem Artikel mal nen Link zu dir antun.
2007-07-13 - 10.21 pm
Gern! Ich werde Deinen auch verlinken! Wenn DU nen Idee hats für nen geeigenten Artikel – sag bescheid!
2007-10-10 - 6.36 pm
hi…
ich war grad im benutzer administrator…
iwie hat sich bei der erstellung des templates in typo3 ein backend benutzer erstellt….der name dieses users ist der name das erstellers mit einer angehängten “0″ (null)
vielleicht kann mir das ja jemand erklären….
danke schonmal
lg
2007-10-10 - 6.39 pm
TV legt mit dem Assistenten einen BE-User an… 1. Schrit im Assistenten – sieht man auch im Video… Du hast “admin” eingegeben, richtig? Da es den schon gab, hat TYPO3 einen weiteren angelegt und den Namen mit einer 0 ergänzt, damit der alte Admin nicht überschrieben wird.
2007-10-10 - 7.40 pm
hmm…
kannst du mir noch den sinn dieses users erklären
(bin da immer ein bisschen komisch ;-))
n viel größeres problem hab ich aber auch noch…
ich erstelle 2 templates mit der selben domain als url angabe…
TV hängt auch eine null an….
soweit schön und gut aber die null wird auch übernommen….
d.h. die url zur seite wurde mit einer null ergänzt…
das ist recht unpraktisch wenn ich mehrere templates benutze….
kann man das irgendwie umgehen?
danke schon mal…
auch für den ganzen support…
lg
2007-10-25 - 2.16 pm
Ich habe da mal ein Problem mit deiner Erklärung:
folgendes passiert: wenn ich bei der HTML-Datei “contentelemente.html” auf TV klicke kommt nicht wie im Video gezeigt “CO Root” allein mit den Rules: (ALL) sondern das TV von der Hauptseite mit vielen Ausrufezeichen und den Rules: body. woran kann das liegen. ich blick es grad nicht .. .hilfe wäre toll … danke schon mal
2007-10-25 - 4.11 pm
Hast DU viuelleicht was anderes zwischendurch gemapped? TV merkt sich das Mapping und zeigt es wieder an. EInfach mal unten auf “Clear all” oder so ähnlich klicken… Dann kannst DU wieder von vorne mappen…
2007-11-28 - 4.51 pm
Ich habe da auch ein Problem. Ich habe es so erstellt wie du es hier vorgemacht hast, jedoch bekomme ich unter Web -> Seite(TV) die Contentbereiche nicht angezeigt und ich weiß nicht woran es liegt.
Hat einer eine Idee?
2008-02-03 - 7.38 pm
Hiho, thx für die Beiträge :)
Aber könntest du die videos neu uppen? Youtube meldet mir, dass die vids nimmer available sind :(
Grüßle
Jaroldinio
2008-02-03 - 7.42 pm
Freaky, entweder ist Thomas arg schnell oder ich weiß nicht was – bei mir funzt alles…
2008-02-03 - 7.44 pm
… wahrscheinlich nur ein youtube Schluckauf… Ich hab nix gemacht…
2008-10-28 - 12.12 pm
Hi
ich bin echt froh dass ich hier hilfe zu TV gefunden hab, das Tut war richtig gut, alles funzt sogar mit meiner eigenen Vorlage!!!
Danke!!!
2008-10-28 - 12.15 pm
Hey,
freut mich, dass dir die Tutorials geholfen haben. Und es freut mich, dass Du Feedback gegeben hast – vielen Dank!
Empfehl uns weiter :-)
2008-12-02 - 8.50 pm
hi,
das tutorial hat mir so weit schon riesig weitergeholfen. allerdings habe ich noch ein problem. ich kann zwar wie in den einzelnen steps beschrieben mappen und die index.html über templavolia benutzen aber wenn ich mir die site im frontend anschaue scheint kein css aus main.css benutzt zu werden. die datei liegt im fileadmin im richtigen unterorder genau so wie die bilder und unter extansions ist auch css_styled_content vorhanden (als type:system)
ich verwende zum testen TYPO3 4.3.0alpha1 typo3winstaller / dummy
leider habe ich keine ahnung woran es liegen könnte :(
2009-03-01 - 1.00 pm
Hi,
ich finde das Tutorial sehr hilfreich. Allerdings hab ich ein Problem. Ich bin genauso wie beschrieben und in den Videos gezeigt vorgegangen. Nur wird bei mir der header nicht dynamisch erzeugt, im Frontend ist einfach nichts zu sehen. Sobald ich den header auf id=”logo” mappe und das Typoscript mit den genannten Zeilen ergänze ist im frontend nichts mehr zu sehen. Benötige ich für die Objekte (bspw. COA) noch irgendwelche Extensions oder muss ich was aktivieren das die genutzt werden? Weiß nicht woran es liegt. Wäre dankbar falls mir jemand weiterhelfen kann.
2009-03-02 - 5.30 pm
Falls es jemanden weiterhilft, habe das Problem gefunden. Hab anscheinend eine Kleinigkeit beim Tutorial vergessen. Hatte den Object Path nicht auf lib.header gesetzt. Hab ich wohl doch was übersehen ;-)
2009-04-20 - 1.17 am
hallo Thomas,
erstmals vielen Dank für Tutorial. Ich habe seit 2 wochen keinen einzigen Erfolg mehr, und wollte schon hinschmeißen. Deine Templa 1-3 haben SEHR geholfen und mir mut gemacht ! ! !
aber : es kam wie bei MMARTIN , s. unten; kannst du bitte Rat geben ?
Hier mal schon DANK DANK !!
Martin ..schrieb
25. Oktober 2007 14:16
10
Ich habe da mal ein Problem mit deiner Erklärung:
folgendes passiert: wenn ich bei der HTML-Datei “contentelemente.html” auf TV klicke kommt nicht wie im Video gezeigt “CO Root” allein mit den Rules: (ALL) sondern das TV von der Hauptseite mit vielen Ausrufezeichen und den Rules: body. woran kann das liegen. ich blick es grad nicht .. .hilfe wäre toll … danke schon mal
2009-10-01 - 9.26 am
Ich hatte auch die Probleme, dass er mir beim Mappen von “contentelemente.html” keine elemente (=divs) angezeigt hat. Folglich konnte ich da nix mappen.
Außerdem wurde das MainTemplate mit dem ContentTemplate irgendwie gemixt.
Also gestern schwarzgeärgert, Rechner auf Standby. Heute morgen wieder eingeschaltet – funktioniert alles.
Wenn das Projekt, was ich bearbeite, nicht schon in T3 geschrieben wäre, würde ich es garantiert nicht nutzen. Sondern z.B. Joomla. Ich hoffe mal nicht, dass es T3 im Jahr 2020 noch gibt… X)
Ansonsten super Tutorial! Gerne mehr!
2009-10-01 - 9.46 am
“Wenn das Projekt, was ich bearbeite, nicht schon in T3 geschrieben wäre, würde ich es garantiert nicht nutzen. Sondern z.B. Joomla.”
Gute Wahl [/IRONIE]
2009-10-01 - 2.56 pm
thomas hat recht, er scheint sich das mapping zu merken. mit dem blitz da oben den cache leeren hilft nicht.
wenn man also zuerst das haupttemplate mapt und dann versucht ein content object zu mappen, versucht er die “fields” des haupttemplates auf das (kleinere) CO zu mappen. das geht schief.
ein klick auf “clear all” löst das problem.