• 3178阅读
  • 55回复

2013年11月1日:帖子点亮插件上线测试 [复制链接] [手机版]

上一主题 下一主题
离线为你守候
温馨家园,为你守候!

只看该作者 10楼 发表于: 2016-03-14 22:31:37 星期一  点亮(0)
帖子点亮插件修改
其实,非常简单,就是这样的效果:

具体看这里:http://www.vtu425.com/read-htm-tid-3026.html
这是主题列表页:http://www.vtu425.com/thread-htm-fid-6-flight-1.html

看着确实没几个元素,但就是这么简单,忙活了一天!
大概是昨天晚上发现样式可以调整下,于是今天就做这事儿了。

研究文件,研究样式,修改,测试,……翻过来,调过去……
光调整样式就花了N个小时,觉得差不多了,不经意间发现红箭头所指的地方不显示用户名(修改后当然显示了),以为是文件少了这部分代码,加上就可以,代码并不复杂。可查看文件,有相应的代码啊!再看主题列表页,可以显示用户名,看用户名部分的代码,和帖子阅读页的基本一致(都是正确的),复制过去替换,还是不显示。一样的代码,主题列表页显示,帖子阅读页就不显示,你说奇怪不!
  1. <div class="floor_box">
  2.     <div class="author"><div class="left"><a class="u" href="u.php?uid={$value[authorid]}" target="_blank">{$value[author]}</a>  <span class="stime">{$value[postdate]}</span>
(头像右侧的“帖子作者,发帖时间”,后面“点亮”部分的代码没贴)

换成$value[authorid]},可以显示uid,但显示uid有什么用呢?再换成$read[author]},可以显示帖子作者,但也是不经意间发现显示的用户名有时和帖子作者对不上,也就是说这样修改也是不对的。最后,初步判断是查询时帖子作者没查出来,这个查询由php文件负责,这是最难看懂的,我看这个头疼!

看来看去,琢磨来琢磨去,添加上蒙出来的一小段代码,嘿,显示了。经过测试,好像没问题!
再往下看代码,似乎发现问题了!主题列表页显示的点亮帖子是所有被点亮的帖子,即只要点击过“点亮”的帖子都会被显示,为了验证,测试了下,果然,1个点亮数也会显示在主题列表页。而点亮帖子又没有用户组限制,这到时候还不是“帖满为患”——满满的,N页都是点亮的帖子!我觉得,这样不好!帖子阅读页需要一定的点亮数才能显示,自然主题列表页也应试是如此,于是修改代码。测试通过!

修改好的样式其实只是初级版本,知道哪句控制哪里,而有的地方还没有精确调整,于是回过头来继续。最后做背景色在两个风格下自适应切换,还有最关键的兼容测试,这回没忘。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 11楼 发表于: 2016-03-15 00:20:45 星期二  点亮(0)
按照解决帖子点亮插件在阅读页读取出帖子作者的方法,再次尝试在后台显示证件认证信息,失败。

——本帖通过莘祺网回复.
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线未来首先

只看该作者 12楼 发表于: 2016-03-15 11:07:39 星期二  点亮(1)
精神上支持你
一个人的生命中,应该以:
上帝第一
家庭第二
事业第三
为生活的优先次序。
离线zhangjingyu

只看该作者 13楼 发表于: 2016-03-15 11:24:21 星期二  点亮(0)
帖子点亮插件在后台有一个设置是否扣除点亮者的积分,同时无论开启与否,被点亮者都增加相应的积分。不过,之前未开启过,但测试时注意到被点亮者的积分并没有增加。由于修改完成,于是今天开始测试积分扣除。然而,开启后进行测试,一直提示“您的积分不足,无法点亮本帖!”。更换积分类型,测试了好几次都不行,看来应该是文件有问题。还是令人头疼的php文件,不过这回还好,相应的代码不算复杂,能猜个八九。贴上完整代码:
  1. function setflight($pid,$tid,$uid){
  2.                 global $winduid;
  3.                 if(!$winduid){
  4.                         showmsg("对不起,点亮前请先登录!");
  5.                 }
  6.                 $this->checkflight($pid,$tid,$winduid,$uid);
  7.                 if($this->config[pay]){
  8.                         if($this->config[ispay]){
  9.                                 $mycredit = $this->credit->get($winduid,$this->config['paytype']);
  10.                                 if($mycredit < $this->config['pay']){
  11.                                         showmsg("您的积分不足,无法点亮本帖!");
  12.                                 }else{
  13.                                         $this->credit->set($winduid,$this->config['paytype'],-$this->config['pay']);
  14.                                 }
  15.                         }
  16.                         $this->credit->set($uid,$this->config['paytype'],$this->config['pay']);
  17.                 }
  18.                 $this->db->update("update pw_posts set flight=flight+1 where tid='$tid' and pid='$pid'");
  19.                 if($this->config['maxflight']){
  20.                         $this->db->update("insert into pw_flightlog(pid,tid,uid) values('$pid','$tid','$winduid')");
  21.                 }
  22.         }

