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

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

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

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

我们做之前可以去看下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. 算法训练 Hanoi问题

      算法训练 Hanoi问题   时间限制:1.0s   内存限制:512.0MB      问题描述 如果将课本上的Hanoi塔问题稍做修改:仍然是给定N只盘子,3根柱子,但是允许每次最多移动相邻的 ...

  2. Android开发笔记-加载xml资源

    1.Activity获取strings.xml中键的值 需要通过 getResources().getString(R.string.*)方法获得 以“state”为例 String value= g ...

  3. Swift-11-协议(Protocols)

    协议定义了一个蓝图,规定了用来实现某一特定工作或者功能所必须的方法和属性.类.结构体或者枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能.任意能满足协议要求的类型被称为遵循confor ...

  4. 解决VS2010无法打开,提示无法找到atl100.dll的方法

    这个问题是卸载VS2010一些组件造成的误删问题,且从网上下的atl100.dll通常与自己的VS2010不符 解决方法: 从路径:C:\Program Files\Microsoft Visual ...

  5. mysql tinyint smallint mediumint int bigint

    类型 存储所占空间 (无论显示多少位) (单位 字节/bytes) 存储数据范围 最大显示长度 tinyint 1 -128   ~  127                 signed 0     ...

  6. synzhronized原理3

    1.java中的每个对象都可作为锁,有三种表现形式: 对于普通方法,锁的是当前this对象. 对于静态方法,锁的是class对象 对于方法块,锁的是synchronized指定的对象. 2.JVM基于 ...

  7. extjs form.load()加载服务端数据

    formPanel.getForm().load({ url: 'getApproveRefundInf?refundIdDetail=${refundIdDetail}', waitMsg: '请稍 ...

  8. Power-BI 主要城市商品房销售分析

    经常在网上看到有关房价的讨论,房价可能真的悬了,高房价撑不了多久,一线城市房价远高于国际,暴涨游戏该结束了,等等.那么近年来房价整体上究竟是一个什么样的状态?今天我们撇开宏观经济要素,来看看近年来主要 ...

  9. MVC项目实践,在三层架构下实现SportsStore-10,连接字符串的加密和解密

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  10. selenium 回放时遇到的问题

    回放时,系统报”Window does not exist” 录制时,存在弹出页面 回放时,系统会报以下的错误: 问题的根本原因: window 窗口没有id和name属性,系统会自动生成name属性 ...