Hi,
über das das Feld "Flexform-Konfiguration" habe ich die Datenstruktur eines gridelements angegeben, bei Anlegen/Editieren des Contentelements bekomme auch die definierten Eingabefelder wie von Flexforms gewohnt angezeigt.
Wie aber kommen die Eingaben ins Frontend? Der TS Teil im Manual, auf den verwiesen wird, ist leider leer.
Es wird nur der übliche <div id="cxx" class="csc-default"> wrap des contentelements ausgegeben, ohne Inhalt.
Hallo,
Als Beispiel ein FCE 3 Column.
Das in den Setup Part.
tt_content.gridelements_pi1.20.10.setup {
# ID of gridelement
4 < temp.gridelements.defaultGridSetup
4 {
columns {
# colPos 0
1 < .default
1.wrap = <article class="g33l">|</article >
# colPos 1
2 < .default
2.wrap = <article class="g33l">|</article >
# colPos 2
3 < .default
3.wrap = <article class="g33r">|</article >
}
}
}
Die "4" ist die ID des CE Be Layouts...
Ich Denke das Du das meintest Oder?
gruss
maty
Hallo und Danke für die Antwort,
aber nein, das ist nicht was ich meine. Das ist ja die Methode wie man gridelements, die mittels Raster-Konfiguration definiert sind, einbindet.
Mich interessiert aber die Einbindung von gridelements, für die eine Flexform-Konfiguration angegeben ist.
Beispiel:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
<ROOT type="array">
<type>array</type>
<el type="array">
<headline type="array">
<TCEforms type="array">
<config type="array">
<type>input</type>
<size>40</size>
<eval>trim</eval>
</config>
<label>Headline</label>
</TCEforms>
</headline>
<text type="array">
<TCEforms type="array">
<config type="array">
<type>text</type>
<cols>40</cols>
<rows>5</rows>
<eval>trim</eval>
</config>
<label>Text</label>
</TCEforms>
</text>
<link type="array">
<TCEforms type="array">
<config type="array">
<type>input</type>
<size>40</size>
<max>256</max>
<checkbox></checkbox>
<eval>trim</eval>
<wizards type="array">
<_PADDING type="integer">2</_PADDING>
<link type="array">
<type>popup</type>
<title>Link</title>
<icon>link_popup.gif</icon>
<script>browse_links.php?mode=wizard</script>
<JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams>
</link>
</wizards>
</config>
<label>Link</label>
</TCEforms>
</link>
</el>
</ROOT>
</T3DataStructure>
Dies definiert ein gridelement wie man es von TemplaVoila kennt, drei Eingabefelder für Headline, Text und Link. Bei Anlegen/Editieren des Contentelements werden die Felder auch entsprechend angezeigt und können befüllt werden.
Aber wie werden die Eingaben nun auf der Website ausgegeben?
Du kannst die Flexform Felder aus der Konfiguration ganz einfach ansprechen: flexform_feldname, also in deinem Fall z.B. flexform_headline. So hab' ich es kürzlich in einem noch laufenden Projekt gemacht.
Die Flexform Datenstruktur ist in tt_content im Feld "Erweiterungsoptionen" (pi_flexform) gespeichert. So sieht der Inhalt aus:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
<data>
<sheet index="sDEF">
<language index="lDEF">
<field index="button_text">
<value index="vDEF">weiterlesen...</value>
</field>
<field index="button_link">
<value index="vDEF">http://domain.com</value>
</field>
</language>
</sheet>
</data>
</T3FlexForms>
Derselbe Code funktioniert aber gerade in einem anderen Projekt nicht. Da bin ich noch bei der Ursachenforschung. Der Grund könnte sein, dass in diesen Projekt alternative Websitesprachen definiert sind.
Ich hoffe das bringt dich weiter!
Johannes.
Hallo,
ich hatte das selbe Problem: wie kann ich sowas wie ein FCE für TemplaVoila mit Gridelements herstellen und nur auf die Flexforms zugreifen?
Hier meine Lösung, die super funktioniert mit Beispiel für Bild und Text. Links und alles andere sind auch möglich.
1. Gridelement erstellen.
a) Raster-Konfiguration:
Damit verhindere ich, dass normale CE in das Grid eingepflegt werden können. Es wird somit als eigenes CE behandelt.
backend_layout {
colCount = 0
rowCount = 0
}
b) Flexform-Konfiguration:
Ein ganz normales Flexform.
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
<ROOT type="array">
<type>array</type>
<el type="array">
<image>
<TCEforms>
<label>Bild</label>
<config>
<type>input</type>
<eval>trim</eval>
<default></default>
<wizards type="array">
<_PADDING>2</_PADDING>
<link type="array">
<type>popup</type>
<title>Bild</title>
<icon>link_popup.gif</icon>
<script>browse_links.php?mode=wizard&act=file</script>
<params type="array">
<blindLinkOptions>page,url,mail,spec</blindLinkOptions>
<allowedExtensions>jpg,png,gif,jpeg</allowedExtensions>
</params>
<JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams>
</link>
</wizards>
</config>
</TCEforms>
</image>
<text type="array">
<TCEforms type="array">
<config type="array">
<type>text</type>
<cols>40</cols>
<rows>5</rows>
<eval>trim</eval>
</config>
<label>Text</label>
</TCEforms>
</text>
</el>
</ROOT>
</T3DataStructure>
2. TypoScript
Auf "columns" wird vollständig verzichtet. Wir haben ja keinen Inhalt auszugeben. Dafür erstellen wir über stdWrap ein neues cObject, das dann direkt auf die flexform-Felder zugreift.
tt_content.gridelements_pi1.20.10.setup {
# ID of gridelement // eLearning 2 Spalter
8 < temp.gridelements.defaultGridSetup
8 {
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
data = field:flexform_text
wrap = <div class="citeContent"><p>|</p></div>
}
20 = IMAGE
20 {
file {
import.data = field:flexform_image
width = 265
}
}
}
wrap = <div class="citeWrapper clearfix">|</div>
}
}
Hallo,
ist zwar schon etwas älter aber ich habe zwei Fragen dazu:
1) Ist es möglich in dem stdWrap.cObject auch auf auf zB das header field des tt_content zuzugreifen? Ich habe es mit
20 = TEXT
20.field = header
probiert - aber das hat nicht funktioniert.
2) Gibt es eine Möglichkeit die Inhalte aus dem Flexform im Seitenmodul in der Übersicht sichtbar zu machen? (so wie bei Text/Text mit Bild Elementen die Inhalte zu sehen sind)
lg Matthias