Hallo,
schreibe grad ne Extension fuer typo3 und bin da auf ein Problem gestossen. Ich erzeuge 2 Frontend Plugins, die sich per typoscript mit
plugin.ext_key_1 {}
bzw.
plugin.ext_key_2 {}
konfigurieren lassen. Die 2 setup.txt Dateien befinden sich jeweils in den Ordnern pi[1|2]/static/. Nun haben pi1 und pi2 aber die gleiche Konfiguration. Deshalb hab ich im Wurzelverzeichnis der Extension einen Ordner static/typoscript und dort die setup.txt Datei liegen.
Das sieht dann so ca. so aus:
plugin.ext_key_1 {
config
config
config ...
}
plugin.ext_key_2 < plugin.ext_key_1
Schlussendlich sollten die ja dann die gleiche Konfiguration haben.
In der ext_tables.php hab ich die Zeile
t3lib_extMgm::addStaticFile($_EXTKEY,"pi2/static/","");
durch
t3lib_extMgm::addStaticFile($_EXTKEY,"static/typoscript/","");
ersetzt (2 mal, fuer pi1 und pi2) und am Ende noch folgendes:
t3lib_extMgm::addStaticFile($_EXTKEY,'static/typoscript/', 'typoscript');
Nun hat aber die ganze Aktion die Folge, dass sogar pi1 die komplette konfiguration verliert.
Lange rede kurzer Sinn, ich brauche Hilfe! Waer net wenn jemand da nen Tipp geben koennte. Muss man der Extionsion noch irgendwo das neue setup.txt bekannt machen?
Ich dank schon mal fuers lesen der langen Problembeschreibung und hoffe, dass Ihr mir weiterhelfen koennt!
mfg
du kannst ganz auf die setup.txt verzichten wenn du zB im root-ordner der ext die datei ext_typoscript_setup.txt anlegst. diese wird immer geladen.
darin dann
plugin.tx_extkey_pi1 {
...
...
}
plugin.tx_extkey_pi2 < plugin.tx_extkey_pi1
georg
Hi just2b,
danke fuer die Antwort, nur funktioniert das irgendwie ueberhaupt nicht.
Wenn ich naehmlich den ganzen Inhalt von der zentralen setup.txt in die ext_typoscript_setup.txt verschiebe und den Cache loesche, geht gar nichts mehr:
Error!
The page is not configured! [type= 0][]
Im setup.txt heisst das natuerlich tx_extkey_pi1, und nicht tx_extkey_pi1, mein Fehler im Post.
Komisch ist nur, dass, selbst wenn ich alle Eintraege bezueglich t3lib_extMgm::addStaticFile aus der ext_tables.php entferne, wird die setup Datei immer noch irgendwie geladen.
Die Klasse von pi1 erhaelt da die gesamte Konfiguration, pi2 aber nicht. Dabei inizialisiert sich pi1 und pi2 exakt auf die selbe weisse:
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->pi_initPIflexForm();
Die ganze Sache ist fuer mich ein Raetsel.
dein fehler deutet daraufhin, dass du irgendwo ein problem mit den {} hast! schau mal in den TS Object Browser, da sollten einige fehlermeldungen stehen
georg
plugin.tx_extkey_pi2 < plugin.tx_extkey_pi1
kann ja nicht gehen, da plugin kein stdWrap besitzt.
@just2b: Danke fuer den Tipp, war tatsaechlich ein Fehler wegen ner schliessenden Klammer. Jetzt ist die Konfiguration in der ext_typoscript_setup.txt!
@steffenk: Heisst das dann, dass ich die ganze Konfiguration von tx_extkey_pi1 ein zweites mal fuer *_pi2 schreiben muss? Gibts da keinen bessere Loesung?
[Edit]: hab jetzt mal trotzdem das
plugin.tx_extkey_pi2 < plugin.tx_extkey_pi1
getestet. Scheint trotzdem zu funktionieren, allerdings besser als erhofft. Wenn ich naehmlich die ganze Konfiguration kopiere ueberschreibt er mir auch den 'userFunc' Eintrag, der verweisst dann auf die *_pi1 und ruft natuerlich auch die main von *_pi1 auf - scheint also nicht so einfach zu sein.
Versuche mal die Konfiguration in ein temp auszulagern, vielleicht klappts ja so!
[Edit2]: Problem geloesst, und zwar so:
temp.tx_extkey_ts_conf {
config
config
config ...
}
plugin.tx_extkey_pi1 < temp.tx_extkey_ts_conf
plugin.tx_extkey_pi1 {
userFunc = tx_extkey_pi1->main
}
plugin.tx_extkey_pi2 < temp.tx_extkey_ts_conf
plugin.tx_extkey_pi2 {
userFunc = tx_extkey_pi2->main
}
Danke euch beiden fuer die Hilfe!