2017-11-09 4 views
0

とアコーディオンメニュー:TYPO3 8.7.9 - 私は次のような簡単なのTypoScriptでアコーディオンメニューを使用して、モバイルナビゲーションのために分割さメニューライン

lib.testMenu = HMENU 
lib.testMenu { 
    entryLevel = 0 
    wrap = <div id="mobile_menu">|</div> 
    1 = TMENU 
    1 { 
     expAll = 1 
     IFSUB = 1 
     IFSUB { 
     wrapItemAndSub = <li class="has-sub">|</li> 
    } 

    wrap = <ul>|</ul> 
    NO.wrapItemAndSub = <li>|</li> 
    } 

    2 < .1 
    3 < .1 
    3 { 
    IFSUB { 
     wrapItemAndSub = <li class="has-sub">|</li> 
    } 
    } 
    4 < .3 
} 

最初の2つのレベルは、通常は見出しを持っています。クラス 'has-sub'を使うと、jqueryを使って次のレベルを開くことができます。第3および第4レベルには内容があります。したがって、それぞれのレベルのWebページへのリンクとその下のレベルを開くためのリンクの両方を含むメニュー行が必要です。 これは次のようになります。

'現在のリンク層|'矢印 '(下のレイヤーを開くリンク)をクリックします。

<li>link-of-the-current-level</li> 
    <li class="has-sub">' Arrow' (link to open the layer below)' ><ul><li> (...)</li><> (...)</li></ul></li> 

何の下位レベルが存在しない場合、多くの試みにもかかわらず、何の

<li class="has-sub"> (...)</li>. 

があってはならない、私は残念ながら解決に近づくしていないので、私は、任意のヒントについては満足しています。私はそれを正しく理解している場合は

答えて

1

、最終的な結果は次のようになります。

<li> 
    <a href="">Title of the page</a> 
</li> 
<li class="has-sub"> 
    'Arrow' 
    <ul> 
     <li> (...)</li> 
     <li> (...)</li> 
    </ul> 
</li> 

私は右ですか?

私はそれがあるべきだと思う:

たぶん
lib.mainmenu = HMENU 
lib.mainmenu { 
    entryLevel = 0 
    wrap = <div id="mobile_menu">|</div> 
    1 = TMENU 
    1 { 
     wrap = <ul>|</ul> 
     expAll = 1 
     NO.wrapItemAndSub = <li class="first">|</li>  
     IFSUB = 1 
     IFSUB { 
      wrapItemAndSub = <li class="first has-sub">|</li> 
     } 
    } 

    2 < .1 
    2.NO.wrapItemAndSub = <li class="second">|</li> 
    2.IFSUB.wrapItemAndSub = <li class="second has-sub">|</li> 
    3 < .1 
    3.NO.wrapItemAndSub = <li class="third">|</li> 
    3 { 
    IFSUB { 

     wrapItemAndSub = <li class="third hasarrow">|</li> 
     allWrap = |</li><li class="third has-sub">'Arrow' 
    } 
    } 
    4 < .3 
    4.NO.wrapItemAndSub = <li class="fourth">|</li> 
    4.IFSUB.wrapItemAndSub = <li class="fourth hassub">|</li> 
    4.IFSUB.allWrap = | 
} 

ないクリーンなソリューション:)私はいくつかのTypoScriptの専門家がもっとうまくできると思います:)

私はちょうどよりよいのためのいくつかのより多くのクラスを追加しました私が印刷していたレベルを理解しています。私が正しく理解していれば、これがあなたのために働くかどうかを教えてください。

+0

お返事ありがとうございました。生成されたHTMLは素晴らしく、excatly私が必要なものです。しかし、今私はアコーデオンのためのjqueryとprolemsを持っています。だから私はより多くのテストをしなければならない。 – Robert

+0

いくつかのテストの後、すべては問題ありません。だからもう一度ありがとう、 – Robert

関連する問題