织梦二次开发统计栏目的点击次数


织梦可以很简单的统计文章的点击次数因为它有内置的统计函数,那么我要统计栏目的点击次数呢?我就想知道哪个栏目被点击的多怎么办呢?今天来说下具体方案。

首先想要统计栏目的点击次数必须要三点,第一点:在数据库中插入一个字段用来存储点击数,第二点:自定义一个标签用来获取点击数:第三点:制作一个POST请求用来导入点击数,只要完成这三点就可以啦。

 

第一步:在数据库“dede_arctype”表中插入一个字段“fclick”;

ALTER TABLE dede_arctype ADD fclick mediumint(8) NOT NULL Default 0

 

第二步:定义一个函数用来在模板文件中调用,比如typeurl就是栏目地址,tipename就是栏目名称,我们要的是栏目点击数“[field:fclick /]”;

打开根目录下的“include”/“taglib”/“channel.lib.php”文件,

分别查找以下四个代码:

if($type==’top’)

else if($type==’son’)

else if($type==’self’)

if($type==’son’ && $reid!=0 && $totalRow==0)

然后分别在查找的四个代码的下方都有像下面这样的代码:

SELECT id,

在id,后面加上fclick,(注意标点符号)完整代码如下:

$sql = “SELECT id,fclick,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,fclick FROM `dede_arctype` WHERE reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0, $line “;

紧接着再查找如下代码:

$linkOkstr = str_replace(“~typename~”,$row[‘typename’],$linkOkstr);

在其下面加入如下代码:

$linkOkstr = str_replace(“~fclick~”,$row[‘fclick’],$linkOkstr);

至此获取栏目点击数就完成了,在模板中调用的代码如下:

{dede:channel row=’6′  type =’son’ typeid =’1′   }  <a js-data-id=”[field:id /]” href=”[field:typeurl/]” title='[field:typename /]:[field:description /] 共点击([field:fclick /])次。’>[field:typename/]</a> {/dede:channel}

这里要注意的是“fclick”标签我只在“channel.lib.php”中作了修改所以只能在{dede:channel}循环中有用,如果想在{dede:type}中也有效自行修改即可。