栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > dedecms

织梦调用当前栏目下的文章数的方法

dedecms 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

织梦调用当前栏目下的文章数的方法

织梦dedecms做网站的时候要求要好多分类,每个分类下边需要有文章,可是在考虑到用户体验方面。我就想如果加上当前栏目下边的条数 会让读者一幕了然;

所以我特意查了一下资料,在这分享给大家:

第一种方法

打开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='son' row='20'} 
[field:typename/]([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID])
 
{/dede:channel} 进行调用,[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]这个就是调用的总数

 

第二种方法

打开include/common.func.php,在其中任一行(与?>的中间任一行)中加上如下函数。

function dynamic_num($current_id){  global $dsql;  $t_num = $dsql->GetOne("select count(*) as num from `dede_archives` where typeid='$current_id'");  if(is_array($t_num)){    return "本栏目共有".$t_num[num]."篇文章";  }else{    return "本栏目共有0篇文章" ;  }  }  ?>  

在列表页是这样调用的:

{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}

如果要统计本栏目及与子栏目的总数,则可以用下面的函数:

//统计包括子栏目的文章数  function GetArtTotal($id){    
//1.统计当前栏目文章数      $dsql = new DedeSql(false);      $row = $dsql->GetOne("select count(id) as ArtSum from dede_archives where typeid=$id; ");         
//2.统计子栏目文章数    $dsql = new DedeSql(false);     $rowSun = $dsql->GetOne("Select count(t.ID) as dd  from dede_archives t left join dede_arctype u1 on u1.id=t.typeid where (u1.reID=$id)");       
//3. 1+2得出总文章数    return $row['ArtSum']+$rowSun['dd'];  } 调用方法:

{dede:field.typeid function="GetArtTotal(@me)"/} 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/5243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号