2017-10-11 11 views
0

私はMittwald Typo3 Starterkit(Online-Demo)を使用しています。私はこのStarterkitがTypo3流体ディレクトリヘルパーを使用していることを理解しました。アクティブ/選択されたページに特定のCSSクラスを指定するにはどうすればよいですか(メニューの現在のページを強調したいですか?)Typo3 Fluid DirectoryViewHelper:メニューの現在のページをハイライト表示

これまで、私はTypo3(HMENU/TMENU/ACT)を使用してメニューを認識しましたが、この流体ディレクトリヘルパーでは完全に固執しました。

Fluid Documentationによれば、2つの方法があるかもしれません:

  • classActive/classCurrent(列)
  • linkActive/linkCurrent(ブーリアン)

元のコードがある:

<!-- 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 --> 

私の試みはうまくいきませんでした(クラス "現在"は表示されませんでしたが、条件linkCurrentが実行されていない場合):

<!-- 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 --> 

誰もこの流体ディレクトリヘルパーの仕組みを知っていますか?残念ながら、いくつかの例があります。大いに感謝する!

+0

PS:もちろん、結果を出さずにpage.linkCurrent()を試みました。 – tm011036

+0

PPS:ce:menu.directoryの後にclassActive = "'active'"を追加するとエラーが発生する – tm011036

答えて

0

ce:menu.directory ViewHelperはリンクVHS Menu DirectoryViewHelperと同じではありません。

接頭辞は、FluidStyledContent ViewHelpersで通常使用され、メニュービューヘルパーもあります。

あなたは、各page行が利用できる持っているものの性質を知りたい場合は、変数を検査するf:debugなViewHelperを使用する必要があります。私が今までなViewHelper、ということを試していないが、それは現在のページだかがからに慣れているように、それは(ルートラインで)「アクティブ」かどうあれば、それは、に関するすべての情報を挿入しないように見える

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

HMENUコンテンツオブジェクト。

そのViewHelperをVHS拡張機能のメニューViewHelperに置き換えることができます。

関連する問題