使用模板标签可以让网站前台开发更加快速和简单,使用过Dedecms、PHPcms等内容管理系统的人应该都知道,cms的前台都是使用模板标签来调用数据。以调用文章列表为例:
Dedecms可以写成:
PHP;">
-
{dede:arclist row='10' orderby='id desc' titlelen=''}
- [field:title] {/dede:arclist}
PHPcms可以写成:
PHP;">
-
{pc:content action="hits" catid="6" num="10" order="views DESC"}
{loop $data $r}
- {$r[title]} {/loop} {/pc}
ThinkPHP的自定义标签同样能够实现这样强大的功能。ThinkPHP自定义标签通过TAG扩展库来实现。而ThinkPHP本身就自带了一个tag扩展库只要我们继承TagLib就能随心所遇的定义属于自己的标签。
命名规范:
TagLib+标签库名称.class.PHP
下面以实现调用导航为例加以说明
PHP;">
array('attr' => 'limit,order','level' => 3,'close'=>1),);
//定义查询数据库标签
//attr是属性列表,$content是存储标签之间的内容的
public function _nav($attr,$content) {
$tag=$this->parseXmlAttr($attr,$content);
$cate=M('Channel');
$tb=$cate->order($tag['order'])->limit($tag['limit'])->select();
$str='';
for($i=0;$i