TemplaVoila und Flexible-Content-Elements

Martin Hesse, 12.03.2009

Flexible-Content-Elements (FCE) sind eine feine Sache. Innerhalb von TemplaVoilá kann man so einzelne Blöcke definieren. Zum Beispiel kann man dann in seinem normalen Template einfach ein 2-Spalten-Block auswählen, um frei definierbare Inhalte nebeneinader darstellen zu können. Ohne irgendwelche zusätzliche Extensions!

Ich gehe davon aus, dass ihr bereits eine funktionstüchtige Seite mit TemplaVoilá zum laufen gebracht habt. Auf Wunsch kann ich dazu natürlich auch nochmal ein kleines Tutorial schreiben.

FCE-Template erstellen

Was wir als erstes brauchen, ist eine HTML-Datei, die als FCE dient. Dazu erstellen wir jetzt einfach eine HTML-Datei und nennen sie “2-Spalten.html“.

Hier der Inhalt:

<div class="col_wrap">
  <div class="col1"></div>
  <div class="col2"></div>
  <br style="clear:both;" />
</div>

Diese Datei speichern wir und schieben sie dann in den Ordner “fileadmin” -> “templates“.

Dies war schon im groben der erste Teil. Nun müssen wir das FCE in TYPO3 einrichten.

FCE in TYPO3 einrichten

Liste-Ansicht des Template-Ordner

Liste-Ansicht des Template-Ordner

In TYPO3 wechseln wir zunächst in die “Liste“-Ansicht und klicken dann den Sysfolder an, in welchen unser TemplaVoilá-Template installiert ist.

Dort fügen wir dann unter “TemplaVoilá-Datenstruktur” ein neuen Datensatz hinzu, indem wir auf das Icon mit dem Plus klicken.

In dem nun erscheinenden Formular geben wir als Titel “2-Spalter” ein, unter Kategorie wählen wir “Flexibles Inhaltselement” aus und lassen den Rest leer. Wir speichern nun das Formular ab und kehren zur Listen-Ansicht zurück.

Nun fügen wir noch ein “TemplaVoilá-Datenobjekt” hinzu. Dazu geben wir als Titel wieder “2-Spalter” ein, unter Dateireferenz klicken wir auf die Weltkugel, wählen dann im PopUp den Reiter “Datei” aus und Browsen uns durch die Ordner “fileadmin” -> “templates“. Dort wählen wir dann die Datei “2-Spalter.html” aus. Der Pfad sollte dann übernommen werden und im Formular stehen. Als nächstes wählen wir bei Datenstruktur die eben angelegte aus. Der Name müsste “2-Spalter” sein. Den Rest können wir leer lassen und unser Formular abspeichern.

So sollte das Formular dann in etwa bei euch ausschauen

So sollte das Formular dann in etwa bei euch ausschauen

Als nächstes gehen wir auf das Modul “TemplaVoilá” und wählen danach unser Template aus. Danch sollten wir oben den Reiter “Flexible CE” auswählen und ein Eintrag mit namen “2-Spalter” vorfinden. Dort klicken wir auf “remap” und dann auf “Modify DS / TO“.

Dieser Teil sollte einen eigentlich bekannt sein, ich reiße ihn trotzdem nochmal kurz an.

Template Mappen

Zunächst müssen wir den “Root“-Punkt mappen. Dazu klicken wir in dem “Root“-Objekt ganz rechts auf “Map” und wählen dann das erste DIV aus unserem Template aus. Als Mode setzen wir es als “INNER” und klicken dann auf “Set“.

Mapping der ersten Spalte

Mapping der ersten Spalte

Nun fehlen noch 2 Elemente. Für jede Spalte ein Element. Deshalb legen wir nun erstmal 2-Elemente an. Das erste Element nennen wir “field_col1” und das zweite Element einfach “field_col2“. Als Titel jeweils “Spalte 1″ und “Spalte 2″. Unter Editing Type wählen wir “Content Elements” aus.

