公告:

怎么屏蔽掉joomla后台的菜单栏的那个“菜单”项

作者:star0312 / 时间:12年前 (2013/10/25) / 分类:Joomla / 阅读:1693 / 评论:0

这里只是举例说明,自己举一反三解决。URL路径:administrator/index.php?option=com_menus&view=items,这里看到view=items,因此找到文件目录:administrator\components\com_menus\views\items,在这里的view.html.php中找到JToolBarHelper::XXX  ,XXX对应你要删的那个,屏蔽掉就可以了。新增也是这个道理,加JToolBarHelper。

追问
好谢谢你的回答啊,只是找不到你说的那个文件呢,就比如说这个路径要怎么找呢:index.php?option=com_menus&task=view&menutype=mainmenu,这个要怎么找
回答
不好意思,我上面讲的对应1.7的路径,你的应该是1.5的吧。找到了,在\administrator\components\com_menus\views\list\view.php中,也是JToolBarHelper引导。你可以从option=com_menus中锁定它是在com_menus中,再在views目录下一个一个找就是了。
追问
之前我也按照你刚开始说的找了,你刚说的那个文件我也去仔细的查看过,可能是我刚涉足php和joomla,找不到我想要的那个代码哦,我接个图给你看下,不知道你能不能帮忙看下呢,就是要屏蔽掉那个“mainmenu”谢谢你了
回答

这个只能在数据库里面删除#__menu_type中对应的mainmenu记录才行了。给你讲讲我的查找过程。

1、首先你看到这个页面,就要确定这些数据是从哪里出来的,也就是说要找到对应的模板: 扩展->模板管理->看看后台模板用的是什么。我的是khepri。

2、使用firebug查看“菜单”对应了khepri模板index.php中的哪一部分。<div id="module-menu">  <jdoc:include type="modules" name="menu" /></div>查到其对应这个。也就是说它对应了一个后台menu模块(modules),因此要查看模块管理,后台模块,找到Admin Menu,其类型为mod_menu,因此找到目录:administrator\modules\mod_menu,在里边看到mod_menu.php文件,打开发现其引用了modMenuHelper::buildMenu();因此要看helper.php文件buildMenu函数,发现Line 96-105foreach ($menuTypes as $menuType) {    $menu->addChild(     new JMenuNode(      $menuType->title . ($menuType->home ? ' *' : ''),       'index.php?option=com_menus&task=view&menutype='      . $menuType->menutype,      'class:menu'     )    );   }这段对应该该项输出,屏蔽掉会发现mainmenu没有输出了。因此要找$menuTypes,其在Line 52 对应 $menuTypes  = MenusHelper::getMenuTypelist();即要找到MenusHelper的getMenuTypelist函数,MenusHelper是组件的helper.php文件对应的类,找到目录:administrator\components\com_menus\helpers,发现helper.php文件,打开可找到getMenuTypelist函数,有: $query = 'SELECT a.*, SUM(b.home) AS home' .    ' FROM #__menu_types AS a' .    ' LEFT JOIN #__menu AS b ON b.menutype = a.menutype' .    ' GROUP BY a.id';因此知道它引用了#__menu_types 和 #__menu两个表,查看下数据库,就能找到你想要的结果了。到此,问题算解决了吧。这里是一整个连贯的溯源思路,希望你能举一反三。Joomla我也是刚刚起步,路还很长,不过很好玩,共勉了!

  • 我的QQ二维码
  • QQ群
  • 我的微信二维码
  • 微信公众号

没有评论,留下你的印记,证明你来过。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。