Ü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:
... $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:
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 |




