---
title: "Flexform in eigener Backenderweiterung"
url: "https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2013-05-16"
last_reply: "2013-05-17"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Flexform in eigener Backenderweiterung

Extensions › Entwicklung · 6 Antworten · gestartet 2013-05-16

## Eröffnungsbeitrag

**dtox** · 2013-05-16 · [Beitrag #1](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/1)

Hallo zusammen.
Habe folgendes Problem. Ich möchte in einer Erweiterung für das Backend, welches ich mit der Erweiterung „Kickstarter“ erstellt habe mit Hilfe von Flexform die benötigten Felder für die Erweiterung ausgeben.
Habe hierfür folgende Zeilen in die Datei ext_tables.php kopiert

```php
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1'] ='pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:'.$_EXTKEY . '/flexform_ds_pi1.xml');
```

Habe dazu eine Flexform-Datei nach folgendem Schema erstellt

```html
<T3DataStructure>
	<meta type="array">
		<langChildren>0</langChildren>
		<langDisable>1</langDisable>
	</meta>
	<ROOT>
		<type>array</type>
		<el>
			<productname>
				<TCEforms>
					<exclude>1</exclude>
					<label>LLL:EXT:[$_EXTKEY]/locallang_db.xml:user_produktverwaltung_produkte.productname</label>
					<config>
						<type>input</type>
						<size>20</size>
						<max>30</max>
						<eval>trim</eval>
					</config>
				</TCEforms>
			</productname>
		</el>
	</ROOT>
</T3DataStructure>
```

Das Label für oben aufgeführte Struktur habe ich aus der locallang_db.xml entnommen

```html
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
	<meta type="array">
		<type>database</type>
		<description>Language labels for database tables/fields belonging to extension 'user_produktverwaltung'</description>
	</meta>
	<data type="array">
		<languageKey index="default" type="array">
			<label index="user_produktverwaltung_produkte">Products</label>
			<label index="user_produktverwaltung_produkte.productname">Productname</label>
		</languageKey>
		<languageKey index="de" type="array">
			<label index="user_produktverwaltung_produkte">Produkte</label>
			<label index="user_produktverwaltung_produkte.productname">Produktname</label>
		</languageKey>
	</data>
</T3locallang>
```

Wenn ich nun folgende Zeile in die Funktion „main()“ meiner index.php einfüge bekomme ich nur eine Fehlermeldung.

```php
$this->pi_initPIflexForm();
```

So wie es scheint habe ich wohl etwas Vergessen. Aber was. Es gibt viele Anleitungen und Tutorials im Netz, doch keine hatte mir bisher weiterhelfen können. Wenn es so ist, das ich die oben aufgerufene Funktion noch erstellen muss, was soll diese dann beinhalten?

Dank euch schon einmal für eure Hilfe.

dtox

## Antworten

### [#2](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/2) · karlchen · 2013-05-16

Hi,

in deinem Fall wäre es ganz gut zu wissen welche TYPO3 Version du nutzt und was die Fehlermeldung sagt.

Und nur nebenbei, weil deine Flexform Feld "productname" heißt, willst du deine Produkte so anlegen ?
Wenn ja wäre der weg die Inhalte über Flexform einzurichten der idealste, flexforms sollten immer nur für Konfigurations Einstellungen genutzt werden. Richtige Daten sollten eher als Datensätze in einer eigenen Datenbank Tabelle gespeichert werden.

### [#3](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/3) · dtox · 2013-05-16

Hallo karlchen.
Sorry hab ich Vergessen. Ich verwende TYPO3 in der Version 4.7.5.
Die Fehlermeldung besagt, dass keine Methode mit diesem Namen gefunden werden kann. Jetzt bin ich aber davon ausgegangen, dass diese Methode schon vorhanden sein muss. Wenn das nicht der Fall ist, so frage ich mich, wie ich dann die Eingabefelder für das Backend erstellen kann.
Die Datensätze werden in einer Datenbank abgelegt. Habe jedoch für den Test nur eine ganz rudimentäre Einrichtung vorgenommen, um überhaupt mal zu sehen, wie das alles funktioniert. Bei anderen Erweiterungen scheint es ja auch zu klappen.

Gruß
dtox

### [#4](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/4) · karlchen · 2013-05-16

hi dtox,

Deine class beginnt aber so oder ?

```php
class tx_deinExtensionName_pi1 extends tslib_pibase {
...
}
```

Solange tslib_pibase extended wird solltest du Zugriff auf diese Methode haben: $this->pi_initPIflexForm()

### [#5](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/5) · dtox · 2013-05-17

Hallo karlchen.
Danke für den Hinweis. Die Klasse welche vom Kickstarter erstellt wurde und im Ordner pi1 zu finden ist erbt von der tslib_pibase. Ich bin davon ausgegangen, dass diese auch von dieser erbt. Des Weiteren habe mir in den Kopf gesetzt, es über ein „Modul“ für das Backend zu machen. Ist doch ein Modul, welches in der linken Spalte im Bereich web erscheint. Oder sehe ich das Falsch.
Ich wollte halt über eine solche Anwendung bzw. Modul meine Produkte pflegen. Muss doch möglich sein. Bei allen Funktioniert es nur nicht bei mir.
Ich habe mir hierfür eine Klasse geschrieben, welche nun auch von der tslib_pibase erbt. Diese binde ich in die index.php im Ordner mod1 ein. Jedoch bekomme ich darin keine Ausgabe. An was kann das noch liegen. Hab bestimmt noch etwas Übersehen.
Vielleicht kann mir an dieser Stelle noch jemand den Unterschied zwischen den einzelnen Möglichkeiten der Erweiterungen erklären. Es tut auch ein Link zu einer nicht allzu Technisch verfassten Seite oder einem Tutorial.

Dank euch schon mal
dtox

### [#6](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/6) · karlchen · 2013-05-17

hi dtox,

man unterscheidet in TYPO3 zwischen Extensions für Frontendausgaben und Backend Modulen wie du Sie beschreibst.
Im Frontend und Backend stehen in der Entwicklung jedoch andere Klassen zur Verfügung und tslib_pibase ist für das Frontend gedacht und steht im BE auch nicht zur Verfügung, genauso wie das $cObj und einer Menge anderer Hilfsklassen. Bisher habe ich auch noch kein Modul gesehen was Flexform im BE einsetzt. Du könntest dir jedoch mal "tt_news" oder "news" ansehen, die haben beide Backendmodule mit denen man die Datensätze im Backend erstellen editieren und löschen kann.

### [#7](https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung/7) · dtox · 2013-05-17

Hallo karlchen.
Danke. Werde ich mir ansehen. Sollte ich noch Fragen haben, werde ich mich nochmals Melden.

Danke
dtox

---

Quelle: „Flexform in eigener Backenderweiterung“, typo3.net, https://www.typo3.net/d/114863-flexform-in-eigener-backenderweiterung
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
