MVC in Joomla! -- Component

创建一个最基本的组件需要5个文件

site/hello.php             这个是组件的入口

site/controller.php      控制器

site/views/hello/view.html.php             视图,它将接受显示所需要的数据,并把数据传递给模板文件

site/views/hello/tmpl/default.php         模板文件

hello.xml   这个文件将告诉 Joomla! 如何安装这个组件

 

PS:site在这里是固定写法,在组建安装后,他会被自动替换为对应的组件名,比如:如果我们的组件叫hello,那么site在安装后就会被替换为com_hello。

 

我们总是通过一个入口访问Joomla!——在页面这边是index.php,在后台管理端是administrator/index.php。这里这个index.php是Joomla!的文件,而不是组件的一部分,我们通过这个文件来访问我们的组件,形如:

 

index.php?option=com_hello&view=hello

 

在地址栏里输入这个地址就会访问我们组件的入口components/com_hello/hello.php

下面是入口文件样例(代码来自Joomla!官方网站)

 

第一句是安全检查,如果不符合当前安全要求的,比如没有访问权限,页面不能访问

JPATH_COMPONENT 是当前组件的路径,在这个例子中是components/com_hello。如果是管理端,则用JPATH_COMPONENT_ADMINISTRATOR。

 

在controller创建文成后,就要使用它来执行任务了。可以通过在地址栏输入地址来制定要执行的任务,形如:URL: index.php?option=com_hello&task=sometask,如果并没有指定任务,那么将默认执行任务display。

注意:文件结束部分并没有使用标签 ?>来结束文件。从Joomla!1.5以后,所有的纯php文件都将如此。这样做的目的是为了避免生产不必要的空格(希望有一天能明白为啥会这样)

 

创建控制器  site/controller.php

由于这个例子要求的非常简单,所以只有一个任务——说hello

 

除非制定了别的任务,JController总是会在构造函数中注册display任务。display是JController的默认任务。

 

创建视图

视图的任务非常简单——获取到要被现实的数据,并把数据传送给显示模板。传送数据的方法是JView::assignRef。(注意:assignRef的第一个参数不能以下划线开头,例如:$this->assignRef('_greeting',$greeting),如果这样做了,那么assignRef将会返回false或者数据不能被传送到模板中去。)

示例代码:(site/views/hello/view.html.php)

 

 

创建模板

在Joomla!里,模板是把从试图传送过来的数据按照模板规定的样式显示出来。模板就是一个php文件。在模板里使用$this->{propertyname}来访问从视图传送过来的数据变量。

在本示例中,模板非常简单

site/views/hello/tmpl/default.php

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值