在列表页获取当前栏目的文章数(适用于dedecms5.6/5.7/5.7sp1)
“幸福灰尘”通过精心收集,向本站投稿了3篇在列表页获取当前栏目的文章数(适用于dedecms5.6/5.7/5.7sp1),下面是小编给大家整理后的在列表页获取当前栏目的文章数(适用于dedecms5.6/5.7/5.7sp1),欢迎大家借鉴与参考,希望对大家有所帮助。
篇1:在列表页获取当前栏目的文章数(适用于dedecms5.6/5.7/5.7sp1)
静态获得某个栏目的文章数大家都知道的,很简单.调他的栏目ID.感觉这个除了SQL标签外织梦很多标签都能实现的了.
动态调用主要征对当前列表页的栏目.而当前的栏目是动态的.因此可以利用type标签调用一个函数就行了.type他是动态显示的,能实现我们的目的.我看了之前论坛上的方法.他函数中还调了一个函数在织梦中没有看到有就没有去测试,别人网站上就要这个.干脆自己写了个.也分享给需要这个的朋友吧.
要调用函数就得增加函数了,打开include/common.func.php,在其中任一行(
function dynamic_num($current_id){
global $dsql;
$t_num = $dsql->GetOne(“select count(*) as num from `haoboweb_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}.呵呵,很简单吧.
篇2:dedecms增加php函数功能及在列表页获取当前栏目的文章数
打开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);
//$sql = TypeGetSunID($tid,$dsql);取得子栏目ID
$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:channel type='self' row='100'? }[field:typename/]([field:id function=GetArtTotal(@me)/]){/dede:channel}
当前栏目>h2>
{dede:channel type='son' currentstyle=“~typename~>a>”}[field:typename/][field:id function=“dynamic_num(@me)” /]>a>{/dede:channel}>p>
>div>
篇3:DedeCMS文章列表页自动统计当前栏目文档总数的方法
通过该方法在列表页内显示该栏目共有多少篇文章,有助于提升用户体验,比如说我一个文章列表下面有10篇文章,就自动统计出10篇,到20篇的时候自动统计成20篇。
实现这个功能有两种具体的方法:
第一种:runphp=’yes’
利用织梦自带的runphp参数来实现这个功能,只需要在您需要显示统计数量的地方直接加入以下代码:
1
2
3
4
5
{dede:field.typeid runphp='yes'}
global$dsql;
$row=$dsql->GetOne(“select count(*) as dd from dede_archives where typeid = @me”);
@me=$row['dd'];
{/dede:field.typeid}
第二种:function
我们通常所说的函数,在织梦(DedeCMS)中,我们可以利用自定义函数来实现各种效果,实现的具体方法为:
在/include/extend.func.php文件的?>上一行加入以下代码:
1
2
3
4
5
function_GetTypeNum($tid){
global$dsql;
$row=$dsql->GetOne(“select count(*) as dd from dede_archives where typeid =$tid”);
return$row['dd'];
}
在模板需求统计栏目文档的地方加入以下代码:
1
{dede:field.typeidfunction=“GetTypeNum(@me)”/}
注意事项:
1、本代码无法统计副栏目的文档;
2、本代码可用在列表和内容页;
3、代码生成后的效果的动态的,如果添加完内容,必须重新生成相关页面;
4、无法统计无主表(例如:分类信息)的文档总数;
转载自:www.xuewl.com/tutorials/faqs-archive-totalrow/
【在列表页获取当前栏目的文章数(适用于dedecms5.6/5.7/5.7sp1)】相关文章:






文档为doc格式