好像是个bug Taglib

浏览:257 发布日期:2010/09/07
- 普通 - 未处理
public function parsexmlAttr($attr,$tag)
{
//xml解析安全过滤
$attr = str_replace('&','___', $attr);
$xml = '';
$xml = simplexml_load_string($xml);
if(!$xml) {
halt(L('_xml_TAG_ERROR_').' : '.$attr);
}
$xml = (array)($xml->tag->attributes());
$array = array_change_key_case($xml['@attributes']);
$attrs = explode(',',$this->tags[strtolower($tag)]['attr']);
foreach($attrs as $val) {
$name = strtolower($val['name']); // 好像要改为$name = strtolower($val);
if( !isset($array[$name])) {
$array[$name] = '';
}else{
$array[$name] = str_replace('___','&',$array[$name]);
}
}
return $array;
}



另外, 在ThinkTemplate.class.php中有个函数:

// TagLib库解析
public function parseTagLib($tagLib,&$content,$hide=false)
{
$begin = $this->config['taglib_begin'];
$end = $this->config['taglib_end'];
$tLib = MVC::instance('TagLib'.ucwords(strtolower($tagLib)));
foreach ($tLib->tags as $name=>$val){
// 在TaglibCx.class.php中有$Tags属性定义,可以使用$tLib->tags , 但是如果是加载并实例化了其他的Taglib类库, 其他的Taglib类库就必须也要使用这个$Tags属性. 和TaglibCx一样, 需要使用$Tags定义标签属性.
TaglibHtml.class.php中好像没有$Tags这个属性. 如果默认的库是TaglibHtml, 不知道能不能正常运行. 还没测试.

$tags = array();
if(isset($val['alias'])) {// 别名设置
$tags = explode(',',$val['alias']);
$tags[] = $name;
}else{
$tags[] = $name;
}......
}
评论(
后面还有条评论,点击查看>>