我们假设我们有这个HTML代码:
<div class="block">
<div class="block-head">This is title</div>
<div class="block-body">This is body</div>
</div>
现在,让我们制作TPL(myblock.tpl):
<div class="block">
<div class="block-head">{$title}</div>
<div class="block-body">{$body}</div>
</div>
我现在可以这样做了:
{include file="myblock.tpl" title="User Settings" body="<div>HELLO</div>"}
结果将是:
<div class="block">
<div class="block-head">User Settings</div>
<div class="block-body"<div>HELLO</div></div>
</div>
但是有什么方法可以用这样的聪明之处吗?
{include file="myblock.tpl" title="User Settings"}
<div>HELLO</div>
{/include}
答案 0 :(得分:0)
似乎你想要解决smarty所写的实际意义。
文档说明没有办法直接将Markup传递给模板,方法是将它放在include“标签”之间。
似乎解决问题的方法并不多 但是有人会像这样编写一个页面文件:
...
{include file="myblock.tpl" title="User Settings"}
<div>HELLO</div>
{include 'footer.tpl'}
...
作为(显然更好)替代“fetch”似乎是另一种解决方案: http://www.smarty.net/docsv2/de/api.fetch.tpl http://www.smarty.net/docsv2/de/language.function.fetch.tpl
它会将模板的内容存储在一个变量中,您可以将其传递给您的包含,如下所示:
{fetch file="myblock_body.tpl" assign="foo"}
{include file="myblock.tpl" title="User Settings" body=$foo}