Zum Inhalt springen

$GLOBAL['TSFE']->fe_user->setKey() aber im TypoSript leer

Erstellt am 19. Juni 2017 · 4 Antworten · letzte Antwort am 21. Februar 2019

Tags: TYPO3 8, Frage

getit ·

Ich habe über

$GLOBAL['TSFE']->fe_user->setKey('ses', 'contrast', 'high');

eine Sessionvariable geschrieben.
Lasse ich diese zum Test ausgeben

$GLOBAL['TSFE']->fe_user->getKey('ses', 'contrast');

ausgeben, ist der Wert gesetzt.

Lade ich die Seite neu ist der Wert noch vorhanden - korrekt.

Versuche ich aber im TS (habe es sowohl im TS der Extension als auch der Seite probiert)

lib.test = TEXT
lib.test.data = TSFE:fe_user|sesData
....
10 = FLUIDTEMPLATE
10 {
  variables {
    test < lib.test
  }
}

Im Fluidtemplate mit

{test -> f:debug()}

ausgeben, ist dieses leer.

Wieso?

Norman2k ·

TSFE:fe_user|sesData dürfte ein Array sein, ich würde es mal so versuchen:

lib.test = TEXT
lib.test.data = TSFE:fe_user|sesData|contrast

Außerdem würde ich ein COA_INT draus machen, damit es nicht gecached wird

getit ·

TSFE:fe_user|sesData dürfte ein Array sein,

ist schon klar.
Aber f:debug() kann ja auch Arrays ausgeben.

Habe es sowohl so

lib.session = COA_INT
lib.session {
  10 = TEXT
  10.data = TSFE:fe_user|sesData|contrast
}

als auch so

lib.session = TEXT
lib.session.data = TSFE:fe_user|sesData|contrast

probiert.
Beides leer - auch nach erneutem Laden der Seite.

karlchen ·

Da ich gerade selbst über das Problem gestolpert bin und beim recherchieren diese Frage gefunden habe, hier vermutlich die Lösung, für alle noch kommenden 😉

Das ganze gilt für TYPO3 8.7 und ist hier nachzulesen:
https://docs.typo3.org/typo3cms/extensions/core/8.7/Changelog/8.7/Feature-80154-RetrieveSessionDataInTS.html

es gibt nun ein neue Art die Session Daten mit TypoScript abzufragen:

Aus:

page.10 = TEXT
page.10.data = TSFE:fe_user|sesData|myext|mydata

wird nun

page.10 = TEXT
page.10.data = session:myext|mydata