【问题标题】:drupal menu customizacion via css?通过css定制drupal菜单?
【发布时间】:2011-01-11 20:00:15
【问题描述】:

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

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

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

提前感谢。

【问题讨论】:

    标签: css drupal-theming


    【解决方案1】:

    您可以为每个菜单项添加一个类似 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']);
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      希望这会有所帮助。

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

      干杯, 约根

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多