[TYPO3-german] Daten einer Flexform eines ANDEREN Content-Elements lesen
Dr. Ronald P. Steiner
Ronald.Steiner at googlemail.com
Fri Feb 29 18:33:00 CET 2008
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