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