二、子模版
Dwoo支持子模版,这些子模版使得开发者可以在应用中重用它们。子模版的创建方法是使用标签{template}….{/template},其中要提供唯一的名称,以便在其他地方进行引用。而在其他地方引用子模版,可以使用”load template”标签加载。
子模版中可以传递多个参数,下面直接看例子以方便理解。首先编写一个子模版,名称叫slave.tpl,代码如下:
{template mylist data}
<ul>
{foreach $data d}
<li>{$d}</li>
{/foreach}
</ul>
{/template}
<ul>
{foreach $data d}
<li>{$d}</li>
{/foreach}
</ul>
{/template}
这里,我们把这个子模版命名为mylist,其中有一个循环取读取data变量中的值并输出。
有了子模版后,我们就可以在需要其的地方加载它,比如,在一个模版文件master.tpl中,可以这样调用:
{load_templates "slave.tpl"}
{mylist $items}
{mylist $items}
这里用load_templates加载slave.tpl的子模版,并且为子模版mylist赋值items变量,而items变量可以由如下代码去赋值:
<?php
include 'dwooAutoload.php';
try {
$dwoo = new Dwoo();
$tpl = new Dwoo_Template_File('tmpl/master.tpl');
$data = array();
$data['items'] = array('red', 'blue', 'green', 'yellow');;
$dwoo->output($tpl, $data);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
include 'dwooAutoload.php';
try {
$dwoo = new Dwoo();
$tpl = new Dwoo_Template_File('tmpl/master.tpl');
$data = array();
$data['items'] = array('red', 'blue', 'green', 'yellow');;
$dwoo->output($tpl, $data);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
可以看到输出如下:
可以看到,子模版的确十分方便使用,而且子模版中的内容一旦变更,其他所有用到子模版地方的内容也会接着变化。