dedecms模板中的标签开发和拓展

  • 2016-07-30
  • 111
  • 0

常常可以看到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模板中的标签开发和拓展。

评论

还没有任何评论,你来说两句吧