[TYPO3-german] fluid condition - mehrere mögliche Werte

Philipp Holdener philipp.holdener at me.com
Wed Mar 18 09:37:50 CET 2015


Irgendwie gehts nicht

Ich hab jetzt das hier


lib.backendlayout = CASE
lib.backendlayout {
    key.field = backend_layout
    key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide
          default = TEXT
          default.value = 0
          1 = TEXT
          1.value = 0
          2 = TEXT
          2.value = 0
          3 = TEXT
          3.value = 0
          4 = TEXT
          4.value = 1
          5 = TEXT
          5.value = 0
          6 = TEXT
          6.value = 1
          7 = TEXT
          7.value = 0
     stdWrap.wrap = |
  }



Und das hier im Fluid vom DCE Element

f:if condition="{f:cObject(typoscriptObjectPath:'lib.backendlayout')}==1">
								  <f:then>
										  <div class="content">
											<h1>{slide.titel}</h1>
											<p><f:format.nl2br>{slide.text}</f:format.nl2br></p>
											<a href="{dce:typolinkUrl(parameter:'{slide.buttonLink}')}" 
class="btn" target="{slide.buttonZiel}">{slide.buttonText}</a>
									  </div>
								  </f:then>
								  <f:else>
										<h1>{slide.titel}</h1>
										<p><span><f:format.nl2br>{slide.text}</f:format.nl2br></span></p>
								  </f:else>
								</f:if>





es wird aber immer die else Variante ausgeliefert.


Wenn ich mir mal lib.backendlayout auf page.1 ausgeben lasse steht da 
schön entweder 0 oder 1


Wenn ich im DCE {f:cObject(typoscriptObjectPath:'lib.backendlayout')} 
ausgeben lasse steht da immer 0 ... hm


Gruss
Philipp








> Hallo,
>
> oder Du schaust Dir die vhs-Viewhelper an, z.B. v:variable
>
> Das nutze ich ganz gerne, um sehr verschachtelte Fluid-Templates
> übersichtlicher zu bekommen.
>
> https://fluidtypo3.org/viewhelpers/vhs/master/Variable/SetViewHelper.html
>
> Marc
>
>
> Am 18.03.15 09:13, schrieb Mikel:
>> Hallo Philipp,
>>
>> Du willst einen logischen "Oder-Vergleich", richtig? Also möchtest
>> abfragen, ob Dein Backend-Layout entweder die ID 4 oder die ID 7 hat.
>> Der If-ViewHelper unterstützt per default leider keine logischen
>> Oder-Vergleiche (meines Wissens nach).
>>
>> Ein Workaround wäre: Wenn Du die Backend-Layouts so mappen kannst, dass
>> eine Abfrage wie "ist größer oder gleich 4" passen würde, dann könntest
>> Du den Standard nutzen. Allerdings unsauber, wenn Du in Zukunft mal ein
>> weiteres Layout definierst. Dieser passt dann nämlich direkt in diese
>> Condition.
>>
>> Allerdings gibt es in Fluid auch ViewHelpers für Switch / Case. Diesen
>> könntest Du verwenden.
>>
>> Oder einen eigenen ViewHelper schreiben und darin die gewünschten
>> logischen Vergleiche ausführen.
>>
>> Mikel
>>
>>
>>> Hallo zusammen
>>>
>>> Ich hab hier eine Condition die das Backendlayout abfragt.
>>> Bei Backendlayout ID 4 wird korrekt das in der Condition ausgelöst.
>>> Jetzt hätte ich gerne das gleiche für ID 7 auch.
>>>
>>> Wie mach ich das jetzt?
>>>
>>> Das hier funktioniert für 4
>>> <f:if condition="{f:cObject(typoscriptObjectPath:'lib.backendlayout')}
>>> == 4"
>>>
>>>
>>> <f:if condition="{f:cObject(typoscriptObjectPath:'lib.backendlayout')}
>>> == 4,7">
>>> geht nicht
>>>
>>>
>>> Aus dem da werde ich nicht schlau wie ich das für meinen Fall mache:
>>> http://wiki.t3easy.de/extbase-und-fluid/fluid-ifviewhelper-stringvergleich/
>>>
>>>
>>>
>>> Hat mir jemand einen Tipp?
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
>



More information about the TYPO3-german mailing list