2

我一直在非常成功地摆弄drupal主题(或者至少,我是这么认为的),但是当我尝试将css编码注入主链接菜单以自定义它时,就像我通常通过html + css做的那样,我打了一个墙。

我已经能够将 css 样式应用于 div、链接和文本,但我想更多地自定义主要(和次要)链接菜单,也许使用一些 css sprite 菜单技术,但同时保持与 drupal 兼容并尽可能多地使用过程中drupal自己的php。或者如果我真的需要重写一些代码,我不介意,虽然我还不是程序员。

我去过几个网站,但没有什么特别有用的东西,所以如果有人能指出我正确的方向,我将不胜感激。

提前谢谢。

4

2 回答 2

0

如果我正确理解您的问题,您会想在菜单中添加一个自定义类/ID。这可以通过覆盖给定菜单的 theme_menu_tree 来完成。我通过将以下内容添加到我的 template.php 文件来为主菜单执行此操作:

function THEMENAME_menu_tree__main_menu($variables){
return '<ul class="menu main-menu">' . $variables['tree'] . '</ul>';
}

希望这可以帮助。

您还应该看一下themer模块,它为您提供了有关模板功能等的建议。

干杯,约根

于 2011-01-26T18:15:20.640 回答
0

您可以为每个菜单项添加一个类似 id 的类 - 在您的 template.php 中添加此功能

function mythemename_menu_item_link($link) {
  if (empty($link['localized_options'])) {
    $link['localized_options'] = array();
  }

  // LOOK HERE
  // add a key for main menu items, so we can theme each item in a different way
  // add this class only for a specific menu
  if ($link['menu_name'] == 'menu-menu-mymenu') {
    if ($link['localized_options']['attributes']['class']) {
      $link['localized_options']['attributes']['class'] .= ' menu-'. $link['mlid'];
    }
    else {
      $link['localized_options']['attributes']['class'] = 'menu-'. $link['mlid'];
    }
  }

  return l($link['title'], $link['href'], $link['localized_options']);
}

这段代码可以更简洁,但我添加了更多行,以便您更好地阅读它。

于 2011-07-27T10:50:22.457 回答