Templates 在Smarty中扩展基本模板

Templates 在Smarty中扩展基本模板,templates,smarty,Templates,Smarty,是否可以在Smarty中用另一个模板扩展基础模板? 我知道这在Django中使用{%entend%}标记是可能的。Smarty中是否有类似的(或解决方法) 谢谢Smarty中没有内置模板继承。但是你可以用和做类似的事情 您的页面模板可以如下所示: {capture assign="context"} <h2>Here is my page</h2> {... some other smarty suff here ...} {/capture} {assig

是否可以在Smarty中用另一个模板扩展基础模板?
我知道这在Django中使用{%entend%}标记是可能的。Smarty中是否有类似的(或解决方法)


谢谢

Smarty中没有内置模板继承。但是你可以用和做类似的事情

您的页面模板可以如下所示:

{capture assign="context"}
   <h2>Here is my page</h2>
   {... some other smarty suff here ...}
{/capture}

{assign var="title" value="Just simple title text here"}

{include file="base.tpl"}

虽然这个问题有点老了,但我想,也许有人在2011年8月开始寻找这些信息,如果知道现在可以用Smarty 3实现这一点,会有所帮助

带有继承的示例

layout.tpl

<html>
<head>
  <title>{block name=title}Default Page Title{/block}</title>
</head>
<body>
{block name=body}{/block}
</body>
</html>
{extends file="layout.tpl"}
{block name=title}My Page Title{/block}
{block name=body}My HTML Page Body goes here{/block}
<html>
<head>
  <title>My Page Title</title>
</head>
<body>
My HTML Page Body goes here
</body>
</html>
mypage.tpl的输出

<html>
<head>
  <title>{block name=title}Default Page Title{/block}</title>
</head>
<body>
{block name=body}{/block}
</body>
</html>
{extends file="layout.tpl"}
{block name=title}My Page Title{/block}
{block name=body}My HTML Page Body goes here{/block}
<html>
<head>
  <title>My Page Title</title>
</head>
<body>
My HTML Page Body goes here
</body>
</html>

我的页面标题
我的HTML页面主体在这里

逐字摘自:

谢谢,这正是我想要的+1真棒,谢谢你添加这个答案!(我不再使用Smarty,但正如您所说,它对其他人来说是一个很好的参考)