Natürlich müssen wir die 2 Felder dann auch Mappen. Dazu klicken wir jeweils nachdem wir eines angelegt haben auf “Map” und dort wählen wir dann das jeweilige DIV aus. Für Spalte 1 das DIV mit der Class “col1” und für die zweite Spalte das DIV mit der Class “col2“. Den Mode dabei wieder auf “INNER“.

So sollte dann die Übersicht ausschauen

So sollte dann die Übersicht ausschauen

Sollte alles passen, klicken wir nun auf “Save as“, wählen danach unter “Update existing Data Structure / Template Object” das Element “Template/2-Spalter” aus und klicken auf “Update TO (and DS)“.

2-Spalter als Inhalt einfügen

Wir gehen nun normal auf unser “Web“-Modul und wählen eine Seite aus, in welcher wir unseren 2-Spalter platzieren möchten. Wir legen nun ein neues Element an und wählen in der Liste unter “Flexibler Inhalt” unseren “2-Spalter” aus.

Eine Überschrift können wir, müssen wir aber nicht vergeben. Einfach das Element speichern und zurück in die Übersicht des “Web“-Moduls gehen.

So sollte es dann ausschauen

So sollte es dann in etwa ausschauen

Ihr solltet nun ein 2-Spalter in eurer Übersicht sehen (siehe Screenshot).

Ihr könnt nun dort gewohnt beliebig Inhalte hinzufügen und verwalten. Egal ob es Extensions sind oder normale Texte.

Das einzige was jetzt noch fehlt ist, dass ihr in eurer CSS-Datei die Klassen “col_wrap“, “col1” und “col2” definieren müsst.

In dieser fügen wir einfach folgendes hinzu:

.col_wrap {
  border:1px solid #ddd;
  padding:5px;
}

.col1 { float:left; width:48%; padding:5px; }
.col2 { float:left; width:48%; padding:5px; }

Nun sollten unsere Spalten nebeneinander sein. Das ganze könnt ihr natürlich noch weiter verschönern oder es so lassen :-)

Viel Spaß damit!

Trackback - Direkt Link

