对Dedecms进行二次开发以实现全站文章收藏次数的统计
DedeCMS二次开发全站文章收藏总次数统计可以通过以下步骤实现: 1. 在模板中添加一个调用收藏次数的标签,例如:`{dede:field.vote/text}`。 2. 在后台数据库中找到对应的字段,例如:`add_favourites`。 3. 编写SQL语句查询所有文章的收藏次数总和。 4. 将查询结果插入到模板标签中,例如:`{dede:sql}SELECT SUM(add_favourites) AS total FROM dede_articles{/dede:sql}`。 5. 在模板中显示总收藏次数,例如:`共有 {dede:field.total/text} 次收藏`。
需要对网站所有文章的收藏量统计,但是织梦默认没有这个统计功能,下面就告诉大家详细开发过程!
此过程需要对数据库进行操作,需要取得数据库权限,建议大家在操作前最好备份一下数据库以及文件。下面是详细步骤:
第一步、新建数据库表dede_stows,我们以直接复制dede_downloads数据表为例
注:dede为数据库表前缀,请改成你自己的表前缀!
然后将dede_downloads中的downloads名称更改为stows,再将hash字段删除;
新建一个名称为title的字段:
类型:text
长度:252
整理:gbk_chinese_ci(你的网站编码,如果是utf-8,请选择utf-8)
空:否
额外:留空
第二步、打开/plus/stow.php文件,将一下代码插入最后的 ?> 字符前面:
代码如下:
//更新收藏次数$title=($arctitle);$stows=0;$rs=$dsql->ExecuteNoneQuery2("UPDATE`dede_stows`SETstows=stows+1WHEREtitle='$title'");if($rs<=0){$query="INSERTINTO`dede_stows`(`title`,`id`,`stows`)VALUES('$title','$id',1);";$dsql->ExecNoneQuery($query);}
第三步、再新建一个php文件命名为stows.php,代码如下:
<?php/**收藏总次数统计*/require_once(dirname(__FILE__)."/../include/common.inc.php");$aid=(isset($aid)&&is_numeric($aid))?$aid:0;$row=$dsql->GetOne("SELECTSUM(stows)AStotalsFROM`dede_stows`WHEREid='$aid'");if(empty($row['totals']))$row['totals']=0;echo"document.write('{$row['totals']}');";exit();
注意:上面两段代码里面的dede_字符都改成自己的数据库前缀
完成后只要在你需要显示统计的页面加入如下代码即可显示统计总次数:
<srciptsrc="{dede:globalname='cfg_phpurl'/}/stows.php?aid={dede:fieldname='id'/}"language="javasrcipt"></srcipt>