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@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german