首先呢,先在根目录 /plus 目录下找到count.php 复制一份然后命名为viewclick.php(你也可以命名为你容易理解的名字)用编辑器将viewclick.php打开然后删除以下几行代码(即插入数据库的这两行)
if(!empty($maintable))
{
$dsql->ExecuteNoneQuery(" UPDATE `{$maintable}` SET click=click+1 WHERE {$idtype}='$aid' ");
}
if(!empty($mid))
{
$dsql->ExecuteNoneQuery(" UPDATE `dede_member_tj` SET pagecount=pagecount+1 WHERE mid='$mid' ");
}
然后保存,后面列表页要用到。
现在开始从文章页说起~
使用DedeCMS建站时,在文章页调用文章浏览次数的标签是:
{dede:field.click/}(底层标签则为[field:click/])
这个标签调用的是静态浏览次数,刷新或点击后不会改变(只有后台重新生成后才会改变),用户体验十分差。
网上有解决方法,即把调用标签换为(若是底层标签请做相应修改):
<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script>
这样一来就能实现动态调用文章浏览次数,刷新一次增加一次,但是因为这里是js调用,每次都要向服务器请求一次,这里的标签是及时加载,到这里肯定会卡顿。
下面是解决方案。
具体的思路为:我们可以先自定义一个数字(可以定义为0)。当网页先进行加载时,是加载我们事先预定好的数字,然后通过网页最后的加载JS调用真正的点击次数。具体步骤为:
1、在点击次数的位置用span标签定义一个点击次数
<span id="countnum">0</span>次
2、修改Dede核心函数,找到 plus/count.php中,大概在49行(倒数第四行),
echo "document.write('".$row['click']."');\r\n";
换成
echo 'document.getElementByIdx_x_x_x_x_x("countnum").innerHTML='.$row['click'];
3、在网页底部添加js代码
把js添加在网页底部就能完美解决载入浏览次数时卡顿的问题用用体验很好,至此,就实现了文章页动态调用文章浏览次数。
<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" t
文章页到此为止~
************************************
那列表页和首页又如何联动调用呢?
此时我们的首页就可以直接使用{dede:field.click/}(底层标签则为[field:click/])来调用浏览次数;
列表页则用 (此为底层调用,若是非底层请做相应修改)来调用
<script src="[field:phpurl/]/viewclick.php?view=yes&aid=[field:id/]&mid=[field:mid/]" type='text/javascript' language="javascript"></script>
***提示:此调用方法还可以加入到文章页的其他需要调用点击浏览次数的列表中(比如相关推荐~)***