Thinkphp的艺术之视图

本文详细介绍了ThinkPHP中模板文件的管理,包括模板文件后缀名修改、目录层次调整、模板主题设置与切换,以及如何通过URL参数动态改变模板。重点讲解了display方法在输出模板内容中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.模板的使用

1.1.规则

模板文件夹下 [tpl]/ [分组文件夹/] [模板主题文件夹/] 和模块名同名的文件夹[index]/和方法名同名的文件[index].html(.tpl)
更换模板文件的后缀名
假设我们需要将文件名设置.tql,应在conf/config.php 文件中添加如下语句:

'TMPL_TEMPLATE_SUFFIX'=>'.tpl',//更改模板文件后缀名

接着,我么访问我们页面:http://127.0.0.1/thinkphp/index.php/Index/index,出现模块不存在,因为我们的文件后缀名为.html,而它此时默认访问的文件后缀名为 .tql,因此显示文件名不存在。需要将 /tql/Index/index.html的文件名改为 .tql才可以哦!
在这里插入图片描述

1.2、修改模板文件目录层次

有时我们调用模板文件【/tpl/Index/index.html】时可能会觉得模板文件夹太深了,我们可以直接在tpl目录下新建一个模板文件 模板名_方法名.后缀名【 Index_index.html】文件。然后在conf/config.php 文件中添加如下语句:

'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次

在这里插入图片描述
访问http://127.0.0.1/thinkphp/index.php/Index/index.html
在这里插入图片描述

1.3.模板主题

以优快云主题为例,假设我们给博客主页选择的主题不一样,他所显示的页面风格也将会有所不同,这个便是模板主题,我们可以将它放在一个专门的文件夹便于我们进行选择。
我们可以在tpl目录下新建文件夹 my作为主题文件夹,设置my文件夹为默认的模板主题文件夹,应在 /conf/config.php 文件中添加如下语句:

'DEFAULT_THEME'=>'my,//设置默认模板主题

这样直接访问http://127.0.0.1/thinkphp/index.php/Index/index.html,会显示如下,
在这里插入图片描述
报错,因为在该my文件夹中不存在Index/index.html文件,因此我们需要将 /tpl/index文件夹复制到 my文件夹下面
在这里插入图片描述
在这里插入图片描述
访问:http://127.0.0.1/thinkphp/index.php/Index/index.html
在这里插入图片描述

动态更改模板主题

类似于上面方法,我们再建一个文件夹,名字为your,即这是新的模板主题文件夹 your。index.html的背景为黄色。在config.php文件中添加如下语句:

'DEFAULT_THEME'=>'my',//设置默认模板主题
'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
'THEME_LIST'=>'your,my',//支持的模板主题列表

在链接后面加 /t/模板文件夹名称,将可以访问到我们想要的模板主题。
例如: 访问http://127.0.0.1/thinkphp/index.php/Index/index/t/your,将可以访问到your的模板文件。
在这里插入图片描述
下面,我们对于动态修改模板文件做一个小总结:

如何动态修改模板主题?
		1、在后台准备一个功能,修改config.php文件中的默认模板项
		2、通过url传递 t=主题 参数可以修改不同的模板
			'DEFAULT_THEME'=>'your',//设置默认模板主题
			'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
			'THEME_LIST'=>'your,my',//支持的模板主题列表

2.输出模板内容

	a、display
		1.display中没有参数
			$this->display();
		2.可以带参数
			$this->display(本模块文件夹下的其他模板文件);
			$this->display('index2');

			$this->display(其他文件夹下的模板文件);
			$this->display('Public:error');//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块

			$this->display(其他主题下的 文件夹下的 模板文件);//需要开启主题支持
			$this->display('my:Index:index');

例如我们之前在IndexAction.class.php 用的 $this->display() 方法,这个默认调用的就是 tpl文件夹下面与 模板名Index同名的文件夹下面与index方法同名的 index.html 文件。
在这里插入图片描述
假设我们需要访问本模块下的其他文件(index2.html文件)
在这里插入图片描述
那么我们应该在display中廷加一个参数,变为

$this->display('index2');

其他模板下的模板文件,利用的语句如下:

$this->display(其他模板名 : 模板文件名);

其他主题下的模板文件,利用的语句如下:

$this->display(其他主题名字: 模板名: 模板文件名);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值