dedecms 自定义标签的方法

function lib_demotest(&$ctag,&$refObj)

{

global $dsql,$envs;

//属性处理

$attlist="row|12,titlelen|24";

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$revalue = '';

$innertext = $ctag->GetInnerText();

$ctp = new DedeTagParse();

$ctp->SetNameSpace('field', '[', ']');

$sql = "SELECT * FROM dede_archives WHERE 1=1 limit 0, $row";

$dsql->Execute('me',$sql);

while($rs = $dsql->GetArray('me'))

{

//根据属性处理查询变量

$rs['title'] = cn_substr($rs['title'], $titlelen);

//获取底层模板

$ctp->LoadSource($innertext);

foreach($ctp->CTags as $tagid=>$ctag) {

if(!empty($rs[strtolower($ctag->GetName())])) {

$ctp->Assign($tagid,$rs[$ctag->GetName()]);

}

}

//根据底层模板及查询变量得到处理结果

$revalue .= $ctp->GetResult();

}

return $revalue;

}

 在include/taglib/建一个demotest.lib.php  文件

 

然在需要的模板文件里加入

{dede:demotest row='10' titlelen='36'}

  [field:title/]

  {/dede:demotest}

 

你可能感兴趣的:(dedecms)