[Frage] FLUID: if-Verzweigung vereinfachen

  • 0 x
    26 Beiträge
    0 Hilfreiche Beiträge
    21. 01. 2015, 11:42

    Moin,
    ich stand schon mehrfach vor dem Problem, dass mein FLUID-Code durch einfache if-Verzweigungen aufgeblasen wird.

    Wir nutzen auf einer Seite ein DCE, welches unter anderem ein Bild darstellt. Wenn das Feld '{field.link}' einen Wert hat, soll das Bild verlinkt sein. Kann ich folgenden Code so schreiben, dass ich nur einmal '<f:image>' benutzen muss, um das Bild '{field.img}' anzuzeigen?

    Hat jemand generell Verbesserungsvorschläge/Tipps um den Code zu verbessern?

    1. {namespace dce=Tx_Dce_ViewHelpers}
    2. <f:layout name="None" />
    3.  
    4. <f:section name="main">
    5. <div class="b-infobox">
    6. <b class="b-infobox__title">{field.title}</b>
    7. <f:if condition="{field.img}">
    8. <f:if condition="{field.link}">
    9. <f:then>
    10. <f:link.page pageUid="{field.link}">
    11. <f:image src="uploads/pics/{field.img}" width="275" alt="{field.title}" class="b-infobox__img" />
    12. </f:link.page>
    13. </f:then>
    14. <f:else>
    15. <f:image src="uploads/pics/{field.img}" width="275" alt="{field.title}" class="b-infobox__img" />
    16. </f:else>
    17. </f:if>
    18. </f:if>
    19. <span class="b-infobox__text"><f:format.html>{field.text}</f:format.html></span>
    20. <f:if condition="{field.pdf}">
    21. <f:if condition="{field.hidePdfThumbnail} == 0">
    22. <f:image src="uploads/pdfs/{field.pdf}" width="275" alt="{field.title}" class="b-infobox__img" />
    23. </f:if>
    24. <ul class="b-pdf-buttons stack-for-small button-group">
    25. <li><span class="b-pdf-buttons__button button tiny pdf-link--preview"><i class="fa fa-eye"></i> <f:translate key="{tsSetup.lib.lll.value}preview" /></span></li>
    26. <li>
    27. <f:link.page class="b-pdf-buttons__button button tiny pdf-link--download" additionalAttributes="{download:true}" pageUid="/uploads/pdfs/{field.pdf}"><i class="fa fa-download"></i> <f:translate key="{tsSetup.lib.lll.value}download" /></f:link.page>
    28. </li>
    29. </ul>
    30. </f:if>
    31. </div>
    32. </f:section>


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    21. 01. 2015, 13:49

    Du könntest einen eigenen Image ViewHelper schreiben, an den field.img und field.link übergeben werden können... wäre etwas übersichtlicher im Template, aber meiner Meinung nach den Aufwand nicht wert.
    Sieht soweit alles sauber aus.

  • 1