2017-10-11 1 views
0

hervorheben Ich verwende das Mittwald Typo3 Starterkit (Online-Demo). Ich habe herausgefunden, dass dieses Starterkit den Typo3 Fluid Directory Helper benutzt. Wie kann man eine bestimmte CSS-Klasse für eine aktive/ausgewählte Seite angeben (ich möchte die aktuelle Seite im Menü hervorheben)?Typo3 Fluid DirectoryViewHelper: Aktuelle Seite im Menü

Bis jetzt habe ich meine Menüs mit Typo3 (HMENU/TMENU/ACT) realisiert, aber mit diesem flüssigen Verzeichnis-Helfer bin ich völlig festgefahren.

Nach dem Fluid Documentation könnte es 2 Möglichkeiten sein:

  • classActive/classCurrent (string)
  • Linkactive/linkCurrent (boolean)

Der ursprüngliche Code ist:

<!-- mainmenu begin --> 
    <ce:menu.directory pageUids="{0: '{mainMenuStartingPid}'}" as="pages" levelAs="level" maximumLevel="2"> 
     <f:if condition="{pages}"> 
      <ul id="{f:if(condition:'{mainMenuClass}',then:'c{mainMenuClass}',else:'mainmenu')}"> 
       <f:for each="{pages}" as="page"> 
        <li> 
         <f:link.page pageUid="{page.uid}"> 
          {page.title} 
         </f:link.page> 
         <!-- submenu deleted for better overview --> 
        </li> 
       </f:for> 
      </ul> 
     </f:if> 
    </ce:menu.directory> 
    <!-- mainmenu close --> 

Mein Versuch, der nicht funktioniert hat (Klasse "aktuelle" nicht angezeigt, wenn Bedingung linkCurrent nicht ausgeführt wird):

<!-- mainmenu begin --> 
    <ce:menu.directory pageUids="{0: '{mainMenuStartingPid}'}" as="pages" levelAs="level" maximumLevel="2"> 
     <f:if condition="{pages}"> 
      <ul id="{f:if(condition:'{mainMenuClass}',then:'c{mainMenuClass}',else:'mainmenu')}"> 
       <f:for each="{pages}" as="page"> 
        <f:if condition="{linkCurrent}"> 
         <li class="current"> 
          <f:link.page pageUid="{page.uid}"> 
           {page.title} 
          </f:link.page> 
          <!-- submenu deleted for better overview --> 
         </li> 
        </f:if> 
        <f:else> 
         <li> 
          <f:link.page pageUid="{page.uid}"> 
           {page.title} 
          </f:link.page> 
          <!-- submenu deleted for better overview --> 
         </li> 
        </f:else> 
       </f:for> 
      </ul> 
     </f:if> 
    </ce:menu.directory> 
    <!-- mainmenu close --> 

Hat jemand eine Idee, wie dieser flüssige Verzeichnishelfer funktioniert? Leider gibt es nur wenige Beispiele. Vielen Dank!

+0

PS: Natürlich habe ich auch page.linkCurrent () ohne Ergebnis versucht. – tm011036

+0

PPS: Hinzufügen von classActive = "'active'" nach ce: menu.directory erzeugt einen Fehler – tm011036

Antwort

0

Hinweis: Der ce:menu.directory ViewHelper ist nicht identisch mit dem verknüpften VHS Menu DirectoryViewHelper.

Das Präfix ce: wird normalerweise von FluidStylledContent ViewHelpers verwendet, die auch Menü-View-Helfer haben.

Wenn Sie wissen möchten, welche Eigenschaften jede page Zeile zur Verfügung hat, sollten Sie die Variable f:debug ViewHelper verwenden, um die Variable zu überprüfen.

<f:debug>{page}</f:debug> 

Ich habe nicht versucht, dass View Helfer, immer, aber es sieht aus wie es noch keine Informationen über sich einsetzen, wenn es die aktuelle Seite ist oder wenn es „aktiv“ (in rootline) ist wie sind Sie wurden früher aus HMENU-Inhaltsobjekte.

Sie können diesen ViewHelper durch das VHS-Erweiterungsmenü ViewHelper ersetzen.

Verwandte Themen