特定のメニューにクラスを追加する方法を知る必要があります。たとえば、カスタムメニュー "menu-header-let"があります。このメニューは以下のようにレンダリングされます。
<ul class="menu"><li class="leaf first"><a title="Redirecting to Help Page" href="/vsv/content1">Help</a></li>
<li class="leaf"><a title="" href="/vsv/content1">Home</a></li>
<li class="leaf last"><a title="" href="/vsv/content1">home2</a></li>
</ul>
次のように、ulにクラスを追加したい
<ul class="header-top-menu">
私はphptemplate_menu_tree()を使用しましたが、カスタムメニューごとに異なるクラスが必要です。メニューテーマをオーバーライドし、すべてのカスタムメニューに同じクラスを追加する場合。
Drupalで異なるカスタムメニューが表示されるときに、異なるクラスを追加する方法がわかりません。
私を助けてください。
さて、言及した tutorial のコードbethはバグがあり、機能しません。私が今までに見つけた最良の解決策はこれです:
<?php
function YOUR_THEME_menu_tree($tree) {
if (preg_match('/A unique string in your menu/', $tree)) {
return '<ul class="header-top-menu">' . $tree . '</ul>';
} else {
return '<ul class="menu">'. $tree .'</ul>';
}
}
?>
一意のパスまたはリンクタイトルを文字列として使用して、メニューを識別できます。このソリューションは、引用されたチュートリアルのコメントに触発されました。
あなただけのチュートリアルがあります: http://programmingbulls.com/complete-drupal-6-menu-theming
Drupalでのメニュー項目のテーマ設定はうんざりすることに同意する必要があります。
それを行うモジュール Menu Attributes があります。特定のメニューにId,Name, Target, Rel,Class,Style,Accesskey
属性を追加することもできます。