thinkphp公共模板和模板布局

本文介绍了ThinkPHP框架中的公共模板和模板布局功能,包括如何引入公共模板、传递参数、使用全局配置和模板标签方式实现布局,以及如何在局部关闭或切换布局模板。

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

thinkphp的公共模板和布局模板功能,可以方便的规划和重用代码.

公共模板:引入公共模板的标签<include file='模板表达式或模板文件1,模板文件2'>

例如<include file="Public/header"/>//包含头部模板header

<include file="Public/menu"/>包含菜单模板menu

<include file="Blue/Public/menu"/>//包含blue主题下面的menu模板

使用模板文件

<include file="./Application/Home/View/default/Public/header.html"/>

传入参数

<include file="Public/header" title="ThinkPHP框架" keywords="开源WEB开发框架">这样就可以在header.html文件里使用这两个变量;

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>
模板布局

有三种布局模板的支持方式:

1.全局配置方式

这种方式适合全站布局相同,需要开启LAYOUT_ON参数,并且设置布局入口文件名LAYOUT_NAME.

'LAYOUT_ON'=>true,
'LAYOUT_NAME'=>'layout',
开启了LAYOUT_ON后我们的模板渲染流程就有所变化,例如:

 

<?php
namespace Home\Controller;
use Think\Controller;
Class UserController extends Controller {
Public function add() {
$this->display('add');
	}
}
正常情况下,会直接渲染Home/View/User/add.html模板.但是开启之后会首先渲染模板布局文件即Home/View/layout.html.布局模板和其他模板类似,支持所有的标签和包含文件,主要有一个特定的输出替换变量{_CONTENT_},例如:
<include file="Public:header" />
{__CONTENT__}
<include file="Public:footer" />
渲染完布局模板文件之后,才会渲染模板文件.并把解析后的内容替换到布局模板文件的{_CONTENT_}布局文件。在这种情况下,如果布局模板和模板文件发生修改,都会重新编译。如果想换个布局文件,可以给

'LAYOUT_NAME' =>'Layout/layoutname';

就表示采用Home/View/Layout/layoutname.html作为布局模板

如果页面不想使用布局模板的功能,就要在模板文件的开头加上{_NOLAYOUT_},注意是模板文件。加上之后就不会进行布局模板解析.
2.模板标签方式

这种方式不需要修改配置文件的任何参数

只需要修改模板文件开头<layout name="layout" />

表示当前模板文件需要使用Home/View/layout.html布局文件;

然后解析内容到布局模板文件的{_content_}模板上;

如果不需要使用布局就不写layout标签

如果改变布局模板就修改name属性;

还可以在layout标签里指定要替换的字符串:

<layout name="Layout/newlayout" replace="{_REPLACE_}">

布局模板里

<include file="Public:header" />
<div id="main" class="main" >
{__CONTENT__}
</div>
<include file="Public:footer" />

在引入的header和footer模板文件中也可以添加layout标签,例如header模板文件的开头添加如下标签:

<layout name="munu"/>//这句主要是想说布局模板的嵌套.因为header.html是使用了munu的布局模板,然后又导入了newlayout布局模板里.

第三种方式: 使用layout控制模板布局

使用于局部需要布局或者关闭布局的情况,这种方式也不需要在配置文件里开启LAYOUT_ON.例

<?php
namespace Home\Controller;
use Think\Controller;
Class UserController extends Controller {
Public function add() {
layout(true);
$this->display('add');
}
}
表示当前模板输出启用了布局模板,并采用了默认的布局模板.

或者改为layout("Layout/newlayout");指定使用的布局模板;或者layout('false');关闭布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值