有时候我们需要对网站所有文章的收藏量进行一个统计,但是织梦dedecms默认没有这个统计功能,我们需要二次开发,下面我们就一起来看看吧!
首先我们要对数据库进行操作,需要取得数据库权限,建议大家在操作前最好备份一下数据库以及文件。下面是详细步骤:
第一步、新建数据库表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` SET stowsstows = stows+1 WHERE title='$title' ");
if($rs <= 0)
{
$query = " INSERT INTO `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("SELECT SUM(stows) AS totals FROM `dede_stows` WHERE id='$aid' ");
if(empty($row['totals'])) $row['totals'] = 0;
echo "document.write('{$row['totals']}');";
exit();
注意:上面两段代码里面的dede_字符都改成自己的数据库前缀,完成后只要在你需要显示统计的页面加入如下代码即可显示统计总次数:
<srcipt src="{dede:global name='cfg_phpurl'/}/stows.php?aid={dede:field name='id'/}" language="javasrcipt"></srcipt>