您的位置:首页 > 其它

Drupal 系列四:如何禁用主菜单上有子菜单目录的链接

2015-01-27 00:00 155 查看
摘要: 大家常用的TB Mega Menu,但有子菜单的链接必须定义!可是有时候是不需要,怎么办?

这个问题折腾了两天,不过最后还是搞定了。比如:大家常用的TB Mega Menu,但有子菜单的链接必须定义!可是有时候是不需要,怎么办?

内容来自: http://blog.mreald.com

怎么改?

很简单:把 a标签内容改为:href="#" onclick="return false"

在哪儿改?

第一次尝试:感觉直接改数据库,找到Menu表,把链接字段给改了,或者删除,但结果是,要么不显示,要么生成新的链接。----失败!

第二次尝试:改主题。既然所有的结果输出都经过主题,那么在主题拦截,做出更改,肯定可以!结果:不可以,不论你怎么改,都还是原来的链接 -------失败!

第三次尝试:可以根据 css 的class 定位用JS修改,但只能改href的值,不能增加onclick....(可能js玩的不熟)

第四次尝试:内容的输出可能不是网站主题,而是TB mega menu 模块的主题输出。 找数组输出的地方,改内容,一个晚上尝试,没结果 ----失败!

第五次尝试:定位在模块!读TB Mega menu的源代码,看其逻辑关系--->内容输出--->包装。最后终于发现:在一个tpl.php里面做内容的包装。结果:改html与php结合的代码,为php代码,就OK!

更多好处:

如果在导航栏增加外网的链接,就可以增加 _blank 属性,在新网页打开了!

原代码:

<a href="<?php print in_array($item['link']['href'], array('<nolink>')) ? "#" : url($item['link']['href']);?>" class="<?php print implode(" ", $a_classes);?>">


改为:

<?php

if($submenu && $block_config['auto-arrow']) {
echo '<a href="#" onclick="return false"   class="dropdown-toggle">';
}else{
$href=in_array($item['link']['href'], array('<nolink>')) ? "#" : url($item['link']['href']);
$addclass=implode(" ", $a_classes);
if($href == "http://blog.mreald.com/index.php")
{
echo '<a href="'.$href.'"  class="'.$addclass.'" target="_blank">';
}else{
echo '<a href="'.$href.'"  class="'.$addclass.'">';
}
}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  drupal
相关文章推荐