夺命雷公狗---DEDECMS----28dedecms浏览次数的完成
在页面里显示每部影视作品的浏览量,显示方法如下所示:
首先我们要在内容模板文件里增加显示区:
然后到后保存下文章页的内容页的模版,然后去看下对我们的样式有没有什么影响:
看到这里我们就已经成功一点点噢,样式没一点的影响,不过革命尚未成功,还需继续努力:
我们做之前可以去看下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浏览次数的完成的更多相关文章
- 夺命雷公狗---微信开发62----所以memcache对access_token进行全局缓存优化
公众号调用接口并不是无限制的,为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下, 每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到错误信息,造成调用失败. 我们也 ...
- 夺命雷公狗-----React---12--添加类和样式
<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...
- 夺命雷公狗-----React---11--添加css样式的方法
<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...
- 夺命雷公狗-----React---10--组建嵌套进行数据遍历
先写一个组建... 然后进行嵌套.. <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 夺命雷公狗-----React---9--map数据的遍历
比如我们要实现的是这种效果: 用这种方法来写,她只能写死在哪,没啥意思,所以我们定义一个数据,然后来测试下map方法对她遍历出来的数据 <!DOCTYPE html> <html l ...
- 夺命雷公狗-----React---8--react官方提供的组建实现双向绑定
首先要引入她.. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 夺命雷公狗-----React---7--组建的状态props和state
props:组建初始要渲染的数据,他是不可以改变的 state:组建状态发生改变,调用render重新渲染数据 我们来写一个例子: <!DOCTYPE html> <html lan ...
- 夺命雷公狗-----React---6--props多属性的传递
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 夺命雷公狗-----React---5--props对象的传递
提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 夺命雷公狗-----React---4--props变量的传递
提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
随机推荐
- 关于PushKit的使用总结
1.PushKit的认识 (1)概念 ios8苹果新引入了名为pushkit的框架和一种新的push通知类型,被称作voip push.该push方式旨在提供区别于普通apns push的能力,通过这 ...
- 【python PIL学习】给照片打水印
不知道别人是怎么做的,闲着无聊就根据前几天看到的一些PIL里面的函数,写了这个小程序,经过测试,基本可以给所有像宽400以上的图片打上从左下到右上的看上去质量尚可的水印,更小的图片水印偏下.写完觉得很 ...
- JS-007-富文本域操作
在日常 web 编写过程中,富文本域几乎成为了一个网站不可页面元素,同时,其也有着各种各样的实现方式,网络上也存在着各种各样的集成插件可供引用.此文以 js 获取.修改 163 邮箱写邮件时的邮件内容 ...
- JavaScript:实现瀑布流
一.前言: 瀑布流现在是一个非常常用的布局方式了,尤其在购物平台上,例如蘑菇街,淘宝等等. 二.流程: 1.在html文件中写出布局的元素内容: 2.在css文件中整体对每一个必要的元素进行样式和浮动 ...
- Python迁移MySQL数据到MongoDB脚本
MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...
- Android TimePickerDialog样式配置与TimePicker模式选择
习惯性的,把要说的内容先总结一下: TimePicker有两种模式:spinner 和clock,可通过如下方式配置: <TimePicker android:timePickerMode = ...
- nginx源码分析—内存池结构ngx_pool_t及内存管理
Content 0. 序 1. 内存池结构 1.1 ngx_pool_t结构 1.2 其他相关结构 1.3 ngx_pool_t的逻辑结构 2. 内存池操作 2.1 创建内存池 2.2 销毁内存池 2 ...
- Unity插件研究院之ResourceChecker
这个插件是我在国外网站逛论坛发现的,试用了一下非常好用,是一个轻量级的插件就一个类.开发中尤其是和美术合作的时候,可能你会发现Project视图中有很多没有用到的资源,但是你又不敢删除,因为你不知道那 ...
- java web工程读取及修改配置文件
这篇博客比自己讲解的详细: http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 使用方法: 1)配置文件在web-info的class目录下,或者 ...
- ios之无限 自动 图片轮播器的实现
比较之前发布的手动无限图片轮播器进行了改进.实现了自动无限轮播的功能.比较适合团购标题分类下面的轮播器功能. 实现思路: * 开启一个定时器,把操作放入消息循环池.每隔一定时间,操作执行一次. * 注 ...