[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