---
title: "Daten aus einer Flexform für mehrere FE-Plugins nutzen"
url: "https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen"
source: "typo3.net"
tags: ["Extensions","Entwicklung","FlexForms","Frage"]
created: "2006-10-12"
last_reply: "2012-10-18"
replies: 14
solved: false
page: 1
pages: 1
lang: "de"
---

# Daten aus einer Flexform für mehrere FE-Plugins nutzen

Extensions › Entwicklung · 14 Antworten · gestartet 2006-10-12

## Eröffnungsbeitrag

**Nick78** · 2006-10-12 · [Beitrag #1](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/1)

hallo zusammen,

ich habe zwei seiten. auf beiden seiten ist jeweils ein unterschiedliches fe-plugin positioniert. für seite 1 kann ich über eine flexform einige voreinstellungen durchführen. in der pluginklasse greife ich mit

```php
$this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'what_to_display', 'sDEF');
```

auf ein bestimmtes element der flexform zu.

habe ich die möglichkeit auch aus dem plugin von seite 2 auf genau diese daten zuzugreifen? ich müsste der pi_getFFvalue-methode ja lediglich nur die entsprechende flexform zuweisen. nur wie???

hat jmd eine idee?

1000 dank.
Nick

## Antworten

### [#2](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/2) · steffenk · 2006-10-12

$this->cObj->data['pi_flexform'] ist der Inhalt des aktuellen flexform-Feldes in der tt_content-Tabelle (aktueller Datensatz). Man braucht es nur gegen den Inhalt eines anderen Datensatzes auszutauschen.

### [#3](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/3) · Nick78 · 2006-10-12

danke,

wenn ich aus plugin eins, für das ich die flexform gebaut habe, den datensatz $this->cObj->data['pi_flexform'] angebe, kann ich sofort im plugin auf die  daten zugreifen.

wenn ich in plugin 2 $this->cObj->data['pi_flexform'] als datensatz eingebe, findet sich an dieser stelle ja nichts, da ich für plugin 2 ja keine flexform gebaut habe. ich muss ja nun an dieser stelle definieren, dass ich genau auf die flexform von plugin 1 zugreifen möchte. wie muss ich dann

$this->cObj->data['pi_flexform'] umformen?

oder besser wie kann ich auf einen nicht aktuellen datensatz zugreifen? ich kenne beispielsweise uid und pid der gewünschten flexform. bringt mich das weiter?

### [#4](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/4) · steffenk · 2006-10-12

ja, z.B so:

```php
$row=$this->pi_getRecord(tt_content,$uid);   
$flexformConf=$row['pi_flexform'];
```

### [#5](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/5) · Nick78 · 2006-10-13

danke, super!

der zugriff funktioniert. nur eine kleine frage habe ich noch. wenn ich folgendes eingebe:

```php
$row=$this->pi_getRecord(tt_content,'54');   
$flexformConf=$row['pi_flexform'];
```

bekomme ich die entsprechende flexform zurück. gebe ich sie im frontend aus erscheinen alle vorhandenen werte der flexform. debugge ich sie, bekomme ich die xml-struktur samt inhaltswerte:

```php
debug($flexformConf); // liefert xml struktur
$content.=$flexformConf; // liefert sämtliche werte der flexform
return $content;
```

ich wollte nun mit pi_getFFvalue gezielt auf bestimmte werte in der xml-struktur zugreifen. dazu ein kleiner ausschnitt aus $flexformConf:

```html
...
<t3flexforms> 
<data> 
<sheet index="sDEF">
<language index="lDEF">
<field index="what_to_display"> 
<value index="vDEF">Basiskenndaten</value> 
</field>
...
```

möchte ich an die werte von vDEF gelangen, also in diesem fall an Basiskenndaten, würde ich folgendes verwenden:

```php
$this->pi_getFFvalue($flexformConf,'what_to_display','sDEF','lDEF','vDEF');
```

funktioniert aber leider nicht. weißt du warum?
bis hierhin jedenfalls schonmal vielen dank für deine hilfe steffen!!!

gruß
nick

### [#6](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/6) · steffenk · 2006-10-13

ich hab mal nachgeschaut in der typo3/sysext/cms/tslib/class.tslib_pibase.php
Da sieht die Funktion so aus:

```php
function pi_getFFvalue($T3FlexForm_array,$fieldName,$sheet='sDEF',$lang='lDEF',$value='vDEF')	{
		$sheetArray = is_array($T3FlexForm_array) ? $T3FlexForm_array['data'][$sheet][$lang] : '';
		if (is_array($sheetArray))	{
			return $this->pi_getFFvalueFromSheetArray($sheetArray,explode('/',$fieldName),$value);
		}
	}
```

Also ist das Problem, das er bereits ein Array erwartet. Dieses wird in der initPIflexForm gemacht, so gehts:

```php
$this->cObj->data[$field] = t3lib_div::xml2array($this->cObj->data[$field]);
```

also musst Du das mit Deinem Inhalt ebenso machen ;)

