Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] Discuz3.2 24小时发帖new

[复制链接]
wzde2040 发表于 2016-12-23 17:50:15 | 显示全部楼层 |阅读模式
大家好,有一个需求想请教一下,应该如何实现

今天一个版主问我,能否做到 24小时之内发表的帖子后面加一个 新帖 的标签

我看了一下,Discuz3.2 默认发帖或者回复后会带有一个new的标签,但是这个new的标签,刷新一下网页之后就没有了,而且回复一下就会出现new,这个感觉不太好,没有达到新帖的目的

请教一下能否实现成 24小时之内发表的帖子后面加一个 新帖 的标签?应该如何操作,还请大神们赐教,感谢。
 楼主| wzde2040 发表于 2016-12-23 21:17:09 | 显示全部楼层
https://discuz.dismall.com/forum. ... ight=new&page=1https://discuz.dismall.com/thread-1500622-1-1.html,试着按照这两个方法操作,发现里面的命令都只适用于老版本discuz,3.2里面已经找不到了
回复

使用道具 举报

格东站长网插件 发表于 2016-12-23 22:33:58 | 显示全部楼层
1、你找的这些,都跟new标志关系不大。
2、查看了一下这个new标志出现的条件,居然判断得非常复杂,包括这几方面:
一、如果是本周发的新帖,但这句代码的变量赋值在之后,所以这句代码无效(哈哈,系统漏洞!)。
二、如果是普通主题且未点击过,而且是本周发布的新帖。
三、如果是普通主题且最后回帖时间之前你没点击过它,而且是本周发布的新帖。
所以,你一点击,就不显示了,而回个新帖,就又显示了,哈哈,好搞笑,我之前没检查代码居然还没发现这个问题。
要达到你想所说的24小时内发的新帖一直有new标志很容易,做两步:
1、/source/module/forum/forum_forumdisplay.php文件,找到默认的有漏洞的这句代码:
  1. $thread['weeknew'] = TIMESTAMP - 604800 <= $thread['dbdateline'];
复制代码

不用管它,在之下添加一句新代码:
  1. $thread['new'] = TIMESTAMP - 86400 <= $thread['dateline'];
复制代码

2、在模板文件/template/default/forum/forumdisplay_list.htm中,把默认的
  1. <!--{if $thread['weeknew']}-->
复制代码

这个变量替换为
  1. <!--{if $thread['new']}-->
复制代码

更新缓存就OK了。
哈哈,太搞笑了这个系统判断
回复

使用道具 举报

 楼主| wzde2040 发表于 2016-12-24 11:14:01 | 显示全部楼层
格东站长网插件 发表于 2016-12-23 22:33
1、你找的这些,都跟new标志关系不大。
2、查看了一下这个new标志出现的条件,居然判断得非常复杂,包括这 ...

太感谢您了!
回复

使用道具 举报

 楼主| wzde2040 发表于 2016-12-24 13:22:49 | 显示全部楼层
实际测试已生效

1.解决了点击之后或刷新后没有new的问题
2.解决了老贴被回复显示New的问题



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

无效楼层,该帖已经被删除
格东站长网插件 发表于 2016-12-24 13:54:17 | 显示全部楼层
wzde2040 发表于 2016-12-24 13:22
实际测试已生效

1.解决了点击之后或刷新后没有new的问题

当然啦,从源头上针对性解决的,肯定再不会有任何毛病了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-29 05:28 , Processed in 0.026963 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表