TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

gridelements mit flexform


Autor Nachricht
Verfasst am: 26. 07. 2012 [01:51]
MrFriendly
Themenersteller
Dabei seit: 04.05.2005
Beiträge: 47
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.
Profil
Verfasst am: 26. 07. 2012 [11:25]
skydivematy
Dabei seit: 06.11.2008
Beiträge: 276
Hallo,
Als Beispiel ein FCE 3 Column.
Das in den Setup Part.

TYPOSCRIPT
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
Profil
Verfasst am: 01. 08. 2012 [10:46]
MrFriendly
Themenersteller
Dabei seit: 04.05.2005
Beiträge: 47
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:
HTML
<?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?
Profil
Verfasst am: 23. 08. 2012 [20:25]
jochla
Dabei seit: 09.06.2004
Beiträge: 88
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:

HTML
<?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.


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.08.2012 um 20:27.]

Das Schönste aller Geheimnisse ist, ein Genie zu sein und es als Einziger zu wissen. (Mark Twain)
Profil
Verfasst am: 21. 11. 2012 [08:57]
mischa
Dabei seit: 11.12.2003
Beiträge: 339
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.

TYPOSCRIPT
backend_layout {
     colCount = 0
     rowCount = 0
}



b) Flexform-Konfiguration:
Ein ganz normales Flexform.

HTML
<?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&amp;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.
TYPOSCRIPT
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>
     }
}


Grüße,
Mischa
--------------------------------------------------
Meine Buchtipps:
- Herbstgeschichten (ab 10)
- Strichodinge (ab 3)
ProfilWWWICQAIMSkype