五、Dwoo中的插件机制
在Dwoo中,为开发者提供了大量方便的插件,比如前文提到的escape过滤功能,也是Dwoo 的插件之一。下面再学习一个同样功能的插件auto_esacpe,它其实实现的是跟escape一样的功能,但它可以针对一整段的模版变量进行格式化,比如,如下的模版:
<html>
<head></head>
<body>
{auto_escape on}
{$html}
{/auto_escape}
</body>
</html>
<head></head>
<body>
{auto_escape on}
{$html}
{/auto_escape}
</body>
</html>
这里使用了{auto_escape on},表明在 {/auto_escape}前的输出全部要进行HTML格式化,考察如下的php脚本:
<?php
include 'dwooAutoload.php';
try {
$dwoo = new Dwoo();
$tpl = new Dwoo_Template_File('tmpl/out.tpl');
$data = array();
$data['html']= '<span id="ack">Welcome to Jack & Jill\'s humble abode.</span>';
$dwoo->output($tpl, $data);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
include 'dwooAutoload.php';
try {
$dwoo = new Dwoo();
$tpl = new Dwoo_Template_File('tmpl/out.tpl');
$data = array();
$data['html']= '<span id="ack">Welcome to Jack & Jill\'s humble abode.</span>';
$dwoo->output($tpl, $data);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
其输出为如下图:
同样,Dwoo也有象php中的strip_tags方法,用来去掉HTML标记,比如:
<html>
<head></head>
<body>
{strip_tags($html)}
</body>
</html>
<head></head>
<body>
{strip_tags($html)}
</body>
</html>
对应的PHP脚本为:
$data = array();
$data['html'] = '<a href="http://www.google.com">Search</a>';
$data['html'] = '<a href="http://www.google.com">Search</a>';
那么将会输出如下结果:
下面再介绍Dwoo中关于日期格式化的处理,其中可以使用date_format这个插件,这个插件需要传入两个参数,一个是要处理的日期,另外一个是指定用什么格式去格式化处理日期,举个例子:
<html>
<head></head>
<body>
{date_format $date "%d.%m.%Y"}
<br/>
{date_format $date "%B %d, %Y %I:%M %p"}
</body>
</html>
<head></head>
<body>
{date_format $date "%d.%m.%Y"}
<br/>
{date_format $date "%B %d, %Y %I:%M %p"}
</body>
</html>
处理的PHP代码的核心部分:
$data = array();
$data['date'] = '14 July 2010 21:35';
$data['date'] = '14 July 2010 21:35';
下面为其输出:
小结
在本文中,介绍了PHP模版引擎Dwoo的基本原理和用法,给读者一个快速的入门,在下一篇中,将深入介绍挖掘Dwoo中的一些特色功能。