1) 访问结果

向视图渲染数据

可以使用类属性或$this->setRenderData向视图传递数据。

在控制器中传递数据

在模板(视图)中输出数据

视图1. 视图目录

iWebShop的视图存放在根目录下的views目录下,views下的每个目录为一个主题。

Iwebshop系统有三个模块,前台模块、商家模块、后台模块,那我们这个视图和模块是对应的,default、huawei对应前台模块,sysseller对应商家模块,sysdefault对应后台模块。

1) default

系统前台页面的默认主题

2) huawei

前台主题

3) sysdefault

系统后台的默认主题

4) sysseller

商家后台主题

主题目录结构

下面以default主题为例,说明主题目录结构

1) Javascript

主题使用的js文件

2) layouts

主题使用的布局文件

3) skin

主题使用的皮肤文件(css、图片文件)

4) simple、site、ucenter

simple、site、ucenter与控制器名称相同,每个控制器对应一个目录,目录下的每个文件对应控制器中的方法。

5) config.php

主题配置文件

6) preview.jpg

主题预览图,在后台选择主题时可见

视图布局(layout)

对于多数网站来说,多个页面都会有相同的顶端头部(网站logo、网站名称、导航菜单、搜索、注册、登录等)、底端页脚(友情链接、网站地图、版权声明等),都会引用一些公共的css、js文件,所有这些公共的部分都可以抽出来,做成一个layout模板(html文件)。

Layout存在于每个主题模板的layouts目录中,可以为不同的控制器、方法指定不同的布局。

布局文件Site.html文件代码

下面是网站首页和商品详情页,使用公共的头部内容(在site.html文件中定义 ):

· 网站首页

· 商品详情页

下面是注册页和登录页,使用公共的头部内容:

· 注册页面

· 登录页面

Layout设置

注意,应用布局后,刷新页面可能未出现预期效果,这种情况可能是因为存在缓存文件,可以将runtime文件夹中的文件删除后再刷新页面,查看效果。

可以使用以下3种方法设置layout。

1) 在控制器下增加public $layout公共属性,表示这个控制器下的所有视图均使用这个布局。

不使用布局前后对比

· 使用布局

· 不使用布局

2) 在主题目录的config.php文件中配置layout布局

为某个特定视图指定特定的layout布局,如:为site目录下的notice视图指定site_mini布局。

3) 在控制器的方法里设置layout布局

视图开发实例

1) 在controller目录中创建test.php控制器文件

2) 在根目录下的views/huawei目录中创建test文件夹(与Test控制器对应)

3) 在views/huawei/test目录中创建index.html