我需要在VBulletin中做这样的事情。 应该有几个模板(我通过admincp添加它们),应该“包含”在名为“footer”的全局模板中。事实上,根据某些条件,只应包括其中一个。 所以在这个页脚中我有
<vb:if condition="$my_variable == 1">
<p>CASE_1</p>
<vb:elseif condition="$my_variable == 2" />
<p>CASE_2</p>
<vb:else />
<p>CASE_3</p>
</vb:if>
所以在这种情况下我需要用代码更改CASE-s以包含其他模板(即“footer1”,“footer2”,“footer3”)。
有办法吗?
答案 0 :(得分:0)
好的,我通过创建模板,将变量传递给它,渲染它并在页脚模板中预注册(class_bootstrap.php)来完成此操作:
$templater = vB_Template::create('footer_'.$extension);
$templater->register('admincpdir', $admincpdir);
...
$includable_footer = $templater->render();
vB_Template::preRegister('footer',array('included_footer ' => $includable_footer));
$templater = vB_Template::create('footer');
$templater->register('included_footer', $includable_footer);
$footer = $templater->render();
在页脚模板中插入以下行:
{vb:raw included_footer}