[TYPO3-german] Flexforms dynamisch / Datensatzseite auslesen
Basti Baumann
donillo at gmail.com
Tue Oct 2 15:03:14 CEST 2007
Mathias Schreiber [TYPO3] schrieb:
> 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?
>
Hi,
also irgendwie glaube ich meinst du was anderes als ich ;)
Wie ich meine Daten aus dem Flexform Array raus und rein bekomme und
verarbeite ist mir klar.
Mir ging es aber darum wie ich in meine Abfrage in der Klasse, die mir
meine dynamischen Felder liefert noch die pid des Ordner bekommem in der
ich die Records gespeichert habe und die ich in den Seiteneigenschaften
angegeben habe.
Meine Klasse habe ich exakt so eingebunden wie du die deine (in die
ext_tables.php):
include_once(t3lib_extMgm::extPath($_EXTKEY).'pi1/class.tx_sbimagedownloader_addFieldsToFlexForm.php');
Aktuell werden bei mir nur alle Kategorien ausgegeben, auch wenn die in
anderen Sysfoldern stecken. Und exakt das will ich verhindern.
So dass meine Abfrage in der Klasse dann so aussehen würde:
$abfrage = "SELECT uid,cat FROM tx_sbimagedownloader_cat WHERE hidden=0
AND deleted=0 AND pid=sysfolder";
Natürlich dann im richtigen TYPO3 Abfragestil ;)
Nur mal so interessehalber, wo liegt denn der Vorteil, wenn ich mich bei
den queries an die Coding Guidlines halte (ausser das die queries dann
überall gleich aussehen)?
Grüße
Basti
More information about the TYPO3-german
mailing list