织梦dedecms常用计算栏目文章数量做法
提供几种计算栏目文章数量的方法
第一种:channelartlist可嵌套标签中统计并调用栏目的文章数量:
修改include\taglib\channelartlist.lib.php标签
找到
$pv->Fields[‘typeurl’] = GetOneTypeUrlA($typeids[$i]);
在其下添加
$pv->Fields[‘typerow’] = GetTypeRow($typeids[$i]);
修改include\helpers\channelunit.helper.php 结尾增加
/** *获得指定类目的文章数量 */if ( ! function_exists('GetTypeRow')){function GetTypeRow($typeinfos){global $dsql;$sql = GetSonIds($typeinfos['id']);$row = $dsql->GetOne("Select count(id) as dd From `dede_archives` where typeid in({$sql})");$typerow= $row['dd'];return $typerow;}}
调用标签:
{dede:field name='typerow'/}
代码示例:
{dede:channelartlist} <div class="heji_box"> <div class="title"> <span class="heji_name"><a href="{dede:field%20name='typeurl'/}" title="{dede:field name='typename'/}" target="_blank">{dede:field name='typename'/} </a>共({dede:field name='typerow'/}集)</span></div> <div class="heji_con"> {dede:arclist titlelen='60' row='10'} <a href="[field:arcurl%20/]">[field:title /]</a> {/dede:arclist} </div> </div> {/dede:channelartlist}
第二种:
涉及到文件:include/common.func.php
在include/common.func.php最下面也就是?>前加入以下代码
代码如下:
function GetTotalArc($tid){global $dsql;$sql = GetSonIds($tid);$row = $dsql->GetOne("Select count(id) as dd From dede_archives where typeid in({$sql})");return $row['dd'];}
调用方法:
代码如下:
[field:ID function='GetTotalArc(@me)'/]或[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]
比如在你的主页模板里添加如下代码:
代码如下:
共{dede:type}[field:ID function='GetTotalArc(@me)'/] {/dede:type}篇或在栏目名称后面添加如下代码:({dede:type}[field:ID function='GetTotalArc(@me)'/] {/dede:type})
第三种
第一步:打开include/common.func.php文件,在最后的?>之前加上:
代码如下:
//统计栏目文章数
function GetTotalArc($tid){global $dsql;$sql = GetSonIds($tid);$row = $dsql->GetOne("Select count(id) as dd From dede_archives where typeid in({$sql})");return $row['dd'];}
//统计结束
第二步: 就可以在模板上用以下代码
代码如下:
{dede:channel type='top' typeid=''}<a href='[field:typelink /]'>[field:typename/]</a> ([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]){/dede:channel}
比如在主页模板上栏目名称({dede:field name=’typename’/})
后面添加如下代码:
代码如下:
{dede:type}[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]{/dede:type}