52 Kommentare
Hinterlasse ein Kommentar »


  1. FCE einfach in TYPO3 anlegen…

    Flexible-Content-Elements (FCE) sind eine feine Sache. Innerhalb von TemplaVoilá kann man so einzelne Blöcke definieren. Zum Beispiel kann man dann in seinem normalen Template einfach ein 2-Spalten-Block auswählen, um frei definierbare Inhalte neben…

  2. ConnyLo sagt:

    Hallo Martin,
    ein sehr aufwendiges und gut verständliches Tutorial! Dazu die vielen Screenshots, damit auch der intuitive Designer (der so gar nicht programmieren kann) alles nachvollziehen kann, Danke!

  3. Markus sagt:

    man kann auch redakteuren mit Flexible-Content-Elements einzelne boxen vordefinieren! sehr sinnvoll wenn das design nicht zerstört werden soll :)
    gruss

  4. Martin Hesse sagt:

    Danke ConnyLo, freut mich!

  5. Martin Hesse sagt:

    @Markus, stimmt! Sollte ich darauf noch eingehen? Ich überleg mir mal evtl. ein Abschnitt noch.

  6. maddesigns sagt:

    Das CSS ist nich valide! .2col geht nicht – es dürfen keine Zahlen am Anfang stehen.

    Gruß, Sven

  7. [...] bestücken. Eines der großen Vorteile von TemplaVoilà. Auch verschachtelte Boxen sind möglich, Flexible-Content-Elements (FCE) genannt. Mit FCE lassen sich verschachelte Blöcke in das Template [...]

  8. Martin Hesse sagt:

    @maddesigns, korrigiert – Danke!

  9. Hallo.

    Das Tutorial hat mir sehr geholfen und war selbst für mich als Neuling sehr verständlich erklärt. Vielen lieben Dank.

  10. Da mir die bisherigen Tutorials sehr gefallen haben werde ich diese Seite im Auge behalten. Die wenigsten Tutorials-Ersteller gehen wirklich auf einen Neuling ein, auch wenn sie es behaupten. Somit freue ich mich schon auf das Community Tut. Ich bin nämlich auch am überlegen ein Forum einzuplanen.

  11. Steffen sagt:

    Danke für die nette Anleitung. Die TemplaVoila Doku ist nicht wirklich verständlich geschrieben. Mit deinem Tutorial habe ich Ruck-Zuck das Prinzip begriffen. Hätte ich das schon gestern gefunden, wären mir einige Umwege erspart geblieben…
    Jetzt habe ich begriffen worin die wahre Stärke von TV liegt.

  12. Martin Hesse sagt:

    Ich hab zu danken Steffen! Freut mich das es dir geholfen hat.

  13. Vielen Dank für das Tutorial – sehr anschaulich. Mehr davon bitte! :-)

  14. Sam sagt:

    Danke dafür!
    Ich habe das so gemacht (schon vor dem Tutorial) – allerdings tut Typ “Content Elements” nicht. Ab einem bestimmten Zeitpunkt war das, den ich leider nicht mehr nachvollziehen kann. Vorher ging.
    Ich habe nach Einfügen des 2-Spalters dann keine Buttons zum anlegen von beinhaltene Content-Elements.

    Kannst Du dazu was sagen / kennt das jemand auch?
    Gruß, Sam

  15. three_opyt sagt:

    erstklassiges Tutorial – aber man sollte die Leser nicht überschätzen. Zumindest krieg ich den letzten Schritt nicht hin. Ich weiss nicht wie ich das FCE dann meiner Seite zuordne. Muss ich in meinem Haupttemplate noch etwas zusätzlich mappen? Ich sehe zwar das Angelegte unter “Seiteninhalt” aber wenn ich die Webseite aufrufe ist nichts zu sehen.

  16. Martin Hesse sagt:

    Hallo,

    nein .. eigtl. sind alle Schritte beschrieben die nötig sind. Hast du mal den Cache gelöscht? Oder dir mal den Quelltext im FE angeschaut, ob es eventuell doch eingebaut ist und nur eventuell was nicht mit dem CSS passt?

    Gruß,
    Martin

  17. Martin Hesse sagt:

    @Sam, mit welcher Version von TYPO3 und von TV? Alles mal aktualisiert? Auch mal die Datenstruktur komplett neu angelegt?! Bisher konnte ich diesen Fehler noch nicht reproduzieren …

  18. three_opyt sagt:

    Hallo und danke für die schnelle Antwort. Am Cache-Löschen liegt es nicht, ich tue fast nichts anderes seit ich mit Typo3 arbeite. Im Quelltext war nichts zu finden. Ich bin nochmal alles durchgegangen, ich hatte beim Mappen die beiden Cols nicht auf Content Elements gestellt. Ich hatte das vorher mit dem “Root” gemacht, dann war alles ausgegraut.

  19. three_opyt sagt:

    sorry. es geht immer noch nicht.
    Ich wähle im Webmodus eine angelegte Seite aus, gehe im Kontext auf “Neu”.
    Dann wähle ich Seiteninhalt (Im Tutorial steht neues Element?) und Typ: flexibler Inhalt, die Datenstruktur, das Objekt. Beim Inhalt kann ich auf einen Ordner klicken und einen Seiteninhalt zuordnen. Speichern.
    Web->Liste steht mein angelegtes flexibler Inhalt als Seiteninhalt
    gehe ich im Kontext der Seite auf Bearbeiten steht es als “Nicht verwendetes Element” darüber. Da steht was von verknüpfen, aber ich wüsste nicht wie und wo.

  20. Martin Hesse sagt:

    Hi,

    richte mir doch mal ein BackEnd-Zugang ein, dann schau ich mal fix drüber. Am besten schickst du mir die Daten per Kontaktformular oder so. Weil so kann ich mir gerade nichts drunter vorstellen wo das Problem sein könnte.

    Was mir noch einfällt, du sollst ja dann in der Übersicht nicht das Element selber bearbeiten sondern einfach da drinnen dann dein Content einbauen. Da sind ja dann auch so Plus-Grafiken für Inhalte hinzufügen (Siehe Grafik 5) und so.

  21. ToKi sagt:

    Unfassbar ! Ein kurzes und verständliches Tutorial im t3 Umfeld ! Ich habe schon an mir gezweifelt, nachdem ich alles, was ich zu TV finden konnte, gelesen hatte und es dennoch nicht gerafft habe.
    Und hier ? Da findet man ein kleines, gut und nett gemachtes Tutorial, welches man liest und sofort tritt der Aha Effekt ein. Dann probiert man es aus und es funktioniert auch so.
    Das hat Potential ! Du musst bitte mehr davon machen !
    Vielen, vielen Dank !
    Grüsse ToKi

  22. Martin Hesse sagt:

    Hallo ToKi,

    freut mich das ich helfen konnte. Mit der Zeit wird man ziemlich “betriebsblind”. Ich würde mich sehr freuen wenn ich Vorschläge bekomme, über was es sich so schreiben lässt. Falls du mal irgendwo hängen solltest, schreib mir doch mal ne Mail? Vielleicht lässt sich dann was darüebr schreiben. Manchmal sind es die kleinen Dinge, die einem doch enorm weiterhelfen.

    Schönen Gruß zurück,
    Martin

  23. Björn sagt:

    Super Beitrag. Immer wenn ich lange kein FCE mehr erstellt habe, komme ich dankend auf Deine Seite um mich zu erinnern. Super Beitrag!
     
    Gruß Björn

  24. Bockerl sagt:

    Hallo,
    dieses FCE funktioniert nur in Verbindung mit TemplaVoila, falls ich das richtig verstanden habe, oder? Es geht es auch ohne TV?

  25. Olli sagt:

    Super Anleitung, vielen herzlichen Dank! Ausführlich, gut erklärt und mit vielen Screenshots. Genau nach sowas suche ich schon seit Tagen. :-)

  26. flo sagt:

    absolut genial einfaches tutorial.  vorallem dass man keine NEUE ext. installieren muss oder ähliches.. einfach nur tv. meine evtl. “blöde” frage wäre noch.. kann ich dann in diesen spalten wiederum ein FCE einfügen.. also nicht nur die normalen typo3-ce’s. vielen dank für eine kurze antwort, gruss flo
    und nochmals bravo!

  27. flo sagt:

    dein tutorial hat mir inzwischen echt sehr geholfen.
    ich habe bei einem FCE einige titel geändert und auch ein neues field_… hinzugefügt..
    wenn ich dann die neue vorlage verwenden will, sind diese änderungen nicht sichtbar und auch bei dem contentelementen die ich mit dem fce angelegt habe sehe ich kein neues feld..

    muss ich noch einen anderen cache ausser dem normalen löschen?

    hast du evtl. einen tipp für mich? gruss flo

    • Martin Hesse sagt:

      Hallo Flo,

      danke für dein Kommentar.
      Hast du das FCE selber (beim Prozess des Mappings) gespeichert? Du hast ja dann unten am Fuß so eine “Toolbar” mit den ganzen Buttons. Dort kannst du das Template bzw. die DS nochmal speichern.

      Gruß,
      Martin

  28. Izzup sagt:

    Hey ich hätte da eine Frage, und zwar möchte ich ein zusätzliches FCE einbauen, sodass ich zB.: einen 2 Spalter, nen 4 Spalter & nen 3 Spalter habe. Nun habe ich es so probiert:
    im css – einfach col3 col4 col5 geaddet.
    extra template names 3-Spalter hochgeladen (col3-col5 benutzt)
    ebenso eingebunden wie das erste FCE.
    funzt aber nicht – jmd ne hilfe?

  29. nase sagt:

    Die Schritte (auch wenn ich TV nicht auf deutsch ans Laufen kriege) sind gut und einfach nachzuvollziehen.
    Trotzdem muss irgendwo noch ein Haken sein (Grundtemplate mit Wizard aufgesetzt). Die Eingabemaske zeigt nur eine Spalte an und Ausgabe im FE ist ein gelber Kasten: TemplaVoila ERROR:

    Couldn’t find a Data Structure set for table/row “tt_content:50″.
    Please select a Data Structure and Template Object first.

    Im BE zeigt das System unter Content:

     
     
     
    Data Structure ERROR: Line 1: Invalid document end

    Scheinbar bin ich zu doof oder habe zu lange gearbeitet……… :-(

  30. nase sagt:

    Doof trifft es eher… Hab den Fehler gefunden… *schäm*

    • Martin Hesse sagt:

      Hi, und an was lag es? Ich muss das Tutorial aber eh nochmal neu schreiben irgendwann. Mittlerweile hat sich ja ein wenig was an TV geändert. Zumindest oberflächlich.

  31. Michael sagt:

    Hallo Martin,

    gutes Tutorial, allerdings – die Erzeugung von Datenstruktur und Vorlagenobjekt klappt offenbar so nicht, bzw. nicht mehr (TemplaVoilà 1.4.4). Wenn man im Storage Folder von TemplaVoilà einen neuen Datensatz und ein neues Vorlagenobjekt anlegt, wie du es beschreibst, dann ist die Datenstruktur leer. Man müsste händisch die benötigte XML-Datenstruktur einfügen, dann könnte man mit dem Mapping beginnen. Die meisten, die dieses Tutorial lesen, werden aber vermutlich keine entsprechende XML-Datenstruktur zuvor zusammenbauen, um sie dann hier einzufügen.

    Der einfachere Vorgang ist dieser: Dateiliste (oder Datei, wenn DAM installiert ist) – HTML-Template auswählen – auf das Icon des Templates klicken – im PopUp-Kontextmenü TemplaVoila auswählen.

    Hier werden nun die Datenstruktur und das Vorlagenobjekt erstellt, die benötigten Felder angelegt und gemappt. Danach kann das FCE als Inhaltselement verwendet werden.

    Gruß,
    Michael

  32. Martin Hesse sagt:

    Hi Michael,

    nicht ganz korrekt. Die Datenstrukur wird automatisch generiert wenn du das Mapping beginnst.

    Gruß,
    Martin

  33. Michael sagt:

    Hallo Martin,
    hast du das mit der aktuellen TV-Version versucht? Ich hab’s probiert, und es ist mir nicht gelungen. Vielleicht hab ich ja was übersehen. Den Weg übers Template finde ich persönlich jedenfalls einfacher und übersichtlicher.
    Gruß
    Michael

  34. Christoph sagt:

    Hallo,
     
    super Tutorial, ich habe nur folgendes Problem. Habe auf einem Typo 4.3.0 mit TV gearbeitet und dabei das problem dass nun sporadisch in 2/3 der Fällen das Problem auftritt, dass ich wenn auf einer Seite ein Content-Elemt hinzufügen möchte die Auswahlt an Content-Elementen nicht kommt. Das ganze kam das erste Mal nachdem ich zum x-ten mal ein FCE-geupdated hatte. Es könnte auch sein, dass ich zu schnell weitergearbeitet habe und er nicht 100%ig gespeichert hat. Das entfernen des entsprchenden DS und TO und neuanlegen hilft auch nicht weiter. mal kann cih 3 Content Elemente anlegen, dann wieder 5 mal nicht…
    Hat jemand eine Idee, möchte das ganze so ungerne meinem Kunden so übergeben.
     
    Gruß
    Christoph

  35. Michael sagt:

    Hallo Christoph,
    ich habe genau das gleiche Problem mit TYPO3 4.4. Hast du eine Lösung gefunden?
    Gruß
    Michael

  36. Martin Hesse sagt:

    Ich werde schauen das ich am Wochenende das Tutorial mal auf den aktuellen Stand bringe. Bis dahin bitte noch etwas Geduld!

    Gruß
    Martin

  37. Jörg sagt:

    Hallo Martin.
     
    Erstmal großes Lob für dieses super Tutorial. Ich habe jedoch leider ein Problem, und zwar benutze ich T3 4.4.2 und TV 1.4.4, dort kann ich als Typ nicht “Content Element” auswählen. Die Option die annähernd hinkommt ist “Seite-Inhaltselemente”. Das klappt dann zwar auch, ist aber nicht so komfortabel da man in das FCE nur ganze Seiten reinwrappen kann…also keinen Content erstellen so wie in deinem Screenshot.
    Liegt das an TV 1.4.4 oder hast du eine Idee was falsch sein könnte?
     
    grüße
    Jörg
     

  38. Jörg sagt:

    ok hat sich erledigt…ich war nicht im TV-Seitenmenü sondern im normalen Seitenmenü unterwegs, da ist die Ansicht dann anders..
    ;)
     

  39. Yunus sagt:

    Hi Jörg,
    ich habe genau das sdelbe Problem wie du, nur weis ich jetzt nicht wie du das gelöst hast. Was meinst du mit TV-Seitenmenü? ich kenn e nur das normale Seitenmenü Welches ganz oben steht. Bitte um Hilfe. Gruß Yunus

  40. Yunus sagt:

    Alles klar ich habe es selbst gelöst.
    Bei der neuen Version Gibt es ein neus feld (BELayout Template File) was nicht ausgefüllt werden darf!

  41. Johnny sagt:

    Wir verwenden auschließlich nur noch TemplaVoila! in unseren Projekten.
    Ich möchte es nicht mehr vermissen.
    Danke für das Tutorial über FCE

  42. Mr Hannes sagt:

    Ich weiß nicht genau ob ich das gleiche Problem wie Sam habe. Aber egal welche Tutorials ich mache scheinen alle nicht zu funktionieren. Typo3 scheint mir generell extrem Fehleranfällig ohne irgendwelche Ausgaben zu den Fehlern. Wirklich sehr lästige und frustrierende Sprache die ich niemandem Empfehlen kann. Man könnte sagen typisch für eine IndieDeveloper Entwicklung, aber damit würde ich vielen IndieDevelopern unrecht tun. Anstatt das sich die Sprache an existierenden Sprachen orientiert versucht sie das Rad neu zu erfinden. Schande für die Welt :/
    Die screenshots und buttons gleichen auch nicht meiner Typo3 installation obwohl ich es erst vor kurzem runtergeladen habe. Jedenfalls so ähnlich wie bei Sam, kommt bei mir bei jedem TemplaVoila tutorial das Problem, dass nachdem ich das fertige TemplaVoila einer Seite zuweise, bei Content keine möglichkeiten habe welchen einzufügen weil das Contentfeld leer ist… Ich habs echt schon 100 mal probiert. Mit X verschiedenen Tutorials aus gekauften Büchern und Internet…

  43. Martin Hesse sagt:

    Lass und das Problem doch mal versuchen ausfindig zu machen. Meine Anleitung ist schon etwas betagt, mittlerweile ist das alles ein wenig “anders”, aber nicht komplett neu.

    Du kannst ja mal genau schreiben was du gemacht hast. Einfach in Stichworten zusammenfassen. Hast du sonst schonmal bei dir mit TV gearbeitet, oder bist du ein Neueinsteiger?

    Ich werde das Tutorial mal demnächst updaten!

  44. Schmidli sagt:

    Guten Tag Martin
    Bei mir funktionieren FCEs nicht, wenn ich die ROOT als INNER mappe. Offenbar scheint das für PAGE und FCE unterschiedlich zu sein… Wo gibt es zusätzliche Informationen dazu?
     
    LG, schmidli

    • Martin Hesse sagt:

      Hallo Schmidli,

      ganz einfach. INNER = TV ersetzt nur den Inhalt innerhalb dieses Elements; OUTER = TV ersetzt auch das Element selber (ergo es ist weg)!
      Hast du bei dir mal das HTML angeschaut, welches TYPO3 produziert und konntest darauß evtl. schon irgendwelche schlüsse ziehen?

      Gruß
      Martin

  45. romtec sagt:

    Super Tutorial, alle Schritte genau erklärt und mit Screenshots belegt.
    Danke!

-