3、给标签赋值
foreach($dtp->CTags as $tid=>$ctag) {
//判断ctag的名称和属性,并给赋不同的值,通常用函数处理
if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) );
}
在上面例子中,直接把名称为 mytag的标签转交给 mytagvalue 函数处理,mytagvalue 里判断$ctag的各个属性,返回不同内容即可。
在 V5.3版本中,通常除了field、list等专用标签之外,凡arc.*开头的类解析的文件,标签都是对应该 include/taglib 的源码的,这个由系统进行了自动的映射。
4、显示或保存为HTML
$dtp->display();
或
$dtp->SaveTo(静态文件名);
对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。站长教学网 eduyo.com
- class DedeTag
- {
- var $IsReplace=FALSE; //标记是否已被替代,供解析器使用
- var $TagName=""; //标记名称
- var $InnerText=""; //标记之间的文本
- var $StartPos=0; //标记起始位置
- var $EndPos=0; //标记结束位置
- var $CAttribute=""; //标记属性描述,即是class DedeAttribute
- var $TagValue=""; //标记的值
- var $TagID = 0;
- //获取标记的名称和值
- function GetName()
- {
- return strtolower($this->TagName);
- }
- function GetValue()
- {
- return $this->TagValue;
- }
- //下面两个成员函数仅是为了兼容旧版
- function GetTagName()
- {
- return strtolower($this->TagName);
- }
- function GetTagValue()
- {
- return $this->TagValue;
- }
- //获取标记的指定属性
- function IsAttribute($str)
- {
- return $this->CAttribute->IsAttribute($str);
- }
- function GetAttribute($str)
- {
- return $this->CAttribute->GetAtt($str);
- }
- function GetAtt($str)
- {
- return $this->CAttribute->GetAtt($str);
- }
- function GetInnerText()
- {
- return $this->InnerText;
- }
- }
(责任编辑:ken)