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

 找回密码
 立即注册
搜索

====开心农场===农场老问题,让农场新邮件提示..

[复制链接]
liuzhly 发表于 2010-1-14 15:52:51 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2010-01-14 18:43 编辑

有个朋友给我短信:

农场留言没提示,点进去才能看到提示数字,刷新又没了

所以给大家个修改方法:

打开:newfarmjson.php


找到如下修改成红色地方,请不要复制代码,只修改红色部分~~~

                                                                $message = json_decode( $list[0][message] );
                                                                $top = "";
                                                                $c = 0;
                $b = substr_count(json_encode($message->c),',"status":0,'); //用户邮件
                $b += substr_count(json_encode($message->d),',"status":"0",'); //用户装饰
                                                                $executesql=false;
                                                        foreach ( $message->e as $key => $value ){
                                        if ( $value->status == 0 ){
                                $b++;  //说明,为什么不用$c++; ,是因为不管$c的值是多少,都是提示1封邮件,所以用$b计算邮件多少
                                        }elseif ( $value->status == 2 ){
                                if ( 3000 < $value->formulaId ){
                                        $type = 3;
                                        $Rid = 1;
                                }else if ( 2000 < $value->formulaId && $value->formulaId < 3000 ){
                                        $type = 2;
                                        $Rid = 1;
                                }else{
                                        $type = 1;
                                        $Rid = $value->formulaId % 12;
                                }
                                if($value->validTime == 0){
                                        if( $_SGLOBAL['timestamp'] - $value->sendTime > $timeout[$type][$Rid]){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                        }
                                }else{
                                        if($_SGLOBAL['timestamp'] > $value->validTime){
                                                $executesql=true;
                                                unset( $message->e[$key] );
                                        }else{
                                                $top[] = "{\"id\":".$value->id.",\"formulaId\":\"".$value->formulaId."\",\"type\":".$type.",\"friendId\":\"".$value->friendId."\",\"fName\":\"".$value->fName."\",\"charm\":".$value->charm.",\"msg\":\"".$value->msg."\",\"show\":\"1\",\"x\":\"".$value->x."\",\"y\":\"".$value->y."\",\"z\":\"".$value->z."\"}";
                                                }
                                                }
                                                }
                                                       }
                                                                $top = json_encode( $top );
                                                                $top = str_replace( "\"{", "{", $top );
                                                                $top = str_replace( "}\"", "}", $top );
                                                                $top = str_replace( "\\u", "\\\\u", $top );
                                                                if ( $top == "" )
                                                                {
                                                                                                $top = "null";
                                                                }
                                                                $taskid = "";
                                                                if ( $list[0][taskid] < 12 )
                                                                {
                                                                                                $taskid = ",\"task\":{\"taskId\":".$list[0][taskid].",\"taskFlag\":1}";
                                                                }
                                                                if ( $list[0][taskid] == 1 )
                                                                {
                                                                                                $taskid = ",\"task\":{\"taskId\":".$list[0][taskid].",\"taskFlag\":1},\"welcome\":1";
                                                                }
                                                                $isread = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('plug_newfarm_logs')." WHERE uid = ".$_SGLOBAL['supe_uid']." and isread = 0"), 0);
                                                                if ($isread){
                                                                        $a = 1;
                                                                        }else {
                                                                        $a = 0;
                                                                }
                                                                if($executesql){
                                        $message = json_encode( $message );
                                        $message = preg_replace( "'\"[0-9]+\":{'", "{", $message );
                                        $message = str_ireplace( "\"e\":{{", "\"e\":[{", $message );
                                                $message = str_ireplace( "}}}", "}]}", $message );
                                        $message = str_replace( "\\u", "\\\\u", $message );
                                        $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".$_SGLOBAL['supe_uid'] );
                                                }
                                                                echo stripslashes( "{\"farmlandStatus\":".$farmlandstatusarr.",\"items\":{".$decorative_srt."},\"exp\":".$list[0][exp].",\"charm\":".$list[0][charm].",\"dog\":".$dogstr.",\"top\":".$top.",\"weather\":{\"weatherId\":1},\"serverTime\":{\"time\":".$_SGLOBAL['timestamp']."},\"user\":{\"uId\":\"".$_SGLOBAL['supe_uid']."\",\"userName\":\"".str_replace( "\\u", "\\\\u", unicode_encodegb( $space['username'] ) )."\",\"money\":".$list[0][money].",\"FB\":\"".$list[0][fb]."\",\"exp\":".$list[0][exp].",\"charm\":".$list[0][charm].",\"headPic\":\"".avatarfarm( $_SGLOBAL[supe_uid], "small", TRUE )."\"},\"a\":".$a.",\"c\":".$c.",\"b\":{$b}".$taskid."}" );
                                                                exit( );



============不熟悉的忽略下面===================
说明:
                $b = substr_count(json_encode($message->c),',"status":0,'); //用户邮件
                $b += substr_count(json_encode($message->d),',"status":"0",'); //用户装饰
其实可修改为:

                $b = substr_count($list[0][message],',"status":0,'); //用户邮件
去掉:$b++;
然后查找 status\":\"0\" 改成 status\":0 ,就是去掉引号就可以了!不过不熟悉代码的请不要这样做!
因为目前在MESSAGE字段中, {"a":[未知未用],"b":[未知未用],"c":[邮件],"d":[赠送的场景装饰],"e":[赠送的鲜花礼物]} ,为了保持兼容性,还是建议使用
                $b = substr_count(json_encode($message->c),',"status":0,'); //用户邮件
                $b += substr_count(json_encode($message->d),',"status":"0",'); //用户装饰
方法!!
回复

使用道具 举报

火风 发表于 2010-1-14 15:57:47 | 显示全部楼层
谢谢大大!!!!!
又让我抢到沙发了???????
回复

使用道具 举报

火风 发表于 2010-1-14 16:36:31 | 显示全部楼层
本帖最后由 火风 于 2010-01-14 16:40 编辑

刚才测试了,完全正常。。。。。。。。
辛苦了,liuzhly

SAM山姆的版本缺少这段代码 $b = substr_count(json_encode($message->c),',"status":0,'); //用户邮件
这可能就是造成邮件无提示的原因吧。

有此问题的朋友要自己加上这段代码。
回复

使用道具 举报

samfs 发表于 2010-1-14 16:55:00 | 显示全部楼层
回复

使用道具 举报

jackyzrk 发表于 2010-1-14 18:09:00 | 显示全部楼层
记得以前kunfan已经处理了这个问题
我一直在用
回复

使用道具 举报

kazzak 发表于 2010-1-14 18:09:55 | 显示全部楼层
支持,好人啊
回复

使用道具 举报

dansui1314 发表于 2010-1-14 18:35:56 | 显示全部楼层
支持~~~~!!
回复

使用道具 举报

kazzak 发表于 2010-1-14 19:00:04 | 显示全部楼层
我已经更改,可以使用,非常好
回复

使用道具 举报

火风 发表于 2010-1-14 19:23:37 | 显示全部楼层
看了此贴,并使用此贴方法进行了修改的,不顶木JJ
回复

使用道具 举报

hs999 发表于 2010-1-14 21:03:23 | 显示全部楼层
首先表示感谢。

牧场里的留言可以修改成有提示的么?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 18:44 , Processed in 0.107606 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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