自定义dedecms的标签分析

2012-03-14 22:56 来源:www.chinab4c.com 作者:dedecms专家

     dedecms二次开发大家都知道是一个非常灵活的cms系统。我们知道dedecms前台基本上可以生成html页面。那么所有的数据都必须在dede的模板中实现。在dedecms后台生成html页面的时候,都必须调用各个标签。来完成对数据的调用。

     dedecms的标签是如何定义的呢,如果想在dedecms的模板里面定义和调用自己的标签,该如何操作。我们就结合dedecms自定义dedecms的标签分析到底如何实现。

    1:首先dedecms标签的位置是include/tablib目录.

    2:文件名为tag名.lbi.php

    3:函lib_tag名(&$ctag , &$refObj)

    4:定义全局变量。

     global $dsql;

     $list = "id|1";

     这个就是定义数据变量以及模板中要传的变量的名称.

    FillAttsDefault($ctag->CAttribute->Items , $list);
 extract($ctag->CAttribute->Items);
 $tcp = new DedeTagParse();
 $tcp->SetNameSpace("field","[","]");
 $info = $ctag->GetInnerText();
 $tcp->LoadSource($info);

     以上就是通过调用dedecms的dedetagparse()类来处理这些数据。

    最后会返回一串处理的数据。

    比如以下代码。 

     $dsql->SetQuery("SELECT keyword FROM `dede_search_keywords` WHERE lasttime>$mintime AND length(keyword)<$maxlength ORDER BY count DESC LIMIT 0,$num");
    $dsql->Execute('hw');
    $hotword = '';
    while($row=$dsql->GetArray('hw')){
        $hotword .= " <a href='".$cfg_phpurl."/search.php?keyword=".urlencode($row['keyword'])."'>".$row['keyword']."</a> ";
    }

    返回的数据是一个字符串。

    来源:http://www.chinab4c.com