Zum Inhalt springen

Constants-Einträge in Extension nutzen

Erstellt am 24. April 2003 · 6 Antworten · letzte Antwort am 3. Mai 2004

Tags: PHP, Frage

xing ·

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

kurfuerst ·

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

xing ·

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

xing ·

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

fritzr ·

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 ?

Unbekannter Benutzer ·

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!