织梦DedeCMS栏目列表页统计并调用当前栏目文章数目的方法

 
在做织梦dedecms模板时,经常需要在每个栏目列表页加上此栏目的文章数调用,下面就教大家具体的实现方法。
 
首先找到并打开include/common.func.php文件,在最后面加入下面这段代码:
 
//统计栏目内容条数
function GetTotalArc($tid){
global $dsql;
$sql = GetSonIds($tid);
$row = $dsql->GetOne("Select count(id) as dd From zmb_archives where typeid
in({$sql})");
return $row['dd'];
}
//统计当前栏目信息数
function dynamic_num($current_id){
global $dsql;
//读取当前栏目的子ID
$sql = "SELECT id FROM zmb_arctype WHERE id='$current_id' ||
topid='$current_id'";
$dsql->SetQuery($sql);
$dsql->Execute();
while($row = $dsql->GetArray()){
$arr[]=$row[id];
}
foreach($arr as $key=>$value){
$type .= $value . ',';
}
$ty= "".$type."0";
//echo $ty;
$t_num = $dsql->GetOne("select count(*) as num from zmb_archives where typeid
in($ty)");
//echo $t_num[num];
if(is_array($t_num)){
return " ".$t_num[num]." ";
}else{
return "0" ;
}
}
 
然后在列表页模板里面插入如下调用代码:
 
(该栏目有{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}篇文档)和[field:id runphp='yes'] @me = GetTotalArc(@me);[/field:id]
 
下面是完整的调用实例:
 
{dede:field name='typename'/}</b>(本栏目共有{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}篇文档)
{dede:channel type='son' } 
<li><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]</span>)</li>
{/dede:channel}