教程栏目

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章 页面构造器