dedecms模板中的标签开发和拓展
常常可以看到dedecms模板中很多时候标签根本是不够用的。
为了更加方便的调用dede的数据库,而又不需要对原始的dedecms标签做大的修改和调整。
我们可以自己根据自己的需要。
来对dedecms的模板标签进行扩展。
首先dedecms模板的模板标签在include/taglib目录中。
文件的名称和dedecms标签的名称相同。为比如标签为mm,那么我们的标签对应的文件名称必须是mm.lib.php。
标签的函数名称为
function lib_mm(&$ctag , &$refObj)
首先我们定义数据库操作对象
global $dsql;
我们定义标签内置的参数,$l = "limit|2";他是以逗号隔离的,参数名和参数值用"|"隔离。
FillAttsDefault($ctag->CAttribute->Items , $l);
将内置的参数传到$ctag对象,进行初始化。
extract($ctag->CAttribute->Items)
通过这个处理,可以单独调用某个参数。
获取当前调用该标签的参数名称,
$innertext = trim($ctag->GetInnerText());
声明模板处理对象,方便对模板进行操作。
$ctp = new DedeTagParse();
$ctp->SetNameSpace('field','[',']');
$ctp->LoadSource($innertext);
检索该标签要对应的数据库表的数据,然后循环显示.
while($row = $dsql->GetArray())
循环的将数据库中取得的数据进行赋值。
foreach($ctp->CTags as $tagid=>$ctag){
@$ctp->Assign($tagid,$row[$ctag->GetName()]);
}
返回模板处理后的标签以及数据结果。
$revalue .= $ctp->GetResult();
最后
return $revalue;
就这样我们完成了dedecms模板中的标签开发和拓展。