官方系列教材 - E计划

Joomla组件开发教程

上一节,在控制器中实际上我们做的只是一个重定向,并没有真的做出编辑页面(视图)。在这一节,我们就来继续完善编辑页面。

1,本节目标


增加编辑视图,了解joomla页面渲染的流程

2,现在的效果


接上一节讲,当选择记录,点击编辑的时候,出现了错误页面,提示找不到item视图,截图如下:

3,为什么会产生这个界面?


实际上,在控制器我们做的仅仅只是一个重定向,重定向的地址为index.php?option=com_zmaxbook&view=item&id=3。如果你手动在地址栏输入这个地址,其结果和点击编辑按钮的效果是一样,在这里就不截图了。

也就是说, 当执行setRedirect后实际上就进入一个新的执行周期和之前的edit控制器已经没有多少关系了。就相当于页面自动跳转了一下。这一点有点绕,大家可以细品一下。

此时,我们可以按照组件执行的路由理论来重新的走一次这个地址:index.php?option=com_zmaxbook&view=item&id=3

  • STEP 1:因为我们在后台,所有会执行administrator/index.php文件
  • STEP 2:在index.php中,系统会检查option参数,发现option参数=com_zmaxbook。
  • STEP 3:当检测到option参数为com_zmaxbook后,系统将控制权转交给com_zmaxbook组件
  • STEP 4:执行com_zmaxbook下面的入口点文件,也就是zmaxbook.php文件
  • STEP 5:在入口点文件中,系统会检查是否存在task变量。如果存在,则进入相应的控制器,执行相应的方法。在本链接中,没有task变量,因此会执行默认的主控制器。也就是controller.php文件
  • STEP 6:在主控制器中,没有设置task变量,因此,系统默认执行display方法
  • STEP 7:在display方法中会检查是否存在view变量,如果存在则加载相应的视图。如果不存在,则加载主控制器的默认视图。在本链接中,存在view=item.因此,按照约定,系统此时应该前往views目录下找item视图,并且检查是否存在zmaxbookViewItem这个视图类。

现在就不难理论为何系统会提示这个找不到item视图的错误了.

4,添加item视图


添加新的视图的方法步骤如下:

STEP 1 :在views文件夹下新建一个文件夹,这个文件夹的名称为你的视图的名称

因为我们的视图是item视图,所以新建的文件夹为item

STEP 2 :在item文件夹下创建一个文件,文件的名称为view.html.php 。这个是固定的

STEP 3:编辑view.html.php这个文件,定义我们的视图类。

按照约定,控制器的类格式应该如下:

class zmaxbookViewItem extends JViewLegacy

 整个视图文件的代码如下:

<?php
defined('_JEXEC') or die;

class zmaxbookViewItem extends JViewLegacy
{
	
}

做完了这些,item视图类就定义好了。

现在再次刷新页面,系统错误提示已经变为找不到布局default.截图如下:

说明视图的问题已经解决了。下一步就是创建布局

5,添加布局文件


 在joomla中,视图最终渲染页面的HTML代码是由布局来产生的,且一个视图支持多个布局,视图的布局文件存在与视图的tmpl目录下面。布局可以在视图中使用layout变量来指定。如果没有指定,则系统默认会加载default布局(也就是default.php文件)。

添加布局的步骤如下:

在item目录下面新建一个tmpl目录,然后在tmpl目录下新建一个default.php文件。default.php 代码如下:

<?php
defined('_JEXEC') or die;
?>
<h1>I am from item view</h1>

 再次刷新页面,可以看到输出如下内容,截图如下:

至此编辑视图就没有报错了。但我们的编辑页面依然还没有着落。上面做的这些,只是完成了joomla要显示页面的一个基本框架。

 

作者: 樱木花道

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