simon803的专栏

如果白痴能飞,中国就是一个大机场!

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'] 在某个地方没打引号被作为了一个常量。。。。。。 

阅读更多
文章标签: function sql file c
个人分类: DedeCMS
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