$GLOBALS['TSFE'] eigene Werte setzen in user Func

  • cored cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    15. 09. 2010, 14:36

    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:

    1. $GLOBALS['TSFE']->imagerand = $value;

    Anschließend würde ich die Werte gerne per TypoScript auswerten:

    z.B. so:

    1. [globalVar = TSFE:imagerand=1]
    2. lib.test.value = HAllo1
    3. [global]

    Hat jemand einen Tipp für mich?

    Danke schonmal.


  • 1
  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    15. 09. 2010, 15:03

    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.

  • cored cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    15. 09. 2010, 15:33

    Danke schonmal für die Antwort.

    Ist denn Der PHP Code richtig?
    Was mich nämlich wundert ist, dass ich den Wert von

    1. $GLOBALS['TSFE']->imagerand

    prüfe, bevor ich Ihn beschreibe und er jedesmal leer ist.

    Das ist mein Code.

    1. print_r("imagerand_vorher:-".$GLOBALS['TSFE']->imagerand."-");
    2. if (empty($GLOBALS['TSFE']->imagerand)){
    3. $value = rand(1, 3);
    4.  
    5. print_r($value);
    6. $GLOBALS['TSFE']->imagerand = $value;
    7. print_r("imagerand_nachher:-".$GLOBALS['TSFE']->imagerand."-");
    8. // print_r($GLOBALS['TSFE']);
    9. }

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    15. 09. 2010, 16:07

    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?

  • cored cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    15. 09. 2010, 16:33

    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?

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    16. 09. 2010, 09:11

    [quote="cored"]
    Aber, ist es nicht möglich, die Werte in $GLOBALS['TSFE'] "dauerhaft" zu speichern?
    [/quote]
    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.

  • 1