// 预先加载的标签库 (目录放在 \Library\OT\TagLib):
'TAGLIB_PRE_LOAD' => 'OT\\TagLib\\Article,OT\\TagLib\\Think',
文件定义:
Think.class.php //文件名
namespace OT\TagLib;
use Think\Template\TagLib;
class Think extends TagLib{
// 标签定义
protected $tags = array(
// 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
'nav' => array('attr' => 'field,name', 'close' => 1), //获取导航
'query' => array('attr'=>'sql,result','close'=>0),
'cate' => array('attr'=>'id,name,limit,pid,result','level'=>3),
'article' => array('attr'=>'id,name,cate,pid,pos,type,limit,where,order,field,result','level'=>3),
);
/* 导航列表 */
public function _nav($tag, $content){
$field = empty($tag['field']) ? 'true' : $tag['field'];
$tree = empty($tag['tree'])? false : true;
$parse = $parse = '<?php ';
$parse .= '$__NAV__ = D(\'Channel\')->lists('.$field.');';
if($tree){
$parse .= '$__NAV__ = list_to_tree($__NAV__, "id", "pid", "_");';
}
$parse .= '?><volist name="__NAV__" id="'. $tag['name'] .'">';
$parse .= $content;
$parse .= '</volist>';
return $parse;
}
// sql查询
public function _query($tag,$content) {
$sql = $tag['sql'];
$result = !empty($tag['result'])?$tag['result']:'result';
$parseStr = '<?php $'.$result.' = M()->query("'.$sql.'");';
$parseStr .= 'if($'.$result.'):?>'.$content;
$parseStr .= "<?php endif;?>";
return $parseStr;
}
}