php-将CSS类添加到“主菜单”(drupal,与列网格系统集成)
作者:互联网
我有一个问题问你.
我正在尝试使用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";
}
标签:drupal,drupal-7,css,php,content-management-system 来源: https://codeday.me/bug/20191101/1981356.html