教程栏目

joomla中文网出品的官方教程

本节要解决的一个问题是如何在自己的组件中使用子菜单呢?有时候我们需要实现下面的效果,那么我该如何做呢?

 要实现子菜单我们需要做下面的几步:

增加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中还没有测试。

 

 

 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第1章 Joomla入门教程

第3章 C计划

第5章 E计划

第6章 H计划

第7章 G计划

第9章 运行环境

第11章 主从与集群

第12章 模块开发

第13章 插件开发

第14章 j2.x组件开发教程

第15章 页面定制教程

第16章 页面构造器

第17章 joomla升级

第18章 其他系统迁移

第19章 流量翻倍计划