在页面里显示每部影视作品的浏览量,显示方法如下所示:

首先我们要在内容模板文件里增加显示区:

然后到后保存下文章页的内容页的模版,然后去看下对我们的样式有没有什么影响:

看到这里我们就已经成功一点点噢,样式没一点的影响,不过革命尚未成功,还需继续努力:

我们做之前可以去看下dedecms他们原先是怎么去实现的,看下他们的模版文件:

很明显就看得出他们是嵌套了一段js的代码,向count.php发送了一段请求,这里很显然就是在一个静态模版里面实现部分数据动态的变化。。

现在在市场上我们常见的静态页面中实现局部动态数据变化的主流还是2种方法:

1.用javascript来进行实现,原理如下所示:

第二种方法就是我们的jquery的ajax请求,示意图如下:

然后我们将他的复制过来:

然后在后台更新下文章页模版文件:

然后再去访问看看:

刷新一下看看是否发生了变化:

果然发生了变化。。。

我们来分析一下他是如何实现的:

这里有一个count.php的文件,那么我们来看下他在那长成啥样的,我们毕竟有了静态化模版文件,那么我到到静态化模版文件里看下他的详细路径在哪:

然后搜索“浏览量”。。

这样即可知道他的路径在哪里了,然后我们按照这个路径对他打开看看:

他是存放在我们的plus(这一般都是插件程序的开发目录),我么在这里创建一个mycount.php来自己实现一个浏览次数统计程序,代码如下所示:

<?php
//这里引入了最常用的文件common.inc.php,这里定义了很多的常量而且还自身引入了很多文件
require_once(dirname(__FILE__)."/../include/common.inc.php");
//这里主要是看下我们的d盘有没有生成文件,如果生成文件,证明我们的mycount.php成功被调用到了
file_put_contents("d:/my.log",'yyyy');

然后修改下article_movie.htm(文章页的模版文件)如下所示

<li>浏览量:<script src="{dede:field name='phpurl'/}/mycount.php?flag=update&aid={dede:field name='id'/}" type='text/javascript' language="javascript">
</script>次</li>

然后更新下模版文件:

更新成功后如下所示:

如果没显示,这也是正常的,然后我们到D盘看下有没生成my.log文件:

这里也成功生成了,看下里面的东西是否和我们刚才在mycount.php里面所写的一样:

如果是一样证明我们的mycount.php成功的被调用起来了,继续写mycount.php了,代码如下所示:

<?php
//这里引入了最常用的文件common.inc.php,这里定义了很多的常量而且还自身引入了很多文件
require_once(dirname(__FILE__)."/../include/common.inc.php");
//这里主要是看下我们的d盘有没有生成文件,如果生成文件,证明我们的mycount.php成功被调用到了
//file_put_contents("d:/my.log",'yyyy');
$flag = $_GET['flag'];
if($flag == 'update'){
//首先获取文档的id
$aid = $_GET['aid'];
//点击率是放在主表里面的,因为每个商品或者每篇文章都有点击率这个属性的
$sql = "update dede_archives set click=click+1 where id={$aid}";
//测试下sql语句是否正确
//file_put_contents("d:/my.log",$sql);
//查看下数据类型,我们发现是DedeSqli的
//file_put_contents("d:/my.log",serialize($dsql));
//执行修改让浏览次数添加1
$dsql->ExecuteNoneQuery($sql);
//查询下数据库看下得到多少的流浪次数,并返回给浏览器
$sql = "select click from dede_archives where id={$aid}";
$row = $dsql->GetOne($sql);
if(is_array($row)){
//把这个结果返回给浏览器,但是在得的cms里面这这方法是不会正常显示的,因为样式会错位
//echo $row['click'];
//如果请求方式是<script src="" type=""></script>为了样式不变则要用如下返回方式
echo "document.write('".$row['click']."');\r\n";
}
}

夺命雷公狗---DEDECMS----28dedecms浏览次数的完成的更多相关文章

  1. 夺命雷公狗---微信开发62----所以memcache对access_token进行全局缓存优化

    公众号调用接口并不是无限制的,为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下, 每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到错误信息,造成调用失败. 我们也 ...

  2. 夺命雷公狗-----React---12--添加类和样式

    <!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...

  3. 夺命雷公狗-----React---11--添加css样式的方法

    <!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...

  4. 夺命雷公狗-----React---10--组建嵌套进行数据遍历

    先写一个组建... 然后进行嵌套.. <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  5. 夺命雷公狗-----React---9--map数据的遍历

    比如我们要实现的是这种效果: 用这种方法来写,她只能写死在哪,没啥意思,所以我们定义一个数据,然后来测试下map方法对她遍历出来的数据 <!DOCTYPE html> <html l ...

  6. 夺命雷公狗-----React---8--react官方提供的组建实现双向绑定

    首先要引入她.. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  7. 夺命雷公狗-----React---7--组建的状态props和state

    props:组建初始要渲染的数据,他是不可以改变的 state:组建状态发生改变,调用render重新渲染数据 我们来写一个例子: <!DOCTYPE html> <html lan ...

  8. 夺命雷公狗-----React---6--props多属性的传递

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 夺命雷公狗-----React---5--props对象的传递

    提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  10. 夺命雷公狗-----React---4--props变量的传递

    提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

随机推荐

  1. IOS证书的申请和使用

    苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有证书,做了这么多次还是感觉很纠结,索性直接记录下来,日后你我他查阅都方便: 关于证书 苹果使用密文签名技术来验证App的合法性,不 ...

  2. [LeetCode]题解(python):041-First Missing Positive

    题目来源 https://leetcode.com/problems/first-missing-positive/ Given an unsorted integer array, find the ...

  3. busybox sz rz命令

    之前板子和电脑之间传送文件的时候都是通过tftp网络下载.所以找了一下在文件系统中使用串口上传文件的方法. rz和sz命令使用zmoderm协议,SecureCRT也用提供这个命令的支持.由于是串口, ...

  4. oracle语句随笔

    oracle语句随笔 dmp数据的导入. ; --创建用户 GRANT CONNECT,RESOURCE,DBA TO memsspc; --赋值权限 --cmd 中导入命令 IMP memsspc@ ...

  5. @JsonProperty的使用

    jackson的maven依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <art ...

  6. C#实现二叉查找树

    简介 树是一种非线性结构.树的本质是将一些节点由边连接起来,形成层级的结构.而二叉树是一种特殊的树,使得树每个子节点必须小于等于2.而二叉查找树又是一类特殊的二叉树.使得每一个节点的左节点或左子树的所 ...

  7. iOS:crash崩溃日志分析

    一.前言: 作为一个合格的iOS开发者,除了具有规范强悍的编码能力外,还应该具有过硬的查错纠错能力.在项目运行时,程序崩溃是不可避免的,遇到这个问题,有时会出现一大堆的crash日志,艹,貌似看不懂呀 ...

  8. 再探Java基础——throw与throws

    http://blog.csdn.net/luoweifu/article/details/10721543 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待 ...

  9. 第二篇 Replication:分发服务器的作用

    本篇文章是SQL Server Replication系列的第二篇,详细内容请参考原文. 分发服务器是SQL Server复制的核心组件.分发服务器控制并执行数据从一个服务器移动到另一个服务器的进程. ...

  10. mysql修改表名,列名,列类型,添加表列,删除表列

    alter table test rename test1; --修改表名 ); --添加表列 alter table test drop column name; --删除表列 ) --修改表列类型 ...