php - 将 css 类添加到 "main menu"(drupal,与柱状网格系统集成)

标签 php css drupal content-management-system drupal-7

我有一个问题要问你。

我正在尝试用 drupal 7 制作一个网站,除了一些小问题,它几乎完成了,我需要主菜单的第一级有一些自定义的 css 类,以便将它集成到 columnal ,这是我打印主菜单的方式:

<?php
    print theme(
        'links__system_main_menu',
        array(
            'links' => $main_menu,
            'attributes' => array(
                            'id' => 'main-menu',
                            'class' => array('menu')
            )
        )
    );
?>

这就是我得到的:

<ul id="main-menu" class="menu">
    <li class="menu-NNN first active">
        <a href="url" title="" class="active">Home</a>
    </li>
    <li class="menu-NNN">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN last">
        <a href="url">click me</a>
    </li>
</ul>

我需要主菜单的第一级有类“col_1”:

<ul id="main-menu" class="menu">
    <li class="menu-NNN first .col_1 active">
        <a href="url" title="" class="active">Home</a>
    </li>
    <li class="menu-NNN .col_1">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN .col_1">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN .col_1">
        <a href="url">click me</a>
    </li>
    <li class="menu-NNN .col_1 last">
        <a href="url">click me</a>
    </li>
</ul>

布局看起来像这样:

/****************************************************************************************
*   *    .row                                                                       *   *
*   *********************************************************************************   *
*   *    #logo.col_5         *   * .pre_1|              .col_5              |.suf_1 *   *
*   *                        *   *       |                                  |       *   *
*   *                        *   *       |                                  |       *   *
*   *                        *   *       |__________________________________|       *   *
*   *                        *mar*       |.col_1|.col_1|.col_1|.col_1|.col_1|       *   *
*   *                        *gin*padding| menu1| menu2| menu3| menu4| menu5|padding*   *
*mar*********************************************************************************mar*
*gin*                                                                               *gin*
****************************************************************************************/
//I'm expecting to have just 5 links in the main menu

也许我可以用 css 手动设置宽度和边距,但我认为这不对 方法,因此,“使用 CSS 为每个子元素设置属性”是行不通的,我也尝试使用“MYTHEME_menu_link”,但这会将属性添加到除主菜单之外的所有菜单,所以这也行不通。

所以问题是:

是否有另一种方法可以将 css 类添加到 drupal 主菜单的第一级?

最佳答案

如果您希望使用自己的模块或主题的 template.php 文件实现相同的目标,您可以使用自己的 drupal 实现 theme_menu_link ()

示例代码:

function [THEME_OR_MODULE]_menu_link(array $variables) {
  $element = $variables['element'];
  $sub_menu = "";

  $element['#attributes']['class'][] = "col_1";

  if ($element['#below']) {
    $sub_menu = drupal_render($element['#below']);
  }
  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
  return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}

关于php - 将 css 类添加到 "main menu"(drupal,与柱状网格系统集成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302580/

相关文章:

带有嵌套 PHP 检查的 PHP PDO 事务

javascript - 单击提交按钮获取输入框值

javascript - 呈现 div 背景图像后的 jQuery 事件

drupal - HTML 模板到 Drupal 主题

drupal - Drupal 6 中允许不同用户类型注册吗?

php - 在 mysql_fetch_array() 上循环运行时使用 PHP 的奇怪结果

php - 使用 mysql 返回 2 个日期之间的特定元素

php - 从 wordpress 安装运行 exec() Rscript

jquery - 水平下拉选择选项菜单

php - 从 PHP 更改 SQL 查询