模板继承比使用include方式有一个明显的方便,就是在方便每个页面引入不同的css js文件;
layout.tpl (父模板)
<html> <head> <title>{block name=title}默认页面标题{/block}</title> {block name=head}{/block} </head> <body> {block name=body}{/block} </body> </html>
myproject.tpl (子模板)
{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 (孙子模板)
{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}
显示上面的模板:
$smarty->display(‘mypage.tpl‘);
另外,代替模板内使用{extends}的继承方式, 你可以通过在PHP内定义继承树来进行继承,使用extends:的资源类型。
下面的代码将返回和上面例子一样的结果:
<?php $smarty->display(‘extends:layout.tpl|myproject.tpl|mypage.tpl‘); ?>
时间: 2024-11-05 13:40:43