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?
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
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.
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
Die Antwort von Karlchen hat mir auch sehr geholfen.
TS Code musste umgeschriebenen werden und dann waren die Session-Werte wieder da.
Der Link zum Changelog hat sich offenbar geändert und ist nun:
https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.7/Feature-80154-RetrieveSessionDataInTS.html