2017-02-23 2 views
1

Ich möchte eine bedingte Anweisung für das Anwenden einer anderen Vorlage auf News (tt_news) verwenden. Derzeit verwende ich eine Benutzerfunktion, die wahr/falsch zurückgibt. Wenn die aktuelle News eine bestimmte Kategorie hat und korrekt funktioniert, geben Sie 1 zurück, andernfalls geben Sie Null zurück.Wie verwendet man Variable/user_func in einer bedingten Anweisung in Typoscript (TYPO3 6.2)?

folgte ich die offizielle Dokumentation und andere Seiten, so habe ich den Zustand

[userFunc = user_isLatin] 
plugin.tt_news.templateFile = fileadmin/templates/plugins/tt_news/latin_detail.html 
page.1010 = TEXT 
page.1010.value = LATIN 
[ELSE] 
plugin.tt_news.templateFile = fileadmin/templates/plugins/tt_news/general_detail.html 
page.1010 = TEXT 
page.1010.value = OTHERS  
[END] 

aber es zeigt immer OTHERS. Ich versuchte folgendes mit Variablen

temp.catuid = USER 
temp.catuid.preUserFunc = user_ttNewsInCat 

latin = TEXT 
latin.value < temp.catuid 

[latin.value = 1] 
.... 
[ELSE] 
.... 
[END] 

aber es funktioniert auch nicht.

+0

Haben Sie die Lösung gefunden? –

+0

Nein für diesen Weg. Ich musste einen anderen Weg finden, um dies zu lösen, durch Programmierung im Frontend mit Markern und Javascript. –

Antwort

0

Es funktioniert genau so, wie Sie es versucht haben. Dies ist cobndition ich jetzt getestet:

[userFunc = user_isLatin] 
page.10 = TEXT 
page.10.value = LATIN 
[ELSE] 
page.10 = TEXT 
page.10.value = OTHERS  
[END] 

Und das ist die Umsetzung der Benutzerfunktion, die in den AdditionalConfiguration.php oder der localcon.php Datei Ihrer Extension sein muss (ich nehme an, das, was man ist verpasst).

function user_isLatin() { 
    return TRUE; 
} 

Weitere Einzelheiten finden Sie in der Dokumentation offcial: https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/Conditions/Reference/Index.html#userfunc

+0

Ich habe versucht, Ihren Vorschlag, aber Typoskript-Bedingung nicht richtig funktioniert –

0

Sie brauchen keine user_ Funktion in 6.2 zu verwenden, können Sie auch eine Klasse verwenden. Und Sie müssen es nicht in AdditionalConfiguration.php definieren.

TypoScript:

[userFunc = Vendor\ExtName\Condition\TypoScriptCondition::isLatin()] 
... 
[else] 
... 
[global] 

PHP:

<?php 
namespace Vendor\ExtName\Condition; 

class TypoScriptCondition 
{ 

    public static function isLatin() 
    { 
     ... 
     return true; 
    } 
} 
+0

Funktioniert wahrscheinlich, aber es ist immer noch ein undokumentiertes Feature in 6.2. Zumindest nicht in diesem spezifischen Umfang. Wahr ist, dass im globalen Geltungsbereich in allen Benutzerfunktions-Anwendungsfällen Namespaces verwendet werden können, um eine Benutzerfunktion aufzulösen, die noch eine nützliche Information ist. –

+0

Ich habe eine Pull-Anfrage gemacht, um diese zu der Dokumentation von 6.2 hinzuzufügen und sie auch zu 7.6 hinzuzufügen: https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/Conditions/Reference/#userfunc –

Verwandte Themen