[TYPO3-german] fluid condition - mehrere mögliche Werte
Mikel
lists at con-version.com
Wed Mar 18 10:03:25 CET 2015
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
More information about the TYPO3-german
mailing list