用TP不久,刚使用自定义标签发现不会在属性里使用变量,看了下源码下的TagLibHtml.class.php,终于弄清楚怎么用了
<?php
import('TagLib');
Class TagLibWx extends TagLib{
Protected $tags = array(
'wxtype' => array(
'attr' => 'value',
'close' => 0,
)
);
//eg:<wxtype value="$wx['type']"/>
Public function _wxtype($attr){
$attr = $this->parseXmlAttr($attr);
$value = $attr['value'];
$parseStr = '非服务';
if(!empty($value)){
$parseStr = '<?php if('.$value.' == \'service\'){ echo \'服务\'; }else{ echo \'非服务\';} ?>';
}
return $parseStr;
}
}
假如在模板里有一个数组变量wx,在模板里可以这么写:
<wxtype value="$wx['type']"/>
其实原理很简单:就是在TagLibWx.class.php里对应的方法里输出php代码到模板页面,相当于在模板里写了一段Php代码