Hallo,
kann mir jemand sagen, wo ich die Einträge, die im Constantsfeld meines Template stehen, mit PHP (eigene Extension) auslesen kann?
Es gibt ja das Array "GLOBALS" das ich schon hoch und runter gescannt habe. Leider konnte ich dort nichts finden.
Danke und Grüße
xing
Hallo,
Constants-Einträge sind immer im Setub-Feld eingestellt.
Wenn du z.B. folgendes im Constants hast:
plugin.tx_blabla.abc = 3
muss im Setup stehen
plugin.tx_blabla_cde.test = {plugin.tx.blabla.abc}
Auf die 3 kannst du dann mit $this->conf['test'] zugreifen...
Das Beispiel müsste funktionieren, habe es aber nicht ausprobiert...
Sebastian
danke, kurfuerst. Aber ich wollte was anderes. Vielleicht hab ich mich nen bisschen doof ausgedrückt.
Ich will in einem PHP-File meiner Extension auf TypoScript-Konstanten zugreifen.
Ich habe mir jetzt ne Lösung selbstgebastelt (keine Ahnung warum da jetzt gerade ne 33 steht, ist warscheinlich bei jedem anders):
$constArTmp = split("
",$GLOBALS["TSFE"]->tmpl->constants["33"]);
while(list($key,$val) = each($constArTmp)){
$valTmp = split("=",$val);
$constAr[trim($valTmp[0])] = trim($valTmp[1]);
}
jetzt kann ich z.B. mit $constAr["siteName"]; auf meinen Constants-Eintrag siteName lesenderweise zugreifen.
Bestimmt nicht sauber, geht aber.
xing
Ist die 33 vielleicht die PageID?
Mfg
nein, dachte ich auch, oder Template ID oder so. Aber nichts von alledem.
In dem Array "$GLOBALS["TSFE"]->tmpl->constants" sind irgendwie alle Constantseinträge drin, die Reihenfolge der Einträge ist für mich aber nicht nachvollziehbar.
xing
Wenn du z.B. folgendes im Constants hast:
plugin.tx_blabla.abc = 3
muss im Setup stehen
plugin.tx_blabla_cde.test = {plugin.tx.blabla.abc}
Auf die 3 kannst du dann mit $this->conf['test'] zugreifen...
Warum muss man denn
plugin.tx_blabla_cde.test
schreiben???
Geht das nicht auch ohne das _cde ?
Hallo!
Ich habe ein sehr naheliegendes Prob gehabt und bin hier auf diesen Thread gestoßen - thx a all! Die 33 bezieht sich auf irgendeine interne Reihenfolge, ich habe ganz andere Werte, gerade weil ich auch ext. Templates verwende ...
Aufgrund dessen, da ich nicht wissen kann, wo sich gerade meine Constante befindet, habe ich eine FOR-Schleife um deinen "Workarround" gebaut -> work arround the workarround 😉
for ($x = 0; $x<=40; $x++) {
$constArTmp = split("
",$GLOBALS["TSFE"]->tmpl->constants[$x]);
while(list($key,$val) = each($constArTmp)){
$valTmp = split("=",$val);
$constAr[trim($valTmp[0])] = trim($valTmp[1]);
}
}
Die Ausgabe hat bei mir max. 20 constants[x] gezeigt, aber sicher ist sicher!