文档章节

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

qingshanli1988
 qingshanli1988
发布于 2015/01/27 10:47
字数 497
阅读 25
收藏 0

            这个问题折腾了两天,不过最后还是搞定了。比如:大家常用的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.'">';
}
 }

?>


© 著作权归作者所有

qingshanli1988
粉丝 0
博文 2
码字总数 571
作品 0
静安
私信 提问
Drupal如何在菜单中向匿名用户显示需要权限才能访问的内容链接

Drupal的菜单系统会隐藏没有权限的链接,比如说如果我们添加一个“登出”链接,匿名用户是不会看到的。 但有时候我们需要向匿名用户显示所有链接,当用户点击后发现权限不足时再要求登录。要...

黄冠能
2012/12/27
984
2
《捷哥浅谈Drupal》第三弹之Drupal 7基本功能概述

Drupal 7.22安装完成后,我们就可以开始使用Drupal7来搭建属于自己的web应用程序,本文先带大家简单体验一下Drupal7.22的基本功能,后续文章会给大家对每一个功能进行详细讲解! 首先,Drupa...

LAMP李捷
2013/05/05
245
0
Android自定义View——从零开始实现可展开收起的水平菜单栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 系列教程:Android开发之从零开始系列 源码:github.com/AnliaLee/ExpandMenu,欢迎star 大家要是看到有错误的地方或者有啥好的建议,...

Anlia
2017/11/10
0
0
Drupal7系统初步设置篇-Ubuntu 14.04 LTS

前面的博文介绍了Drupal7核心、模块和主题如何安装,以及如何使用Drush来进行简化管理。那么接下来为了能够更好地使用Drupal7,还需要对Drupal7做一些初步设置,这里牵涉到界面、管理以及其它...

firehare
2014/06/01
0
0
drupal中hook_menu()使用

hook_menu()钩子可以让模块来注册如何处理URL请求的路径,路径可以只使用来处理URL请求,也可以注册一个链接作为导航菜单。一个路径和它对应的信息通常被叫做“菜单路由项”(menu router i...

rick009
2013/08/15
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

让《强化学习(第2版)》架起一座通往强化学习经典知识宝库的桥梁

上交大计算科学与工程系俞凯教授,5分钟口述讲解,带你快速认识了解年度重磅图书《强化学习(第二版)》! 在 AlphaGo战胜李世石之后,AlphaZero以其完全凭借自我学习超越人类在各种棋类游戏...

博文视点Bv
8分钟前
3
0
TLA7-EVM开发板的处理器、NOR FLASH、DDR3

TLA7-EVM开发板是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板+底板方式的开发板,可快速评估FPGA性能。核心板尺寸仅70mm*50mm,底板采用沉金无铅工艺的6层板设计,专业的PCB...

Tronlong创龙
17分钟前
3
0
UUID的变种-有序

为了解决UUID无序的问题,NHibernate在其主键生成方式中提供了Comb算法(combined guid/timestamp)。保留GUID的10个字节,用另6个字节表示GUID生成的时间(DateTime)。 /// <summary> //...

Canaan_
17分钟前
3
0
Netty学习(6)——通道间数据传输

1. FileChannel实现通道间的数据传输 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel传输到另外一个channel。 transferFrom() FileChannel的transferF...

江左煤郎
21分钟前
3
0
AngularDOM操作

gtandsn
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部