### [#7](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/7) · Nick78 · 2006-10-13

1000 dank steffen,

wärst du jetzt hier, würde ich dir sofort einen ausgeben!!!

es läuft!!!

gruß
nick

### [#8](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/8) · Php_Diver · 2012-10-16

hallo steffen,

genau was du gelöst hast, brauche ich auch :)

allerdings steht im lösungscode:

```php
$this->cObj->data[$field] = t3lib_div:<img src="typo3conf/ext/mm_forum//res/smilies/icon_mad.gif" alt="icon_mad.gif" />ml2array($this->cObj->data[$field]);
```

nach t3lib_div: steht <img src="typo3conf/ext/mm_forum//res/smilies/icon_mad.gif" alt="icon_mad.gif" />  ??

was muss da wirklich drinstehen?

ich muss die variable "bildbeschreibung" aus einer anderen seite auslesen.

danke dir

### [#9](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/9) · Php_Diver · 2012-10-17

hat keiner eine idee, was statt dem <img> da stehen muss?

:)

### [#10](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/10) · LuP · 2012-10-17

Hallo,

> **Php_Diver schrieb:**
>
> hat keiner eine idee, was statt dem <img> da stehen muss?

die gesuchte Funktion müsste xml2array() heissen.

VG,
LuP

### [#11](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/11) · Php_Diver · 2012-10-18

Hallo LuP,

hmm, dann müsste es ja (ich mach mal nach : ein leerzeichen rein, damit nicht wieder ein img erscheint)

```php
$this->cObj->data[$field] = t3lib_div: xml2array(): xml2array($this->cObj->data[$field]);
```

lauten, und das ist es nicht

und nur

```php
$this->cObj->data[$field] = t3lib_div:: xml2array($this->cObj->data[$field]);
```

bringt "Invalid document end"

die Frage ist, wo ich mein db-feld angebe, damit ich nur diesen ausgegeben bekomme.

### [#12](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/12) · LuP · 2012-10-18

Hallo,

> **Php_Diver schrieb:**
>
> ```php
> $this->cObj->data[$field] = t3lib_div:: xml2array($this->cObj->data[$field]);
> ```

OK

> **Php_Diver schrieb:**
>
> bringt "Invalid document end"

Lass mal $this->cObj->data[$field] ausgeben.

VG,
LuP

### [#13](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/13) · Php_Diver · 2012-10-18

Hallo,

das gibt leider nichts aus

### [#14](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/14) · Php_Diver · 2012-10-18

Hiho

mit:

```php
$uid = 261; // Hier die ID des Elements
$row = $this->pi_getRecord(tt_content,$uid);
$flexformConf = $row['pi_flexform'];
```

bekomme ich die komplette xml-flex-form

```php
<T3FlexForms>
    <data>
        <sheet index="sDEF">
            <language index="lDEF">
                <field index="bilderliste">
                    <value index="vDEF">0,  bla, bla</value>
                </field>
                <field index="music">
                    <value index="vDEF">fileadmin/templates/musik/01.mp3,fileadmin/templates/musik/02.mp3,fileadmin/templates/musik/03.mp3</value>
                </field>
                <field index="pictures">
                    <value index="vDEF">fileadmin/templates/galerie/bild_1.png,fileadmin/templates/galerie/bild_2.png,fileadmin/templates/galerie/bild_3.png</value>
                </field>
                <field index="bildzitat">
                    <value index="vDEF">Text1
Text2
Text3</value>
                </field>
                <field index="bildbeschreibung">
                    <value index="vDEF">Inspired by Wolfsheim MIX 12/2003 ... usw.
```

die frage ist jetzt, wie greife ich gezielt (z.B.) auf die inhalte von <field index="bildzitat"> zu?

:-)

### [#15](https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen/15) · LuP · 2012-10-18

> **Php_Diver schrieb:**
>
> die frage ist jetzt, wie greife ich gezielt (z.B.) auf die inhalte von <field index="bildzitat"> zu?

```php
$flexformArr = t3lib_div:: xml2array($flexformConf);
$bildZitat = $this->pi_getFFvalue($flexformArr, 'bildzitat', 'sDEF', 'lDEF', 'vDEF');
```

VG,
LuP

---

Quelle: „Daten aus einer Flexform für mehrere FE-Plugins nutzen“, typo3.net, https://www.typo3.net/d/51601-daten-aus-einer-flexform-fuer-mehrere-fe-plugins-nutzen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
