Hallo zusammen,
ich versuche in einer userFunc einen Wert in das Array
$GLOBALS['TSFE']->imagerand
zu schreiben, um diese Werte Global nutzen zu können, doch leider schlägt das bisher immer fehl.
Die Werte sind leider immer nur für die jeweilige Laufzeit von userFunc gespeichert.
Ich gehe bisher folgendermasen vor:
$GLOBALS['TSFE']->imagerand = $value;
Anschließend würde ich die Werte gerne per TypoScript auswerten:
z.B. so:
[globalVar = TSFE:imagerand=1]
lib.test.value = HAllo1
[global]
Hat jemand einen Tipp für mich?
Danke schonmal.
Ich gehe davon aus, dass Conditions geprüft werden, bevor das restliche TypoScript ausgeführt wird. Daher wird auch deine userFunc erst nach der Prüfung der Condition ausgeführt und kann das Ergebnis der Condition nicht beeinflussen.
Danke schonmal für die Antwort.
Ist denn Der PHP Code richtig?
Was mich nämlich wundert ist, dass ich den Wert von
$GLOBALS['TSFE']->imagerand
prüfe, bevor ich Ihn beschreibe und er jedesmal leer ist.
Das ist mein Code.
print_r("imagerand_vorher:-".$GLOBALS['TSFE']->imagerand."-");
if (empty($GLOBALS['TSFE']->imagerand)){
$value = rand(1, 3);
print_r($value);
$GLOBALS['TSFE']->imagerand = $value;
print_r("imagerand_nachher:-".$GLOBALS['TSFE']->imagerand."-");
// print_r($GLOBALS['TSFE']);
}
Wird denn $GLOBALS['TSFE']->imagerand vorher schon definiert? Das geht ja jetzt aus diesem Code-Schnipsel nicht hervor. Oder wird diese userFunc mehrmals auf einer Seite ausgeführt, so dass der Wert spätestens beim zweiten Aufruf schon belegt sein müsste?
Danke für deine Hilfe.
Die Conditions werden wohl tatsächlich VOR dem ausführen der UserFuncs geprüft.
Beim zweiten Aufruf einer UserFunc ist der Wert verfügbar.
Aber, ist es nicht möglich, die Werte in $GLOBALS['TSFE'] "dauerhaft" zu speichern?
cored schrieb
Aber, ist es nicht möglich, die Werte in $GLOBALS['TSFE'] "dauerhaft" zu speichern?
Nein, ist es nicht.
Du kannst stattdessen den Wert in der Session speichern,
da ist er dann dauerhaft verfügbar.
Mit einer Condition [userFunc = my_user_function(checkThis)] kannst du den gesetzten Wert dann auswerten.