0

jqueryアコーディオンメニュー(リンクテキスト)でプライマリリンクメニューブロックを変換しようとしています。Drupalのアコーディオンメニューモジュールをテストしましたが、機能しません。

私のプライマリリンクブロックの場合、多かれ少なかれこのhtml出力があります。

    <ul id="accordion">  
             <li>  
               <a href="#recent" class="heading">Recent Entries</a>  
                 <ul id="recent">  
                     <li><span class="date">01.19.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.15.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.13.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.11.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.10.2009</span> <a href="#">Recent Entry Title</a></li>  
                 </ul>  
             </li>

             <li>  
               <a href="#recent" class="heading">Recent Entries</a>  
             </li>  
             <li>  
                 <a href="#popular" class="heading">Popular Entries</a>  
                 <ul id="popular">  
                     <li><span class="date">08.16.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">06.12.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">04.12.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">06.12.2007</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">03.12.2007</span> <a href="#">Popular Entry Title</a></li>  
                 </ul>  
             </li>  
             <li>  
                 <a href="#categories" class="heading">Categories</a>  
                 <ul id="categories">  
                     <li><a href="#">Category Name</a> <span class="count">7</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">4</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">15</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">29</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">8</span></li>  
                 </ul>  
             </li>

        </ul>

私は子供といくつかの主要なリンクを持っています:

  • 地域
    • 地図
    • ギャラリー
  • 製品
    • ワイン
    • 眼鏡
  • 連絡先

Devel Themer Moduleは、「theme_menu_item」関数をオーバーライドする必要があると言っていますが、続行する方法がわかりません。「template.php」ファイルでこの関数を編集するだけで目標を達成できますか?

上記のpage.tpl.phpのコードでテストしたので、jQueryとjQueryUIはうまく機能していると確信しています。

何か案は?ありがとさよなら

編集

私はたくさんのドキュメントとdrupalフォーラムを読みましたが、同様のリクエストを見つけることができません。ulにidタグを追加するこのコードを使用して、子なしでプライマリリンクhtmlのみを編集できます。

function basic_menu_tree($tree) {
  return '<ul id="accordion" class="menu">'. $tree .'</ul>';

}

問題は子ulにあります。実際、上記の関数は子ulにもid = "accordion"タグを追加し、jqueryスクリプトに悪影響を及ぼします。

プライマリリンクメニューブロックhtmlのみをカスタマイズしたいのですが、解決策がないと信じられません...ありがとう

アップデート

template.phpファイルで上記の関数を使用し、jqueryスクリプトを介してヘッダークラ​​スをプライマリリンクの親に追加して、jquery uiアコーディオンヘッダーオプション(http://jqueryui.com/demos/accordion/#option-header)を設定することで解決しました。

さよなら

4

2 に答える 2

0

jqueryアコーディオンを標準のプライマリメニュー出力に追加する際の問題は何ですか? 必要なものはすべて揃っています。

于 2010-10-20T14:20:04.103 に答える
0

テーマ関数のオーバーライドは、テーマで行われる最も基本的なことです。

短いバージョンは、という名前の関数を作成すると[theme_name]_menu_item、その関数がデフォルトのものの代わりにhtmlを生成するために使用されるということです: theme_menu_item. はい、これはあなたので行うことができますtemplate.php

変更は、プライマリ リンク メニューのメニュー項目だけでなく、すべてのメニュー項目に影響することに注意してください。

ロングバージョン

于 2010-10-19T07:52:53.343 に答える