Zum Inhalt springen

CASE key.data nur default

Erstellt am 18. März 2010 · 1 Antwort · letzte Antwort am 19. März 2010

Tags: Frage

charly21 ·

Hi,

sicher mal wieder nur ein Denkfehler, aber es funzt nicht.

#check for setting of cookie
temp.my_tx_crypreflangcookie = USER_INT
temp.my_tx_crypreflangcookie {
userFunc = user_functions->GetCookieBySystem
}

GetCookieBySystem return true: Wert ist 20
GetCookieBySystem return false: Wert ist 10
Hab das so gesetzt, da CASE scheinbar mit 0 (FALSE) und 1 (TRUE) nicht umgehen kann.
Zumindest bei mir nicht

Dann soll je nachdem ob 10 oder 20 zurückkommt eine Funktion ausgeführt werden oder eben nur ein TEXT.

#if page is language selection, set default language for cookie
[globalVar = TSFE:id = 544]
temp.text2 = CASE
temp.text2 {
key.data = temp.my_tx_crypreflangcookie
key.intval = 1
default = TEXT
default.value = default
10 = USER_INT
10 {
userFunc = user_functions->SetCookieBySystem
}
20 = TEXT
20.value = Cookie isset
}
[else]
temp.text2 = CASE
temp.text2 {
key.data = temp.my_tx_crypreflangcookie
key.intval = 1
default = TEXT
default.value = default
10 = TEXT
10.value = kein Cookie gesetzt
20 = USER_INT
20 {
userFunc = user_functions->SetCookieBySystem
}
}
[end]

Wenn ich nun testweise temp.my_tx_crypreflangcookie in einem Marker ausgeben lasse, kommt 10 zurück, heißt, das Cookie ist nicht gesetzt.

Warum, gibt mir der CASE dann bitte bei globalVar = 544 default als Ergebnis zurück und führt nicht, wie gewünscht, die Funktion bei 10 aus, die das Cookie setzen soll.

Das gleiche gilt, wenn temp.my_tx_crypreflangcookie 20 zurückgibt und ich nicht auf globalVar 544 bin. Auch dort bekomme ich nur default zurück.

LG
Charly

charly21 ·

Hallöchen,

ich habe im Typo3 IRC Hilfe bekommen.

So funzt es jetzt einwandfrei.

[globalVar = TSFE:id = 544]
temp.text2 = CASE
temp.text2 {
	key.cObject = USER
	key.cObject {
	 	userFunc = user_functions->GetCookieBySystem
	}
	10 = USER_INT
	10 {
		userFunc = user_functions->SetCookieBySystem
	}
	20 = TEXT
	20.value = Cookie isset
}
[else]
temp.text2 = CASE
temp.text2 {
	key.cObject = USER
	key.cObject {
	 	userFunc = user_functions->GetCookieBySystem
	}
	20 = USER_INT
	20 {
		userFunc = user_functions->SetCookieBySystem
	}
}
[end]

Einziger Unterschied ist das ich nicht key.data aurufe sonder key.cObject und darin die Funktion direkt ausführe, anstatt sie vorher in einer eigenen Variable auszuführen.

Danke an die schnellen Helfer im IRC.

Charly