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

Mikel lists at con-version.com
Wed Mar 18 10:10:45 CET 2015


Korrektur. In meiner Mail hat es diverse Leerzeichen entfernt:

Es muss heißen:
<f:switch expression
<f:case value

Also einfach jeweils wieder ein Leerzeichen rein.

Mikel

Am 18.03.15 um 10:03 schrieb Mikel:
> Du kannst fluid Standards nehmen:
>
> <f:switchexpression="{lib.backendlayout}">
>    <f:casevalue="4">
>       Dieser Case wird ausgeführt.
>    </f:case>
>    <f:casevalue="7">
>       Der andere Case wird ausgeführt.
>    </f:case>
> </f:switch>
>
> Zuvor musst Du natürlich Deine Variable lib.backendlayout wieder 
> zurückbauen und die tatsächliche ID des Backendlayouts übergeben.
>
> Mikel
>
> Am 18.03.15 um 09:56 schrieb Philipp Holdener:
>> VHS hab ich schon installiert für ein Downloadmodul dass mir die 
>> Grösse einer verlinkten Datei ausgibt. Das wäre also kein Problem
>>
>> Jedoch verstehe ich nicht ganz wie ich das jetzt angehen muss?!
>> Auf
>> https://fluidtypo3.org/viewhelpers/vhs/master/Variable/SetViewHelper.html 
>> verstehe ich das ganze nicht wirklich :-(
>>
>>
>>
>>
>>
>>> 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
>>>
>>
>> _______________________________________________
>> 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