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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[分享] 关于推荐跟高亮效果自动消失的问题解释

[复制链接]
dongdong0925 发表于 2011-2-17 16:27:02 | 显示全部楼层 |阅读模式
最近有网友反馈房产信息推荐跟高亮效果过一段时间后自动消失的问题,原因是推荐/高亮有自己的有效期,过了这个有效期后效果就会自动消失。
下面具体分析下是如何实现的:

1.首先是进行推荐/高亮的操作,具体执行代码在source\module\category\house\threadmod.php文件


推荐的部分代码如下:
  1. if($_G['gp_operation'] == 'recommend') {
  2.                         $isrecommend = intval($_G['gp_isrecommend']);
  3.                         $statussql = "recommend='".intval($_G['gp_isrecommend'])."'";
  4.                         $addnumsql = 'todayrecommend=todayrecommend+1';
  5.                         $expiration = TIMESTAMP + 86400 * 3;
复制代码

其中$expiration = TIMESTAMP + 86400 * 3;就是推荐自己的有效期,如果想要自己修改有效期,更改后面的86400 * 3即可。(86400=3600*24,即1天,这里有效期默认为3天)

高亮的部分代码如下:
  1. elseif($_G['gp_operation'] == 'highlight') {
  2.                         $highlight_style = $_G['gp_highlight_style'];
  3.                         $highlight_color = $_G['gp_highlight_color'];
  4.                         $stylebin = '';
  5.                         for($i = 1; $i <= 3; $i++) {
  6.                                 $stylebin .= empty($highlight_style[$i]) ? '0' : '1';
  7.                         }

  8.                         $highlight_style = bindec($stylebin);
  9.                         if($highlight_style < 0 || $highlight_style > 7 || $highlight_color < 0 || $highlight_color > 8) {
  10.                                 showmessage('undefined_action', NULL);
  11.                         }
  12.                         $statussql = "highlight='$highlight_style$highlight_color'";
  13.                         $addnumsql = 'todayhighlight=todayhighlight+1';
  14.                         $expiration = TIMESTAMP + 86400;
复制代码
其中$expiration = TIMESTAMP + 86400;就是高亮自己的有效期,如果想要自己修改有效期,更改后面的86400即可。(86400=3600*24,即1天,这里有效期默认为1天)



2.推荐/高亮的效果是如何取消的,具体执行代码在source\module\category\house\view.php文件
具体代码如下:
  1. if($sortdata['highlight'] || $sortdata['recommend']) {
  2.         if($sortdata['highlight']) {
  3.                 $highlight = DB::fetch_first("SELECT expiration FROM ".DB::table('category_threadmod')." WHERE tid='$tid' AND action='highlight' ORDER BY expiration DESC LIMIT 1");
  4.                 if(TIMESTAMP > $highlight['expiration'] && !empty($highlight['expiration'])) {
  5.                         DB::query("UPDATE ".DB::table('category_sortvalue')."$sortid SET highlight='0' WHERE tid='$tid'", 'UNBUFFERED');
  6.                 }
  7.         }

  8.         if($sortdata['recommend']) {
  9.                 $recommend = DB::fetch_first("SELECT expiration FROM ".DB::table('category_threadmod')." WHERE tid='$tid' AND action='recommend' ORDER BY expiration DESC LIMIT 1");
  10.                 if(TIMESTAMP > $recommend['expiration'] && !empty($recommend['expiration'])) {
  11.                         DB::query("UPDATE ".DB::table('category_sortvalue')."$sortid SET recommend='0' WHERE tid='$tid'", 'UNBUFFERED');
  12.                 }
  13.         }
  14. }
复制代码
这里如果高亮/推荐的有效期小于当前时间,那么就更新高亮/推荐的操作,即取消效果。

其中的这句代码
  1. DB::query("UPDATE ".DB::table('category_sortvalue')."$sortid SET highlight='0' WHERE tid='$tid'", 'UNBUFFERED');
复制代码
会取消高亮的效果。

其中的这句代码

  1. DB::query("UPDATE ".DB::table('category_sortvalue')."$sortid SET recommend='0' WHERE tid='$tid'", 'UNBUFFERED');
复制代码
会取消推荐的效果。
aiqingxia 发表于 2011-2-17 16:28:53 | 显示全部楼层
沙发我的 前排支持
回复

使用道具 举报

xjhouse 发表于 2011-2-17 16:37:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

湖中沉 发表于 2011-2-17 16:49:19 | 显示全部楼层
高亮似乎一直是无效的
回复

使用道具 举报

xueyu608 发表于 2011-2-17 16:51:19 | 显示全部楼层
本帖最后由 xueyu608 于 2011-2-17 16:54 编辑

期待在前台信息管理里面增加选项一天、三天、5天、七天、一个月、半年、一年、十年、

补充一点:要是在前台信息管理里面设置推荐和高亮信息的起始时间和终止时间。就更完美了。。。
回复

使用道具 举报

mezhzl 发表于 2011-2-17 17:20:55 | 显示全部楼层
完美解决了?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:21 , Processed in 0.107590 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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