我在Smarty的继承不起作用,
这些是模板文件:
./视图/ parent.tpl ./views/modules/child.tpl
所以这是我的孩子.tpl =
/* child.tpl */
{extends file='../parent.tpl'}
{block name='contents_accueil'}
<article>
<p>Something here</p>
</article>
{/block}
我的parent.tpl:
<div>
<p>Something else</p>
{block name='contents_accueil'}{/block}
</div>
为什么不起作用?它不包含my child.tpl文件。
由于
调用parent.tpl的文件php
require_once('application/librairies/tpl/Smarty.class.php');
require_once('config.inc.php');
$data=array();
$smarty=new Smarty();
if(isset($_GET['page'])) {
$current_page=$_GET['page'];
}
$data = (isset($current_page)) ? $_PAGES[$current_page] : $data=HOME_PAGE;
$smarty->assign('data', $data);
$smarty->display('./application/views/parent.tpl');
答案 0 :(得分:2)
正如sofl所说,你得到了聪明的模板继承错误。您必须显示child.tpl,而不是父项,因为父项可以用于多个子项,即child2.tpl将如下所示:
{extends file='../parent.tpl'}
{block name='contents_accueil'}
<article>
<p>Something completely different here</p>
</article>
{/block}
如您所见,孩子是唯一拥有所有信息的人。如果您只显示parent.tpl,那么smarty对于使用哪个文件作为子项没有任何线索。将{extends}视为容器包含