in der Datei 'ext_tables.php' werden zwei Zeilen am Ende angehängt:

 

$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1','FILE:EXT:'.$_EXTKEY.'/ff_data_pi1.xml');

 

 

Dementsprechend muss eine Datei 'ff_data_pi1.xml' angelegt werden, die in der einfachen Form etwa so aussieht:

 

<T3DataStructure>
	<meta type="array">
		<langChildren>0</langChildren>
	        <langDisable>1</langDisable>
	</meta>
	<ROOT>
		<type>array</type>
		<el>
			<feld1>
				<TCEforms>
					<exclude>1</exclude>
					<label>LLL:EXT:[$_EXTKEY]/locallang.xml:label_feld1</label>
					<config>
						<type>input</type>
					</config>
				</TCEforms>
			</feld1>
			<feld2>
				<TCEforms>
					<exclude>1</exclude>
					<label>LLL:EXT:[$_EXTKEY]/locallang.xml:label_feld2</label>
					<config>
						<type>input</type>
					</config>
				</TCEforms>
			</feld2>
		</el>
	</ROOT>
</T3DataStructure>

 

für mehrere Tab-Reiter so:

 

<T3DataStructure>
	<sheets>
		<Bereich1>
			<ROOT>
				<type>array</type>
				<el>
					<feld1>
						<TCEforms>
							<exclude>1</exclude>
							<label>Flexform-Feld 1</label>
							<config>
								<type>input</type>
							</config>
						</TCEforms>
					</feld1>
					<feld2>
						<TCEforms>
							<exclude>1</exclude>
							<label>Flexform-Feld 2</label>
							<config>
								<type>input</type>
							</config>
						</TCEforms>
					</feld2>
				</el>
			</ROOT>
		</Bereich1>
		<Bereich2>
			<ROOT>
				<type>array</type>
				<el>
					<feld3>
						<TCEforms>
							<exclude>1</exclude>
							<label>Flexform-Feld 3</label>
							<config>
								<type>input</type>
							</config>
						</TCEforms>
					</feld3>
					<feld4>
						<TCEforms>
							<exclude>1</exclude>
							<label>Flexform-Feld 4</label>
							<config>
								<type>input</type>
							</config>
						</TCEforms>
					</feld4>
				</el>
			</ROOT>
		</Bereich2>
	</sheets>
</T3DataStructure>

 

 

Das einfache Beispiel benutzt die Datei 'locallang.xml' um im BE sprachspezifische Label zu zeigen. Dafür müssen in der Datei 'locallang.xml' entsprechende für jede zu unterstützende Sprache Werte eingetragen sein:

 

	<label index="label_feld1">Flexform-Feld 1</label>
	<label index="label_feld2">Flexform-Feld 2</label>

 

 

Die Datentypen der Felder (im Tag <config> definiert) entsprechen der TCA-Definition, nur eben in XML-Notation.

 

Im Plugin selber benutzt man folgende Anweisungen um auf die FlexForm-Inhalte zuzugreifen:

 

$this->pi_initPIflexform();
$feld    = 'feld1';   // entsprechend obiger Definition
$bereich = 'sDEF';    // sofern nicht anders angegeben

$wert = $this->getConfValue($bereich, $feld, $defaultvalue);

function getConfValue($bereich, $feld, $defaultValue) {
	$retval = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],$feld,$bereich); 
	if (!$retval) { $retval = $this->conf[$feld]; }
	if (!$retval) { $retval = $defaultValue; }
	return $retval;
}

 

 

Hier noch einige Beispiel-Deklarationen für gängige Feldtypen (nur der <config>-Teil):

 

<type>input</type>
<size>10</size>
<max>20</max>
<eval>trim</eval>

<type>input</type>
<size>8</size>
<max>16</max>
<eval>date</eval>
<checkbox>1</checkbox>

<type>text</type>
<cols>40</cols>
<rows>10</rows>
<wrap>off</wrap>

<config>
	<type>text</type>
	<cols>40</cols>
	<rows>10</rows>
	<wrap>virtual</wrap>
</config>
<defaultExtras>
	richtext[*]:rte_transform[mode=ts_css]
</defaultExtras>

<type>check</type>

<type>check</type>
<items type="array">
	<numIndex index="0" type="array">
	        <numIndex index="0">Checkbox 1</numIndex>
	</numIndex>
	<numIndex index="1" type="array">
	        <numIndex index="0">Checkbox 2</numIndex>
	</numIndex>
	<default>3</default>
</items>
(bitweise, daher der defaultwert 3 für beide Checkboxen )

<type>radio</type>
<items type="array">
	<numIndex index="0" type="array">
	        <numIndex index="0">Radiobox 1</numIndex>
	        <numIndex index="1">Radiowert1</numIndex>
	</numIndex>
	<numIndex index="1" type="array">
	        <numIndex index="0">Radiobox 2</numIndex>
	        <numIndex index="1">Radiowert2</numIndex>
	</numIndex>
</items>

<type>group</type>
<internal_type>db</internal_type>
<allowed>--Tabellenname--</allowed>
<size>6</size>
<minitems>1</minitems>
<maxitems>10</maxitems>

<type>group</type>
<internal_type>file_reference</internal_type>
<allowed>jpg,gif,png</allowed>
<max_size>2000</max_size>
<uploadfolder>uploads/--extname--</uploadfolder>
<show_thumbs>1</show_thumbs>
<size>3</size>
<minitems>0</minitems>
<maxitems>3</maxitems>

<type>input</type>
<eval>trim</eval>
<wizards type="array">
        <_PADDING>2</_PADDING>
        <link type="array">
                <type>popup</type>
                <title>Link</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>
		</params>
		<JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams>
	</link>
</wizards>

Color-Selector (ungetestet)
<type>input</type>
<size>6</size>
<wizards>
	<color>
		<type>colorbox</type>
		<dim>212x18</dim>
		<tableStyle>border:solid 1px black;</tableStyle>
		<script>wizard_colorpicker.php</script>
		<JSopenParams>height=340,width=360,status=0,menubar=0,scrollbars=1</JSopenParams>
	</color>
</wizards>
<default></default>
<eval>#555555</eval>

 

 

 
Ihre aktuelle Seitenauswahl:  
>>>