von Alexander Ebner und Patrick Lobacher, 01.03.2009

Inside TYPO3 – Teil 4 – Das Table Configuration Array und Flexforms: Ein Blick in das Innere des CMS

Aus dem
t3n Magazin Nr. 16

Jetzt kaufen

Über den Abschnitt „config“ wird wie im TCA das Eingabefeld konfiguriert und auch der Typ (hier „select“) festgelegt. Danach folgen die restlichen Konfigurationen für dieses Feld und später auch für alle anderen Felder.

Flexforms selbstgemacht

Will man nun selbst eine Flexform zu seiner selbstgeschriebenen Extension hinzufügen, muss man nur nach dem folgenden Schema vorgehen: Zunächst muss eine Extension erstellt und installiert werden. Anschließend wird die Datei „ext_tables.php“ modifiziert, in dem man die beiden folgenden Zeilen hinzufügt:

PHP

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

Listing 2

Nun wird im Root-Verzeichnis der Extension eine XML-Datei mit dem Namen „flexform_ds_pi1.xml“ angelegt. Eine Beispielkonfiguration finden Sie im TYPO3-Wiki [1] oder in der Dokumentation zu Flexforms [2]. Nach dem Löschen der Caches sollte die Flexform nun im Backend angezeigt werden, wenn Sie Ihr Plugin zufügen.

Wenn Sie auf die eingegebenen Werte zugreifen wollen, können Sie dies sehr einfach bewerkstelligen. Platzieren Sie einfach den Code zum Auslesen der Flexform in Ihre Plugin-Klasse:

PHP

class tx_meinExtensionKey_pi1 extends tslib_pibase {
[...]
	function main($content,$conf)	{
	...
	// Initialisiere die Flexform
	$this->pi_initPIflexForm();
	//Vorbereiten des Containers, der die Flexform-Werte enthalten soll
	$this->lConf = array();
	// Auslesen des gesamten Flexform-Datenfeldes
	$piFlexForm = $this->cObj->data['pi_flexform'];
	// Nun wird das gesamte Array durchgegangen und die einzelnen
	// Werte ermittelt
	foreach ( $piFlexForm['data'] as $sheet => $data ) {
		foreach ( $data as $lang => $value ) {
			foreach ( $value as $key => $val ) {
				$this->lConf[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
				// Beispielausgabe der Werte
				var_dump($this->lConf[$key]);
			}
		}
	}
[...]	
}

Listing 3

Alle Artikel der Serie
Teil 1 (T3N Nr. 13) Tour de Core
Teil 2 (T3N Nr. 14) Allgemeine APIs
Teil 3 (T3N Nr. 15) Backend- und Frontend-APIs
Teil 4 (T3N Nr. 16) TCA, Flexforms, Ajax

Weitere Artikel zu CMS und TYPO3



Empfohlene Produkte

Softlink 2341

Links und Literatur

Seite:  1 2 3 4 5

Empfohlene Artikel