如果你的子模板里面有用到{include} 来包含模板,而被包含的模板里面存在供{include}模板 调用的{block}区域, 那么在最顶层的父模板里面,你需要放置一个空的 {block} 来作为继承。
layout.tpl (父模板)
```html
<html>
<head>
<title>{block name=title}默认页面标题{/block}</title>
{block name=head}{/block}
</head>
<body>
{block name=body}{/block}
</body>
</html>
```
myproject.tpl (子模板)
```html
{extends file='layout.tpl'}
{block name=head}
<link href="/css/mypage.css" rel="stylesheet" type="text/css"/>
<script src="/js/mypage.js"></script>
{/block}
```
mypage.tpl (孙子模板)
```html
{extends file='myproject.tpl'}
{block name=title}我的页面标题{/block}
{block name=head}
<link href="/css/mypage.css" rel="stylesheet" type="text/css"/>
<script src="/js/mypage.js"></script>
{/block}
{block name=body}我的HTML页面内容在这里{/block}
```
页面将输出:
```html
<html>
<head>
<title>我的页面标题</title>
<link href="/css/mypage.css" rel="stylesheet" type="text/css"/>
<script src="/js/mypage.js"></script>
</head>
<body>
我的HTML页面内容在这里
</body>
</html>
```
- 基础
- 安装PhpSmarty
- 开发规范
- 目录结构
- 架构总览
- URL访问
- 隐藏入口文件
- 命名空间
- 配置目录
- 配置读取
- 控制器
- 控制器定义
- 渲染输出
- 控制器初始化
- 页面跳转
- 重定向
- 调用控制器方法
- 请求
- 变量获取
- 数据库
- 连接数据库
- 查询构造器
- 助手函数
- 模型
- 模型定义
- 模型调用
- 模型初始化
- 模型新增
- 模型更新
- 模型删除
- 模型查询
- 模型分层
- JSON序列化
- 模板
- 模板定位
- 静态文件
- 三元运算
- 模板继承
- 包含文件
- 内置标签
- FOREACH标签
- FOR标签
- 比较标签
- 条件判断
- 标签嵌套
- 错误和调试
- 调试模式
- SQL调试
- 杂项
- Session
- Cookie
- Cache
- 搭建部署
- 虚拟主机环境
- Linux主机环境
- URL重写
- 更新日志