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

Mikel lists at con-version.com
Wed Mar 18 09:52:12 CET 2015


Warum denn so kompliziert, wenn es auch einfacher geht? :-)
Meines Erachtens ist es nicht gerade ideal, wegen einer Variable per TS 
etwas zu bauen, um es dann in Fluid abfragen zu können. Das kann Dich in 
der Zukunft selbst mal verwirren :-)

Probier doch mal den Switch / Case ViewHelper oder wie jemand anderes 
vorgeschlagen hat, die vhs ViewHelper. Da müsstest Du halt wegen diesem 
einen Fall eine weitere EXT installieren.

Wenn Du tatsächlich an dem unteren Beispiel bleiben willst, dann 
versuche mal, die 1 in der Condition als String zu zu übergeben. Du 
erstellt in Deinem TS-Konstrukt einen String, keinen Integer.

Mikel

Am 18.03.15 um 09:37 schrieb Philipp Holdener:
> 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
>>
>>
>
> _______________________________________________
> 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