Zum Inhalt springen

typoscript Datei gemeinsam nutzen in pi1/ & pi2/

Erstellt am 8. September 2008 · 5 Antworten · letzte Antwort am 9. September 2008

Tags: Frage

moe-pub ·

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

just2b ·

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

moe-pub ·

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.

just2b ·

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

moe-pub ·

@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!