关灯
开启左侧

Discuz帖子浏览记录

  [复制链接]
admin实名认证 发表于 2017-3-13 23:17:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
Discuz帖子浏览记录




Discuz! X 在后台可以设置记录浏览过的帖子,这样当我们找刚浏览过的帖子时就会方便很多。
后台开启方法:进入后台->界面->界面设置->帖子内容页,里面有一个设置项: 显示最近访问帖子数量
如果这里设置了数字,那么会记录我们浏览过帖子的信息,设置为 0 则表示不启用该功能。

这里开启后,我们在浏览的帖子的时候,会做记录,具体的代码是在 /source/module/forum/forum_viewthread.php ,打开这个文件,
看到代码
  • $oldthreads = viewthread_oldtopics(!$archiveid ? $_G['tid'] : 0);


这里执行了函数  viewthread_oldtopics  函数,对当前浏览的主题做了记录,这个函数就在这个文件得下面,代码如下:
  • function viewthread_oldtopics($tid = 0) {
  •         global $_G;

  •         $oldthreads = array();

  •         $oldtopics = isset($_G['cookie']['oldtopics']) ? $_G['cookie']['oldtopics'] : 'D';

  •         if($_G['setting']['visitedthreads']) {
  •                 $oldtids = array_slice(explode('D', $oldtopics), 0, $_G['setting']['visitedthreads']);
  •                 $oldtidsnew = array();
  •                 foreach($oldtids as $oldtid) {
  •                         $oldtid && $oldtidsnew[] = $oldtid;
  •                 }
  •                 if($oldtidsnew) {
  •                         $query = DB::query("SELECT tid, subject FROM ".DB::table('forum_thread')." WHERE tid IN (".dimplode($oldtidsnew).")");
  •                         while($oldthread = DB::fetch($query)) {
  •                                 $oldthreads[$oldthread['tid']] = $oldthread['subject'];
  •                         }
  •                 }
  •                 array_unshift($oldtidsnew, $tid);
  •                 dsetcookie('oldtopics', implode('D', array_slice($oldtidsnew, 0, $_G['setting']['visitedthreads'])), 3600);                ;
  •         }

  •         
  •         if($_G['member']['lastvisit'] < $_G['forum_thread']['lastpost'] && (!isset($_G['cookie']['fid'.$_G['fid']]) || $_G['forum_thread']['lastpost'] > $_G['cookie']['fid'.$_G['fid']])) {
  •                 dsetcookie('fid'.$_G['fid'], $_G['forum_thread']['lastpost'], 3600);
  •         }

  •         return $oldthreads;
  • }


这个函数首先判断如果开启了记录浏览记录的话,则把当前浏览的帖子记录存到当前的 cookie 中,然后返回给变量  $oldthreads 。

在帖子显示的模板页面 /template/default/forum/view_thread.htm
下面有代码:
  • <!--{if ($_G['setting']['visitedforums'] || $oldthreads) && $_G['forum']['status'] != 3}-->
  •         <div id="visitedforums_menu" class="{if $oldthreads}visited_w {/if}p_pop blk cl" style="display: none;">
  •                 <table cellspacing="0" cellpadding="0">
  •                         <tr>
  •                                 <!--{if $oldthreads}-->
  •                                         <td id="v_threads">
  •                                                 <h3 class="mbn pbn bbda xg1">{lang viewd_threads}</h3>
  •                                                 <ul class="xl xl1">
  •                                                 <!--{loop $oldthreads $oldtid $oldsubject}-->
  •                                                         <li><a href="forum.php?mod=viewthread&tid=$oldtid">$oldsubject</a></li>
  •                                                 <!--{/loop}-->
  •                                                 </ul>
  •                                         </td>
  •                                 <!--{/if}-->
  •                                 <!--{if $_G['setting']['visitedforums']}-->
  •                                         <td id="v_forums">
  •                                                 <h3 class="mbn pbn bbda xg1">{lang viewed_forums}</h3>
  •                                                 <ul class="xl xl1">
  •                                                         $_G['setting']['visitedforums']
  •                                                 </ul>
  •                                         </td>
  •                                 <!--{/if}-->
  •                         </tr>
  •                 </table>
  •         </div>
  • <!--{/if}-->



这里处理把 PHP 得到的变量放到页面中,然后默认是隐藏的,当鼠标放到帖子列表页的返回时,触发 JS 代码 showmenu ,同时将隐藏的浏览记录在这个位置显示,从而显示出自己的浏览记录。。

标签:记录
 

精彩评论20

倒序浏览
潜江劫持 发表于 2017-3-26 15:14:28 | 显示全部楼层
 
太棒了,感谢楼主
 
正能量 发表于 2017-3-25 06:21:28 | 显示全部楼层
 
感谢分享!发帖赚点金币哈哈
 
微信网页版 发表于 2017-3-24 03:50:57 来自手机 | 显示全部楼层
 
非常感谢!支持!
 
点赞 发表于 2017-3-22 20:53:30 | 显示全部楼层
 
找了好久终于找到了!感谢分享!
 
新浪 发表于 2017-3-21 13:45:39 | 显示全部楼层
 
找了好久终于找到了!吾爱尚玩真棒!
 
花儿与少年 发表于 2017-3-20 14:24:54 | 显示全部楼层
 
楼主好棒!!!!
 
脑洞大开 发表于 2017-3-20 13:49:57 | 显示全部楼层
 
感谢楼主分享,祝愿吾爱尚玩越来越好!
 
日本马桶盖 发表于 2017-3-20 09:36:20 | 显示全部楼层
 
支持楼主。。
 
魔都 发表于 2017-3-19 22:51:58 | 显示全部楼层
 
感谢楼主分享,祝愿吾爱尚玩越来越好!
 
补刀 发表于 2017-3-19 22:35:57 | 显示全部楼层
 
100金币1块钱? 1块钱1-2个资源?
 
小三 发表于 2017-3-19 10:11:17 | 显示全部楼层
 
找了好久终于找到了!吾爱尚玩真棒!
 
杨幂 发表于 2017-3-18 07:15:00 | 显示全部楼层
 
支持!这价格相当于免费的了!
 
抢红包实名认证 发表于 2017-3-17 18:08:28 来自手机 | 显示全部楼层
 
小白一个 顶一下,吾爱尚玩免费服务端下载!
 
爱上你的人 发表于 2017-3-17 09:16:08 | 显示全部楼层
 
太棒了,感谢楼主
 
锤子rom 发表于 2017-3-17 02:36:52 | 显示全部楼层
 
感谢分享!发帖赚点金币哈哈
 
重口味 发表于 2017-3-16 21:12:58 | 显示全部楼层
 
找了好久终于找到了!吾爱尚玩真棒!
 
有钱任性 发表于 2017-3-15 16:34:43 | 显示全部楼层
 
非常感谢!支持!
 
你懂的 发表于 2017-3-15 15:40:54 | 显示全部楼层
 
感谢分享  很给力
 
大众点评网 发表于 2017-3-15 02:12:43 | 显示全部楼层
 
找了好久终于找到了!感谢分享!
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

0关注

5粉丝

3305帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

吾爱尚玩资源基地永久域名:

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

Copyright   ©2015-2116  吾爱尚玩资源基地|523play.comPowered by©523Pplay.Com技术支持:吾爱尚玩资源基地