- 普通 - 未处理
[i=s] 本帖最后由 snowfox 于 2011-10-21 15:43 编辑 [/i]经过检查,发现导致TAG_NESTED_LEVEL配置无效的原因是TagLibCx.class.php中protected $tags对level都写死了值为3,而不是调用TAG_NESTED_LEVEL的配置值。
个人解决方法:在TagLibCx.class.php中增加构造函数,重新对$tags赋值
以下为代码
================================================
public function __construct(){
parent::__construct();
$this->tags = array(
// 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
'php'=>array(),
'volist'=>array('attr'=>'name,id,offset,length,key,mod','level'=>$this->tpl->config['tag_level'],'alias'=>'iterate'),
'foreach' =>array('attr'=>'name,item,key','level'=>$this->tpl->config['tag_level']),
'include'=>array('attr'=>'file','close'=>0),
'if'=>array('attr'=>'condition'),
'elseif'=>array('attr'=>'condition','close'=>0),
'else'=>array('attr'=>'','close'=>0),
'switch'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'case'=>array('attr'=>'value,break'),
'default'=>array('attr'=>'','close'=>0),
'compare'=>array('attr'=>'name,value,type','level'=>$this->tpl->config['tag_level'],'alias'=>'eq,equal,notequal,neq,gt,lt,egt,elt,heq,nheq'),
'range'=>array('attr'=>'name,value,type','level'=>$this->tpl->config['tag_level'],'alias'=>'in,notin'),
'empty'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'notempty'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'present'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'notpresent'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'defined'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'notdefined'=>array('attr'=>'name','level'=>$this->tpl->config['tag_level']),
'layout' =>array('attr'=>'name,cache','close'=>0),
'import'=>array('attr'=>'file,href,type,value,ba
'assign'=>array('attr'=>'name,value','close'=>0),
'define'=>array('attr'=>'name,value','close'=>0)
);
}
