dede统计栏目文章数实现方法

使用 dedecms 的runphp 接口 编写一个 函数.利用channel标签的ID变量或得。

函数。

function GetChannelArticleNum($id){
 if(!$id || !is_numeric($id)) return 0;
 $dsql = new DedeSql();
 require_once(dirname(__FILE__)."/inc_channel_unit_functions.php");
 $sql = TypeGetSunID($id,$dsql);
 $dsql -> SetQuery("Select count(*) as c From #@__archives where {$sql}");
 $row = $dsql -> GetOne();
 return $row['c'];
}
将该函数放入 inc_functions.php 中

示例调用方法.

{dede:channel type='top' row='8'} | [field:typename/] ([field:ID runphp='yes'] @me = GetChannelArticleNum(@me);[/field:ID]){/dede:channel}

改变  | [field:typename/] ([field:ID runphp='yes'] @me = GetChannelArticleNum(@me);[/field:ID]) 可获得更多形式。

如果你使用该方法没有效果,请打开 inc_typelink.php(以下是在 dedecms v3.1的情况,4.x版本请对应查看)

查找函数 function GetChannelList 体内的

if($row=$this->dsql->GetArray())
         {

加上一行 $row['id'] = $row['ID'];
 

这是dedecms 里面一个奇怪的问题。 [field:ID /] 经常获得不到值,有时又是可以的,而用$row['id'] = $row['ID']; 后即可用 [field:ID /]获得,  可能是 $row['ID'] 在某个地方没打引号被作为了一个常量。。。。。。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值