如何为自定义组件添加单独的管理菜单


9

默认情况下,可以在管理端的“扩展”菜单下看到自定义组件。但是,如何在“扩展”菜单(如“我的组件”)附近的顶部创建自己的菜单,并在其下显示子菜单链接?


您是否在谈论Community Builder所做的同一件事?如果是这样,我最初会建议您浏览他们的代码,但是我自己看过之后,我会有所不同:/
Lodder

@Lodder是的,您是正确的。我期望有一个类似的模块。我参考了CB模块,我看到他们有很多代码可以实现它。我认为可能有一种更简单的方法,这就是这个问题的原因。
Malaiselvan 2015年

Answers:


6

我们可以使用以下代码段开发一个管理端组件。

mod_custommenu.php

$input   = JFactory::getApplication()->input;
$menu    = new JAdminCSSMenu;
$enabled = $input->getBool('hidemainmenu') ? false : true;

// Render the module layout
require JModuleHelper::getLayoutPath('mod_custommenu', $params->get('layout', 'default'));

上面的代码创建一个菜单对象并加载default.php

default.php

$document = JFactory::getDocument();
$direction = $document->direction == 'rtl' ? 'pull-right' : '';
require JModuleHelper::getLayoutPath('mod_custommenu', $enabled ? 'default_enabled' : 'default_disabled');
$menu->renderMenu('menu', $enabled ? 'nav ' . $direction : 'nav disabled ' . $direction);

上面的代码将确定菜单的显示方式。启用或禁用。

default_disabled.php

$menu->addChild(new JMenuNode(JText::_('Menu'), null, 'disabled'));

上面的代码只是在禁用的情况下显示灰色菜单。

default_enabled.php

$menu->addChild(new JMenuNode(JText::_('Menu'), '#'), true);
$menu->addChild(new JMenuNode(JText::_('Menu1'), '', 'class:menu1'), 1);
  $menu->addChild(new JMenuNode(JText::_('Menu2'), '#', 'class:menu2'));
  $menu->getParent();
$menu->getParent();

上面的代码将添加菜单和菜单项。


非常完整,解释得很好,效果很好,谢谢!
jackJoe16年

4

您将需要覆盖管理模板来执行此操作。

这里有一篇非常详细的文章,介绍了如何执行此操作。它是为Joomla 2.5编写的,但也应该适用于Joomla 3.0

http://magazine.joomla.org/issues/item/721-Customizing-the-Admin-Menu


我敢肯定,肯定还有其他方法:安装后,Virtuemart 3出现在顶部菜单中。
Khaarkh 2015年

他们可以通过安装过程中只需添加模板覆盖做到这一点
瑟伦·贝克詹森

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.