教程栏目

joomla中文网出品的官方教程

在上一节,我们使用JControllerForm类改进了item控制器,在这一节我们将介绍使用JControllerAdmin类改进items控制器(注意这里是items控制器)。

1,本节目标


了解JControllerAdmin类的使用

2,如何选择合适的控制器基类


上一节已经初步的介绍了Joomla能够提供的控制器基类有3个。其中JControllerLegacy是另外两个的基类。因此,实际上我们就是在决定如何从JControllerForm 和 JControllerAdmin中做选择。

一般情况下,当在编辑页面,针对一个表单的时候。此时应该使用的控制器应该是JControllerForm。因为此时它已经帮我们自动的实现了保存,编辑,新建等通用功能。

当在对数据列表进行操作,需要对一些系列的数据进行管理的时候,此时应该使用JControlerAdmin控制器,因为它实现了删除,发布,排序,签入等通用功能。

请注意,JContollerAdmin控制器并没有继承自JControllerForm类,因此,JControllerAdmin类并没有实现针对单个记录的自动数据管理操作。

3,改进items控制器


items控制器主要是对一系列的数据进行操作的,因此,我们可以将其基类继承自JControllerAdmin类。这样,就可以使用父类提供的删除,发布,排序,签入得方法了。

修改items.php文件。具体的代码如下: 

<?php
/**
 *	description:ZMAXBOOK组件 Items控制器文件
 *  author:min.zhang
 *	Url:http://www.zmax99.com
 *  copyright:南宁市程序人软件科技有限责任公司保留所有权利
 *  date:2021-06-08
 *  version:v2.0.8
 *  @license GNU General Public License version 3, or later
 */

defined('_JEXEC') or die;

class zmaxbookControllerItems extends JControllerAdmin
{
	//重新定义控制器关联的模型
	public function getModel($name="item",$prefix="zmaxbookModel",$config=array())
	{
		return parent::getModel($name,$prefix,$config);
	}
}	
?>

在上面,我们做了3个改进

将原来extends JControllerLegacy 修改为  extends JControllerAdmin

由于JControllerAdmin类中已经实现了delete方法,因此,将原先我们自己实现的delete方法给删除了

在控制器中重写了父类的getModel方法

重点关注一下getModel方法

public function getModel($name="item",$prefix="zmaxbookModel",$config=array())

这个方法的意义是让控制知道需要关联哪一个模型。虽然父类也实现了getModel方法,但个人感觉这个方法实现得比较差,不够智能。

如果我们走父类的getModel方法,最终父类默认会关联ZmaxbookModelzmaxbook这个模型类,明显不是我们需要关联的类。为此,我们重写了父类的方法,手动指定$name="item",$prefix="zmaxbookModel".最终需要加载的类为zmaxbookModelItem。

至此,我们的items控制器也修改完成。再次执行删除,功能和以前完全一样。

4,说明


在执行删除的时候,提示删除成功的时候大家会看到一串字符,如图:

上面是一串提示成功的信息。由于我们没有准备中文语言包,所以直接以原样输出。在后期介绍如何为组件制作了中文语言包时将详细说明。在此先不展开

5,v2.0.8版本


 [下载文件:]com_zmaxbookv2.0.9_2021-09-15_for_j3x.zip

 

作者: 樱木花道

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章 流量翻倍计划