当前位置:首页 > 技术教程 > dede技术教程 > 正文内容

织梦dedecms常用计算栏目文章数量做法

访客5年前 (2020-04-02)dede技术教程1446

提供几种计算栏目文章数量的方法

第一种: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} 

声明:
本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。