[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