V9版的浏览记录 感谢原作者分享

来源:互联网 发布:华兴资本知乎 编辑:程序博客网 时间:2024/06/04 23:19

最近一个项目需要用到 记得以前收藏过一个浏览记录帖子 就看了一下 发现是2008的版本 那么小做修改 变成V9版本的了 感谢原作者.

20131113更新只能读取一个浏览记录BUG 改代码时不小心改到了….居然没人反馈啊

作者原帖 http://bbs.phpcms.cn/forum.php?mod=viewthread&tid=136719

论坛上看见过浏览记录的解决方案。但如果要实现的话需要修改源文件,并且需要动态页面才可以调用。且没有详细的操作步骤。
相信会有不少人需要,在参考了PC文章的浏览记录后,解决如下:
1、不需要改动原来文件。新增一个文件及一个模板文件。
2、静态页面AJAX调用。

步骤:
1、根目录下新增文件readid.php

 <?php    header("Cache-Control: no-cache, must-revalidate");    include 'phpcms'.DIRECTORY_SEPARATOR.'base.php';    pc_base::load_sys_class('param', '', 0);    $contentid = isset($_GET['contentid']) ? intval($_GET['contentid']) : 0;    $readid = param::get_cookie('readid');    $readid = intval($readid);    $action = $_GET['action'];    if($readid)$readwhere = $readid;    switch($action)    {    case 'read':      if($contentid){       if($readid)        {         $readid = $contentid.','.$readid;         $tmp = explode(",",$readid);         $tmp = array_unique($tmp);         while(count($tmp) > 10)array_pop($tmp);         $readid = implode(",",$tmp);        }        else $readid = $contentid;        param::set_cookie('readid',$readid,time()+3600*365*24);      }    break;    case 'list':      include template('content', 'read_fang');    break;    }    ?>

2、新增模板文件read_fang.html

 <ul>    {if $readwhere}    {pc:get sql="SELECT * FROM `phpcms_news` WHERE id IN ($readwhere) AND status = '99' ORDER BY FIND_IN_SET(id,'$readwhere')" num="10"}    {loop $data $key $r}    <li><a href="{$r[url]}" title="{$r['title']}">{$r['title']}</a></li>    {/loop}    {/pc}    {else}    <li>您还没有浏览过信息</li>    {/if}    </ul>

3、静态页面调用:
(1)、需要调用的内容页面模板文件,如show.html,加上:

 <script language="JavaScript" src="readid.php?contentid={$contentid}&action=read"></script>

(2)、浏览页调用:

先添加JS代码:

  <script type="text/javascript">    $(document).ready(function(){    $('#readhouse').load("readid.php?action=list");    });    </script>

在需要浏览记录显示的地方,添加:

 <div id="readhouse"><img src="images/loading.gif" align="absmiddle"> 数据加载中</div>
阅读全文
0 0
原创粉丝点击