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)を設定することで解決しました。
さよなら