看了半天代码,分析逻辑和执行顺序,应该都没有问题啊!第9行为获取登录者的积分,第13行扣除点亮者(登录者)的积分,第16行增加被点亮者的积分。百思不得其解!后来看配置文件,终于恍然大悟!原来是积分类型获取不对!三行代码中的是“config['paytype']”,而配置文件中的积分类型是“paycredit”!由于无法获取准确的积分类型,所以积分是读不出来的,也自然“您的积分不足,无法点亮本帖!”,被点亮者的积分无法增加。三处“paytype”换成“paycredit”,测试通过!一会儿上传文件,在莘祺网实际测试下。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 14楼 发表于: 2016-03-15 11:38:53 星期二  点亮(0)
非常感谢我们未来的首席先生,谢谢你的支持!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 15楼 发表于: 2016-03-15 11:42:37 星期二  点亮(0)
开始帖子点亮积分扣除测试,后台设置为点亮扣除5枚铜币,被点亮增加5枚铜币。此帖回复后,我的铜币应该是9903枚,我们未来的首席先生是379枚铜币。只做两个帖子的点亮测试。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 16楼 发表于: 2016-03-15 11:51:46 星期二  点亮(0)
点亮196楼和202楼,顾兄铜币由379增加到389枚,我的由9903减少到9893,测试成功!!!
这个积分扣除要不要开启呢?或者以后再说?暂时开启,积分变动将增加/扣除1枚铜币。(有加有减,公平些吧)
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线未来首先

只看该作者 17楼 发表于: 2016-03-15 14:55:19 星期二  点亮(0)
是指定点亮哪一层楼,就会加分,分就由开贴人出这个分,是这个意思吧
一个人的生命中,应该以:
上帝第一
家庭第二
事业第三
为生活的优先次序。
离线zhangjingyu

只看该作者 18楼 发表于: 2016-03-15 20:05:08 星期二  点亮(0)
差不多,收支平衡嘛!点亮只加分,小心被刷(⊙o⊙)哦。

——本帖通过莘祺网回复.
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 19楼 发表于: 2018-08-03 16:44:39 星期五  点亮(0)
帖内置顶相关代码
  1. //帖内置顶相关处理
  2. if ($topped_count) {
  3.     $topped_page_num = $db_readperpage;
  4.     $start_limit = (int)($page-1)*$db_readperpage - 1;
  5.     if ($start_limit < 0) {
  6.         $topped_page_num += $start_limit;
  7.         $start_limit = 0;
  8.     }
  9.     $topped_count - $start_limit < $db_readperpage && $topped_page_num = $topped_count - $start_limit;
  10.     $topped_page_num = $topped_page_num < 0 ? 0 : $topped_page_num;
  11.     if ($topped_count > $start_limit) {
  12.         $limit = S::sqlLimit($start_limit,$topped_page_num);
  13.         $query = $db->query("SELECT t.floor, p.* $fieldadd FROM pw_poststopped t
  14.             LEFT JOIN $pw_posts p ON t.pid = p.pid $tablaadd
  15.             WHERE t.tid = ".S::sqlEscape($tid)." AND t.fid = '0' AND t.pid != '0' AND p.ifcheck = '1' ORDER BY t.uptime desc $limit");
  16.         while ($rd = $db->fetch_array($query)) {
  17.             $_uids[$rd['authorid']] = 'UID_'.$rd['authorid'];
  18.             $rd['aid'] && $_pids[$rd['pid']] = $rd['pid'];
  19.             $rd['istop'] = "topped";
  20.             $_page = ceil(($rd['floor'] + 1 + $topped_count)/$db_readperpage);
  21.             $rd['jumpurl'] = "read.php?tid=$tid&page=$_page#".$rd['pid'];
  22.             //$rd['remindinfo'] = '';
  23.             $readdb[] = $rd;
  24.             $pids[] = $rd['pid'];
  25.         }
  26.     }
  27. }
  28. list($replies,$hits) = array(intval($read['replies']),intval($read['hits']));

  1. <a class="s2 b cp read_topped" onclick="copyFloorUrl('$read[pid]')" title="复制此楼地址">置顶</a> (来自<a href="$read[jumpurl]" class="s6 mr5">$read[floor]楼)</a>

帖内置顶表 pw_poststopped
fid    tid    pid    floor uptime overtime
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!