[TYPO3-german] Flexforms dynamisch / Datensatzseite auslesen

Mathias Schreiber [TYPO3] mathias at typo3.org
Tue Oct 2 14:22:49 CEST 2007


Basti Baumann schrieb:
> das mit den Mysql querys ist mir bewusst, ich habe das aber mangels 
> besseren Wissens erst einmal so gemacht ;)

Das machts ja noch viel schlimmer.
Coding Guidelines liegen irgendwo auf TYPO3.org unter Docs (frag mich 
bitte nicht wo).

Jetzt gehts erstmal los hier...

ext_tables.php
include_once(t3lib_extMgm::extPath($_EXTKEY).'class.tx_wmdbtca2fe_itemsProcFunc.php');

[DEIN_FLEXFORM].xml
<listfields>
   <TCEforms>
     <label>Fields for List View</label>
     <config>
       <type>select</type>
       <items type="array">
         <numIndex index="0" type="array">
           <numIndex index="0">-- CHOOSE --</numIndex>
           <numIndex index="1">-- CHOOSE --</numIndex>
         </numIndex>
       </items>
<itemsProcFunc>tx_wmdbtca2fe_itemsProcFunc->user_getTCAFields</itemsProcFunc>
     </config>
   </TCEforms>
</listfields>

Da wird die ProcFunc aufgerufen

Die Klasse selber:
class tx_wmdbtca2fe_itemsProcFunc {
	function user_getTCAFields($params) {
		// Get XML from Flexform and transform it to a PHP array
		$flexData = t3lib_div::xml2array($params['row']['pi_flexform']);
		// Extract Tablenabe
		$table = $flexData['data']['sDEF']['lDEF']['tcatable']['vDEF'];
		// Load the TCA for the Selected Table
		$localTCA = t3lib_div::loadTCA($table);
		$i = 1;
		foreach ($GLOBALS['TCA'][$table]['columns'] as $key => $value) {
			if (!t3lib_div::inList($this->blackList,$key)) {
				$params['items'][$i] = array(
					'0' => $key,
					'1' => $key
				);
				$i++;
			}
		}
		return $params['items'];
	}

}

um an die Flexform Definition zu kommen gibts sicherlich nen smarteren 
Weg, fällt mir aber grade nich ein.

Wichtig ist die Basis.
Du schreibst ZUSÄTZLICHE Werte unten an deine Selectbox dran.

Prinzip klar?

-- 
T3A AM
Rocking TYPO3 since 3.1b1


More information about the TYPO3-german mailing list