\sites\all\themes\wellington にある wellington という Drupal テーマがあります。menu_item 関数をオーバーライドして、http://drupal.org/node/310356の指示に従いました。
説明されているように、クラスをliに追加したいと思います。
関数 wellington_menu_item に名前を付けようとしましたが、phptemplate_menu_item を試しましたが、うまくいきませんでした。関数に印刷ステートメントを入れることができ、これらは画面に表示されます。
さらに、返される直前に正しい文字列を出力できますが、メニューがレンダリングされると、違いはなく、通常のメインの文字列が表示されます。つまり、オーバーライドはありません。
テーマ自体は正常に機能しており、CSS と HTML を確認できます。
困惑しています、何かアイデアはありますか?
<?php
/**
* Theme override for theme_menu_item()
*/
function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
$class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
if (!empty($extra_class)) {
$class .= ' '. $extra_class;
}
if ($in_active_trail) {
$class .= ' active-trail';
}
// Add unique identifier
static $item_id = 0;
$item_id += 1;
$id .= ' ' . 'menu-item-custom-id-' . $item_id;
// Add semi-unique class
$class .= ' ' . preg_replace("/[^a-zA-Z0-9]/", "", strip_tags($link));
return '<li class="'. $class .'" id="' . $id . '">'. $link . $menu ."</li>\n";
}
?>
を使用して page.tpl.php で呼び出されます
<?php print theme('links', $primary_links); ?>