伟德体育注册 2015-01-22

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


  1. 怎么改?

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


  2. 在哪儿改?

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

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

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

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

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


  • 更多好处:

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


    原代码:

     <a href="/blog_/"<?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="/blog_/"#"" onclick="return false"   class="dropdown-toggle">';
     }else{
    	 $href="/blog_/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="/blog_/"'.$href.'"  class="'.$addclass.'" target="_blank">';"
    	 }else{
    		 echo '<a href="/blog_/"'.$href.'"  class="'.$addclass.'">';"
    	 }
     }
    
    ?>