
本节要解决的一个问题是如何在自己的组件中使用子菜单呢?有时候我们需要实现下面的效果,
要实现子菜单我们需要做下面的几步:
增加helper文件夹和文件
在你组件的根目录下增加一个hepers文件夹。然后在这个文件中新建一个文件和你的组件的名称一样。比如我们超级汉化组件,所以我取了一个名字 superhh.php.理论上这个文件夹的名称和文件的名称都是随意的。
实现增加子菜单的函数
代码如下:
/** * Configure the Linkbar. * * @param string The name of the active view. */ public static function addSubmenu($submenu) { JSubMenuHelper::addEntry(JText::_("COM_SUPERHH_SUBMENU_ITEMS"),'index.php?option=com_superhh',$submenu == 'items'); JSubMenuHelper::addEntry(JText::_("COM_SUPERHH_SUBMENU_CONFIG"),'index.php?option=com_superhh&view=language',$submenu == 'language'); }
上面的代码非常的简单,封装了一个函数addSubmenu(这个函数的名字是任意的),这个函数里面主要调用了 JSubmenuHelepr::addEntry这个函数。这个函数接受3个参数,第一个参数是子菜单的名称,第二是子菜单的链接,第三个是是否是激活 的。这个激活并没有实际的意义,只是高亮显示该菜单项而已。
向系统注册类
在组件的入口点文件。在超级汉化组件来说就是superhh.php文件。在这个文件中增加下面的代码:
// require helper file JLoader::register('superhhHelper',dirname(__FILE__).DS.'helpers'.DS.'superhh.php');
显示子菜单
在组件的中显示子菜单,你可以在视图中调用,也可以在控制器的display函数中调用。效果一样。
//call parent behavior superhhHelper::testaddSubmenu('language'); JToolBarHelper::title(JText::_("COM_SUPERHH_ZMAX_SUPERHH"));
完成了上面基本,我们的组件就具备了子菜单了。
备注
以上代码在j25中测试通过。在j33中还没有测试。
评论 (0)