dedecms模板中的标签开发和拓展
2012-01-02 23:17 来源:www.chinab4c.com 作者:dedecms专家
在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模板中的标签开发和拓展。
最近更新
常用插件
- ecshop二次开发首页显示购
ecshop二次开发首页显示购买记录插件,用图文的方式,来处理在首页显示...
- ecsho成本利润统计分析插件
最近在二次开发ecshop过程中,很多朋友要求一款分析 ecshop成本和利润插...
- ecshop二次开发直接优惠现
ecshop二次开发促销售功能插件,主要是扩展了ecshop促销功能,增加了更...
- ecshop 匿名下单自动注册会
ecshop 匿名下单自动注册会员...
- ecshop打印快递发货单
ecshop打印快递发货单,这个问题是很常见的问题。在发货完成之后,有些...