Zum Inhalt springen

[userfunc = user_functions-> greift nicht

Erstellt am 5. März 2010 · 1 Antwort · letzte Antwort am 5. März 2010

Tags: Frage

charly21 ·

Hi,

ich werd noch bekloppt.

ich habe eine Funktion geschrieben, die mir beim aufruf im TS true oder false zurückgeben soll.

Aber selbst wenn ich im Backend die condition auf true setzte, wird nicht das ausgegeben was es soll.

ich habe folgendes konfiguriert

page.includeLibs.some_function = fileadmin/scripts/user_functions.php

temp.mainTemplate.marks.PREFLANGCOOKIE = TEXT
temp.mainTemplate.marks.PREFLANGCOOKIE.value = NICHTS

[userFunc = user_functions->GetValueBySystem(0)]
temp.mainTemplate.marks.PREFLANGCOOKIE.value = DOCH WAS
[end]

ich hab mal gelesen, das es bei der Typo3 Version 4.1.3 Probleme mit der verwendung von userfunc und eigenen klassen geben soll.
Aber es muss doch gehen. #angry#

Was ich eigentlich erreichen möchte:

# includen der globalen class user_functions
page.includeLibs.some_function = fileadmin/scripts/user_functions.php

#Marker vordefinieren
temp.mainTemplate.marks.PREFLANGCOOKIE = TEXT
temp.mainTemplate.marks.PREFLANGCOOKIE.value = NICHTS

#Abfragen ob etwas bestimmte werte enthält und dann je nachdem welcher inhalt zutrifft, den Marker anpassen
#GetValueBySystem soll testweise auf die gesetzte Systemsprache abfragen, auch wenn ich das mit GP:L machen könnte. ich wills testweise aber so damit ich sehen kann, ob die funktion geht

Ich möchte eine if, elseif haben

also:

if (userFunc = user_functions->GetValueBySystem(0))
{
temp.mainTemplate.marks.PREFLANGCOOKIE.value = DOCH WAS 0
}
elseif (userFunc = user_functions->GetValueBySystem(1))
{
temp.mainTemplate.marks.PREFLANGCOOKIE.value = DOCH WAS 1
}
else
{
temp.mainTemplate.marks.PREFLANGCOOKIE.value = DOCH NICHTS
}

Wie genau muss ich das jetzt im TS schreiben?

So?

[userFunc  = user_functions->GetValueBySystem(0)]
#wenn sprache = 0 dann
temp.mainTemplate.marks.PREFLANGCOOKIE.value  = DOCH WAS 0
[userFunc  = user_functions->GetValueBySystem(1)]
#wenn sprache = 1 dann
temp.mainTemplate.marks.PREFLANGCOOKIE.value  = DOCH WAS 1
[userFunc  = user_functions->GetValueBySystem(2)]
#wenn sprache = 2 dann
temp.mainTemplate.marks.PREFLANGCOOKIE.value  = DOCH WAS 2
[userFunc  = user_functions->GetValueBySystem(3)]
#wenn sprache = 3 dann
temp.mainTemplate.marks.PREFLANGCOOKIE.value  = DOCH WAS 3
[else]
# wenn keine der conditions zutrifft.
temp.mainTemplate.marks.PREFLANGCOOKIE.value  = DOCH NICHTS
[end]

LG und Vielen Dank im Voraus
Charly

karlchen ·

du ruft hier eine userFunc als Condition auf, hier geht nur der aufruf einer Funktion, nicht einer Class

also höchstens so

[userFunc = user_getValueBySystem(0)]

in deinem Fall könntest du Case nutzen:

temp.text = COA
temp.text{
	20 = CASE
	20.key.data = GPvar:deineÜbergebeneVariable
	20.key.intval  = 1
	20 {
		1 = TEXT
		1.value = DOCH WAS 0
		2 = TEXT
		2.value = DOCH WAS 1
		3 = TEXT
		3.value = DOCH WAS 2
		4 = TEXT
		4.value = DOCH WAS 3
	}
	if.isTrue.data = GPvar:deineÜbergebeneVariable
}

temp.mainTemplate.marks.PREFLANGCOOKIE < temp.text