Zum Inhalt springen

Flexform mit erweiterter Extension verändern

Erstellt am 20. April 2007 · 10 Antworten · letzte Antwort am 28. Februar 2009

Tags: Frage

mad1200 ·

Hallo,
ich möchte eine bestehende Extension erweitern.
Die Konfiguration der bestehenden Extension wird u.a. durch Flexforms gemacht.
In der erweiterten Extension möchte ich auf die vorhandene Konfigurationsmethode aufsetzen und optionen hinzufügen.

Weiß jemand wie das funktioniert?

Schön wäre ein Beispiel.

Vielen Dank

Matthias

just2b ·

Hallo Matthias,

schau dir mal an wie das die Extension machen, die tt_news erweitern, aber ich glaube die müssen das gesamte flexform-file mitliefern

georg

garbast ·

Also ich würde jetzt mal ne Hypothese aufstellen wollen.

Wenn in der tt_news folgender Code das Flexform für das Plugin lädt:

t3lib_extMgm::addPiFlexFormValue(9, 'FILE:EXT:tt_news/flexform_ds.xml');

dann geh ich mal davon aus, das die (9, für das Content Element News steht. Von dieser Basis mal ausgehend, dann sollte es möglich sein, die orginal Datei in das eigene Extention Verzeichniss zu kopieren und darauf zu verweisen.

Wenn Du also die xml Datei kopiert hast, kannst Du sie um eigene Felder erweitern. Die Referenz setzt Du dann wie folgt.

t3lib_extMgm::addPiFlexFormValue(9, 'FILE:EXT:DEINE_EXTENTION/flexform_ds.xml');

Wie gesagt eine reine ungetestete Behauptung die nicht der Realität entsprechen muss.

mad1200 ·

Habe jetzt mal folgendes in die ext_tables.php eingefügt:

$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY]='layout,select_key,pages,recursive';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY] = 'pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY, 'FILE:EXT:'.$_EXTKEY.'/flexform_ds.xml');

Aber die Veränderungen des forms werden nicht angezeigt.

Gruß
Matthias

steffenk ·

Da steckt ein Gedankenfehler drin.

Man kann das TCA einer Extension erweitern. Diese Erweiterung ist möglich, da das TCA dynamisch aus einem Array generiert wird, greift das und wird als Grundlage für die TCE-Forms im BE benutzt.

Bei einer Flexform, die im Prinzip auch TCA ist, funktioniert das Prinzip anders: Sie wird aus einer XML-Vorlage geladen und als komplettes XML im ContentElement gespeichert, ist also nicht dynamisch. Daher kann man diese Flexform nicht erweitern.

thrawn ·

Hi steffen,

Heisst das, dass es prinzipiell unmöglich ist eine Extension die per Flexforms konfiguriert wird zu erweitern?

Das überschreiben der kompletten xml datei funktioniert ja, aber das kann schnell in die Hose gehen wenn eine neue Version der zu erweiternden Extension rauskommt.

Das wäre doch mal ein feature request, eine funktion

t3lib_extMgm::extendPiFlexFormValue

die bestehende Flexform Einträge überschreibt und neue hinzufügt.
Das sollte doch eigenlich nicht so kompliziert sein, da die xml-datei intern sowieso in ein array umgewandelt wird...

steffenk ·

vollkommen richtig - die Flexform lässt sich nicht erweitern.

mach doch mal einen Feature Request im Bugtracker, ich fänd das auch interessant.

harakiri81 ·

hat sich da etwas getan oder geht das immer noch nicht? habe das problem jetzt auch.
die felder, die ich mit meiner neuen erweiterungsextension hinzufüge, erscheinen im letzten tab, relativ unpassend für mich.

ich sehe keine möglichkeit das zu steuern, ich möchte ja den code der erweiterten extension nicht anfassen...auch nicht die flexform xlm datei.

wäre dankbar für einen tip, wenns hier inzwischen eine lösung gibt.