在VBulletin中将模板包含在全局模板中

时间:2012-07-02 15:25:00

标签: templates include vbulletin

我需要在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”)。

有办法吗?

1 个答案:

答案 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}