[Frage] Anderes Logo für Unterbereiche

  • mimii mimii
    Jedi-Ratsmitglied
    0 x
    611 Beiträge
    1 Hilfreiche Beiträge
    25. 06. 2015, 12:50

    Hallo ins Forum,

    mit folgendem Fluid-Template versuche ich ein Standardlogo einzubinden, das auf allen Seiten außerhalb der Bereiche mit den pid's 2, 3 und 4 angezeigt wird.

    1. <div id="logo">
    2.  
    3. <f:if condition="{data.pid} != 2,3,4">
    4. <f:then>
    5. <h1><f:format.raw>{headerLogo}</f:format.raw></h1>
    6. </f:then>
    7. </f:if>
    8.  
    9. <f:if condition="{data.pid} == 2">
    10. <f:then>
    11. <h1><f:format.raw>{headerLogoRot}</f:format.raw></h1>
    12. </f:then>
    13. </f:if>
    14.  
    15. <f:if condition="{data.pid} == 4">
    16. <f:then>
    17. <h1><f:format.raw>{headerLogoGrün}</f:format.raw></h1>
    18. </f:then>
    19. </f:if>
    20.  
    21. <f:if condition="{data.pid} == 3">
    22. <f:then>
    23. <h1><f:format.raw>{headerLogoGelb}</f:format.raw></h1>
    24. </f:then>
    25. </f:if>
    26.  
    27. </div>

    Die jeweiligen Logs werden auf den Unterseiten der jeweiligen Bereiche auch eingebunden, nur das StandardLogo bleibt ebenfalls noch drin. Wie kann ich einstellen, dass dieses nur dann angezeigt werden soll, wenn keine Unterseite der drei Bereiche angezeigt wird.

    Danke für n Tipp und Gruß
    mimii


  • 1
  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    25. 06. 2015, 18:34

    Das wäre eine Möglichkeit mangels OR in Fluid:

    1. <f:if condition="{data.pid} > 4">
    2. <h1><f:format.raw>{headerLogo}</f:format.raw></h1>
    3. </f:if>
    4.  
    5. <f:if condition="{data.pid} < 2">
    6. <h1><f:format.raw>{headerLogo}</f:format.raw></h1>
    7. </f:if>

    PS: das <f:then> brauchst du nicht, wenn es kein <f:else> gibt.

    http://www.aemka.de/

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    26. 06. 2015, 07:40

    Es gibt schon ein OR in FLUID,
    nämlich mit Hilfe des if-stacks aus vhs:

    1. <v:if stack="{0: data.pid, 1: '!=', 2: '2', 3: 'AND', 4: data.pid, 5: '!=', 6: '3', 7: 'AND', 8: data.pid, 9: '!=', 10: '4'}">
    2. <f:then>
    3. <h1><f:format.raw>{headerLogo}</f:format.raw></h1>
    4. </f:then>
    5. </v:if>

  • mimii mimii
    Jedi-Ratsmitglied
    0 x
    611 Beiträge
    1 Hilfreiche Beiträge
    26. 06. 2015, 09:38

    Vielen Dank für die Hilfe,

    der Vorschlag von aemka funktioniert, wobei ich den Ansatz mit dem if stack eigentlich logischer finde. Dieder funktioniert aber nicht. Es werden in einem der bestimmten Bereiche (2, 3, 4) immer noch beide Logos angezeigt um ich Quellcode für eine Seite im Unterbereich steht

    1. <div id="logo">
    2. <v:if stack="{0: data.pid, 1: '!=', 2: '2', 3: 'AND', 4: data.pid, 5: '!=', 6: '3', 7: 'AND', 8: data.pid, 9: '!=', 10: '4'}">
    3. <h1><img src="fileadmin/img/headerLogo.png"></h1>
    4. </v:if>
    5. <h1><img src="fileadmin/img/logoRot.png"></h1>
    6. </div>

    Muss ich im Fluid oder im TYPO3 etwas einstellen, dass der if stack funktioniert?

    Vielen Dank für Eure Hilfe und Gruß
    mimii

  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    27. 06. 2015, 09:46

    Es werden in einem der bestimmten Bereiche (2, 3, 4) immer noch beide Logos angezeigt

    Logisch, weil das logoRot.png unbedingt erscheint.
    In diesem Fall brauchst du das <f:then> um das headerLogo.png und <f:else> um das logoRot.png
    ... wobei ich jetzt nicht weiß, wie sich v:ViewHelper mit f:ViewHelper vetragen.
    Allerdings kannst du then und else im v:if auch als Parameter angeben.

    Gruß
    Harald

  • casi-g casi-g
    R2-D2
    0 x
    77 Beiträge
    14 Hilfreiche Beiträge
    27. 06. 2015, 15:13

    Das ganze ist doch eine variable. Warum nicht über typoscript die variable uberschreiben?

  • 1