页面重用包含

来源:互联网 发布:增强网络安全意识 编辑:程序博客网 时间:2024/05/04 10:34

ThinkPHP提供了页面include的功能,可以实现把一下模板的HTML文件加载进入当前的HTML中。举个例子:

  

如果我们做一个订餐系统,这个订餐系统分为:搜索,订餐,付款和填写这4个页面,然后在这4个页面中我们需页面的上端都显示餐馆的logo,下端都显示餐馆的联系方式。

  

最容易想到的方式,就是在以上4个页面中都引用一下logo的图片地址,下端都写一下联系方式。

但是这种方式有一下几个问题:

1:维护困难,每次变动logo或者联系信息,就必须找到所有的页面进行修改。

2:代码量比较多,重复代码比较多。

3:容易导致风格不一致,不同页面不可能总是一个人在写,当人多了的时候,很容易出现不同的人实现的样式不一样。

既然在每个页面写重复的代码会导致这么多问题,那么最好就把这些公共的代码能够抽取出来成为独立的文件,并且在每个页面中,都把这些文件引用到自己的页面中。ThinkPHP 3.2.3 提供了以下的一个方式:

  

<include file="Public/common_css" location='__PUBLIC__'/>

  

以上的HTML模板文件加载了View目录下的子目录Public文件夹里面的common_css.html文件,并且传递了一个参数location='__PUBLIC__'。

  

Common_css.html 的代码如下:

<link href="[location]/common/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">

<link href="[location]/common/jquery-ui-1.12.1.custom/jquery-ui.min.css" rel="stylesheet" type="text/css">

<link href="[location]/common/css/common.css" rel="stylesheet" type="text/css">

  

这就可以把这块代码插入到目标模板文件中了。

  

注意:ThinkPHP 3.2.3没法翻译被include标签加载的文件。比如__PUBLIC__还有{$name}这种取值的操作都是没法实现的。必须在使用include标签的时候传递进去(请参考上面的代码)。被传递进来的参数,需要通过[param_name]的方式进行取值。

原创粉丝点击