[TYPO3-german] Daten einer Flexform eines ANDEREN Content-Elements lesen

Widmann, Manfred mpunktw at gmx.net
Sat Mar 1 10:48:49 CET 2008


Cool! Das mach ich!
Manfred!



"Dr. Ronald P. Steiner" <Ronald.Steiner at googlemail.com> schrieb im 
Newsbeitrag 
news:mailman.1.1204306378.533.typo3-german at lists.netfielders.de...
> Hi Manfred,
>
> das geht recht einfach:
>
> 1) Du fragst das Tabellenfeld ganz normal per mySQL ab:
>     $content_elements =  $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
>       'name_of_flex_form_field',
>       'tt_content',
>       '('.ltrim($include_pid_query," OR ").')'
>       .$this->cObj->enableFields('tt_content')
>       .' AND sys_language_uid=0'
>       .' AND uid!='.$this->cObj->data[ 'uid' ]
>     );
>
> 2)
> Mit dieser Funktion wandelst Du dann den flex-form-string in einen array 
> um der die Info enthält:
> function extractFlex($flexFormStr){
>     $piFlexForm = t3lib_div::xml2array($flexFormStr);
>     $conf = array(); // Setup our storage array...
>     if (is_array($piFlexForm['data']))
>       foreach ( $piFlexForm['data'] as $sheet => $data )
>         foreach ( $data as $lang => $value )
>           foreach ( $value as $key => $val )
>             $conf[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
>     return $conf;
>   }
>
> das funktioniert bei mir perfekt. Hoffe es hilft Dir auch.
>
> beste Grüße
>
> Ron
>
> Widmann, Manfred Dipl.-Ing. schrieb:
>> Hi!
>>
>> Folgendes Problem:
>> Ich möchte in einem Plugin auf bestimmte Infos (in diesem Fall auf die 
>> Angabe der StoragePIDs) zugreifen, die in einer Flexform eines anderen 
>> Content-Elements gespeichert ist. Genauer: ich möchte jenes 
>> Content-Element aus der tt_content selektieren, in dessen Flexform eine 
>> bestimmte PID als StoragePID verwendet wird.
>>
>> Hintergrund:
>> Ich schreibe einen Teaser für eine BLOG-Extension. Dort wird das 
>> Frontend-Plugin über eine Flexform konfiguriert und einer dieser 
>> Parameter ist die PID des General Storage in dem die Beiträge abgelegt 
>> werden.
>> Mein Teaser selektiert nun aus der BLOG-Tabelle alle jene Einträge, die 
>> jünger als x Tage sind und liefert den Namen des Bloggers, den Titel, 
>> einen Teil des Inhalts und sollte auch einen Link auf den Beitrag 
>> liefern. Dazu muss ich aber im Teaser-Plugin jene PID finden, die jenen 
>> Content enthält, in dessen Flexform die StoragePid vorkommt, die ich als 
>> Parameter dem Teaser-Plugin mitgebe.
>>
>> Die Flexform ist im Content als XML gespeichert ... wie komme ich also am 
>> leichtesten auf die PID? Ich meine select pid from tt_content where 
>> pi_flexform like "%280%" ist ein wenig sehr fehleranfällig???! Aber wie 
>> geht's besser?
>>
>> lg
>> Manfred 




More information about the TYPO3-german mailing list