smarty 模板文件中多层block嵌套互相调用

在smarty中可以多层block嵌套使用,并且会出现覆盖现象,下面直接上文件。

php文件:block1.php、block2.php
模板文件:block1.html、block2.html、blocktd.html(这是共用文件)

block1.html内容

{extends file="blocktd.html"}

{block name="center"}
<div>这个将覆盖center内的所有内容</div>
{/block}

block2.html内容

{extends file="blocktd.html"}


{block name="block2"}
<div>这是block2的内容</div>
{/block}

blocktd.html内容

<html>
<head>
	<title>新建模板</title>
</head>

<body>
顶部信息
{block name="center"}
<div>这是一处内容</div>
{block name="block2"}{/block}
{/block}
底部信息
</body>
</html>

block1.php内容

<?php
header("content-type:text/html;charset=utf-8");
include_once './libs/Smarty.class.php';

$smarty = new Smarty();

$smarty->display('block1.html');

?>

运行后的效果


block2.php内容

<?php
header("content-type:text/html;charset=utf-8");
include_once './libs/Smarty.class.php';

$smarty = new Smarty();

$smarty->display('block2.html');

?>

运行后的效果


小结

多层block嵌套时,
如果主block有内容,则里面的内容会被覆盖
如果主block有内容,嵌套内的block也有内容,则只显示主block内容。

主block没有内容时,smarty才会查看次block有没有内容。

评论

大侠名号:   验证码: 点击我更换图片  

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND