Zum Inhalt springen

Problem mit $GLOBALS[\"TSFE\"]->fe_user

Erstellt am 5. Juni 2008 · 5 Antworten · letzte Antwort am 5. Juni 2008

Tags: Frage

king_pagel ·

Hallo,
kennt jemand von euch auch das Problem, dass "$GLOBALS["TSFE"]->fe_user" nicht in Ajax erreichbar ist? Wie kann man diesen Fehler beheben?

Hier noch ein kleines Codebeispiel:

$GLOBALS["TSFE"]->fe_user->setKey('ses','tx_commercelisting', $sessionVars);

Normal funktioniert es nur in Ajax werden die Daten nicht aktualisiert

just2b ·

hallo,

definiere "in ajax"... bist du via eID unterwegs oder in einem eigenen skript oder wo was wie... bisschen mehr infos

georg

king_pagel ·

Hallo,
vielen Dank erstmal für deine Antwort.

Zur Zeit benutze ich die xaJax-Extension und habe den Code wie folgt aufgebaut.

function main(){
	[...]
	$this->xajax = t3lib_div::makeInstance('tx_xajax');
	$this->xajax->decodeUTF8InputOn();
	$this->xajax->setCharEncoding('utf-8');
	$this->xajax->registerFunction(array('tx_myextension',&$this,'formData'));
	$this->xajax->processRequests();
	$GLOBALS['TSFE']->additionalHeaderData[$this->prefixId] = $this->xajax->getJavascript(t3lib_extMgm::siteRelPath('xajax'));
	[...]
}

function formData($arg){
	$myTitle = '';
	$myInfo = '';
	$myUid;
	foreach($arg AS $key => $value){
		foreach($this->getInfoByAttributes($value,$key) AS $row){
			$myTitle .= $row['title'];
			$myInfo .= $row['info'];
			$myUid .= $row['uid'];
		}
	}
	$objResponse = new tx_xajax_response();
	$this->setData($myUid);
	$objResponse->addAssign('ergebnis_img', 'innerHTML', $myTitle);
	$objResponse->addAssign('ergebnis_info', 'innerHTML', $myInfo.' '.$myUid);
	return $objResponse->getXML();
}

// Funktion setData
function setData($data){
	$sessionVars = $GLOBALS["TSFE"]->fe_user->getKey('ses','tx_myextension');	
	$sessionVars[$this->article] = $data;
	$GLOBALS["TSFE"]->fe_user->setKey('ses','tx_myextension', $sessionVars);
}

Wenn du noch mehr Infos brauchst, stehe ich dir gern zur Verfügung 😉

just2b ·

geht ja...

wenn du ohne ajax arbeitest, wird die session beim nächsten hit gefüllt. das umgehst du ja, deswegen musst du das manuell anstoßen mit

$GLOBALS["TSFE"]->storeSessionData();

(nach dem set)

georg

just2b ·

ich hab die linksammlung um den link zum wiki ergänzt, da steht das auch so drinnen!

als nächstes noch bitte eigene gelöste threads auf gelöst stellen, ich hol das diesmal für dich nach

georg