Zum Inhalt springen

Menü mit Fluid Target _blank

Erstellt am 28. Oktober 2017 · 4 Antworten · letzte Antwort am 3. November 2017

Tags: Fluid, ViewHelper, TYPO3 8, Frage

genua ·

Ich habe ein Menü mit Fluid erstellt. Beim Seitentyp "Link zu externer URL" kann ich CMS das Linkziel wählen. Wie kann ich dieses abfragen?

<v:page.menu>
  <ul class="dropdown menu" data-dropdown-menu data-close-on-click-inside>
      <f:for each="{menu}" as="item-lvl-1">
          <li {f:if(condition:
          '{item-lvl-1.hasSubPages}',then:' class="has-subpages"',else:'')}>
          <a href="<f:if condition='{item-lvl-1.hasSubPages}'><f:then>#</f:then><f:else>{f:uri.page(pageUid:item-lvl-1.uid)}</f:else></f:if>" class="{f:if(condition:'{item-lvl-1.active}',then:' active',else:'')}">{item-lvl-1.linktext}</a>
          <!-- Zweite Ebene -->
          <v:menu pageUid="{item-lvl-1.uid}">
              <ul class="menu horizontal">
                  <li {f:if(condition:
                  '{item-lvl-2.hasSubPages}',then:' class="has-subpages"',else:'')}>
                  <div class="row">
                      <f:for each="{menu}" as="item-lvl-2">
                          <div class="small-3 columns">
                              {f:if(condition:'{item-lvl-2.hasSubPages}',then:'<h5>',else:'')}
                              <a href="{f:uri.page(pageUid:item-lvl-2.uid)}" {f:if(condition:'{item-lvl-2.active}',then:' class="active"',else:'')}>{item-lvl-2.linktext}</a>
                              {f:if(condition:'{item-lvl-2.hasSubPages}',then:'</h5>',else:'')}
                              <v:menu pageUid="{item-lvl-2.uid}">
<f:for each="{menu}" as="item-lvl-3">
    <a href="{f:uri.page(pageUid:item-lvl-3.uid)}" {f:if(condition:'{item-lvl-3.active}',then:' class="active"',else:'')}>{item-lvl-3.linktext}</a>
</f:for>
                              </v:menu>
                          </div>
                      </f:for>
                  </div>
                  </li>
              </ul>
          </v:menu>
          </li>
      </f:for>
  </ul>
</v:page.menu>

Vielen Dank für eure Hilfe.

Norman2k · · Beste Antwort

Es gibt eine wunderbare Debug-Funktion in Fluid! Pack doch folgendes mal in deine 1. for-Schleife:
<f:debug>{item-lvl-1}</f:debug>

Wenn du nichts siehst, musst du im Install-Tool die Debug-Ausgabe aktivieren

genua ·

Perfekt, das hat geholfen:

In meinem Fall habe ich es so gelöst: <f:if condition="{item-lvl-2.target}">target="{item-lvl-2.target}"</f:if>

Danke für den Tipp, <f:debug> kannte ich nicht. Ein sehr wichtiges Instrument!!! Wird mir sicher noch oft helfen.

Norman2k ·

Bitte, gern geschehen. Und weil heute Freitag ist, noch ein Tipp: <f:debug>{_all}</f:debug>
Kannst dann gerne meinen Eintrag als hilfreich oder "Ist Lösung" markieren