dedecms 织梦程序文章浏览次数增加

hyx 2019-03-04 15:10:30 197次 0

dedecms大部分都是生成静态文件的,而生成静态文件后,在列表页或者详情页显示加入浏览次数也是写死的,静态生成的,浏览了点击次数也不增加。

当然了,这并不是可以解决的。在plus/count.php文件就是解决该问题的文件。dedecms生成了.html结尾的静态文件,那么生成的该文件就无法编译动态语言php,想要获取动态数据只能通过js引入php文件进行操作了


动态显示浏览次数(文章列表或文章详情页)


/*文章列表页的*/
<script src="[field:phpurl/]/count.php?view=yes&aid=[field:id/]&mid=[field:mid/]" language="javascript"></script>

/*文章详情页的*/

<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" language="javascript"></script>

动态增加浏览次数

<script src="{dede:field name='phpurl'/}/count.php?aid={dede:field name='id'/}&mid={dede:field name='mid'/}" language="javascript"></script>


在plus/count.php内是所有通过js引入count.php文件 的浏览次数都相应的添加,想要仅是在详情页浏览次数增加,可以通过view参数进行判断  

count.php

GetOne("SELECT addtable FROM `#@__channeltype` WHERE id='$cid' AND issystem='-1';");
    $maintable = empty($row['addtable'])? '' : $row['addtable'];
    $idtype='aid';
}
$mid = (isset($mid) && is_numeric($mid)) ? $mid : 0;

//UpdateStat();
//if(!empty($maintable))
if(!empty($maintable) && empty($view))
{
    $dsql->ExecuteNoneQuery(" UPDATE `{$maintable}` SET click=click+1 WHERE {$idtype}='$aid' ");
}
if(!empty($mid) && empty($view) )
{
    $dsql->ExecuteNoneQuery(" UPDATE `#@__member_tj` SET pagecount=pagecount+1 WHERE mid='$mid' ");
}
if(!empty($view))
{
    $row = $dsql->GetOne(" SELECT click FROM `{$maintable}` WHERE {$idtype}='$aid' ");
    if(is_array($row))
    {
        echo "document.write('".$row['click']."');rn";
    }
}
exit();



在使用动态浏览次数时,很容易造成页面卡顿,解决方法

详情页 

<span class="pr1" >阅读:<span id="countnum">0</span></span>
<!--页面底部-->
<script>

			$.ajax({
				type:'get',
				url:"{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}",
				success:function (rtn) {
					$('#countnum').text(rtn);
                },
				error:function (e) {
					console.log(e);
                }
			});

		</script>


count.php页面

将 

echo "document.write('".$row['click']."');rn";

改为

echo $row['click'];


发表评论

注:*为必填

回复 的评论
*
选择
*
*

类似文章