• 4175阅读
  • 58回复

测试排行榜会员排行页面排序调整及主题标签长度修改 [复制链接] [手机版]

上一主题 下一主题
在线zhangjingyu

只看楼主 倒序阅读 使用道具 绿 楼主  发表于: 2020-02-01 10:09:53 星期六
统计信息里会员排行现在的排序为:

现在是10个排行榜(后面还有一个“贡献值排行榜”没有截图拼接),感觉这个顺序不是太工整,所以想调整下。

另外,主题标签不能设置为2个字节长,比如这个主题:【业余无线电】CW 初学者手册
我想把cw添加为主题标签,但不允许,提示“标签的长度请控制在 3-15 个字节之间”。所以,这里我也想调整下。
=================分隔线====================
说明:会员排行榜的排列顺序没能成功调整,原因见31楼(帖内置顶)。
主题标签长度修改方法见本主题20楼,点这里查看
后台标签管理里的分页问题(后台查看标签相关主题页码链接不对)
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 置顶 (来自53楼) 发表于: 2020-09-19 22:19:50 星期六  点亮(0)
排行榜会员排行页面任意调整排序修改方法
—— 管理操作 •  zhangjingyu 执行 帖内置顶 操作 (2020-09-19 22:40) ——
lib/element.class.php文件里getAllUserSort()函数的查询方式,“$query = $this->db->query("SELECT * FROM pw_elements WHERE type='usersort' ORDER BY mark DESC, value DESC");”改为:
$query = $this->db->query("SELECT * FROM pw_elements WHERE TYPE =  'usersort' and mark in('todaypost','monthpost','postnum','digests','onlinetime','monoltime','money','rvrc','currency','credit','f_num','postMostUser') order by instr('todaypost,monthpost,postnum,digests,onlinetime,monoltime,money,rvrc,currency,credit,f_num,postMostUser',mark),value desc");
下面是原代码,也就是默认的排序方式(截图的后面还有一个贡献值排行榜,由于论坛没有设定积分规则,所以都是0。看代码还应该有朋友数和活跃图客排行榜,不知道为什么没有显示):


这是修改后的排序(同样的贡献值排行榜没有截取):
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 置顶 (来自31楼) 发表于: 2020-02-02 17:22:20 星期日  点亮(0)
—— 管理操作 •  zhangjingyu 执行 帖内置顶 操作 (2020-02-02 18:39) ——

本地测试数据共163条,按mark(排行榜类型)和value(值)降序排列(文件里sql查询语句)。mark值依次是:todaypost(今日发帖)、rvrc(威望)、postnum(发帖)、onlinetime(在线时间)、monthpost(本月发帖)、monoltime(本月在线)、money(铜币)、f_num(朋友数)、digests(精华帖)、currency(祺石)、credit(贡献值)(和下面的会员排行榜拼图对应。其实还可能有个postMostUser,“活跃图客”。共12个)。
$array = array('todaypost','monthpost','monoltime','postnum','digests','onlinetime','rvrc','money','currency','credit','f_num','postMostUser');


lang_other.php
    'sort_rvrc'        => '$GLOBALS[db_rvrcname]',
    'sort_money'        => '$GLOBALS[db_moneyname]',
    'sort_credit'    => '$GLOBALS[db_creditname]',
    'sort_digest'    => '精华帖',
    'sort_onlinetime'    => '在线时间',
    'sort_postnum'    => '发帖',
    'sort_todaypost'    => '今日发帖',
    'sort_monthpost'    => '本月发帖',
    'sort_monoltime'    => '本月在线',
    'sort_postMostUser' => '活跃图客',
    'sort_digests'    => '精华帖',
    'sort_currency'    => '$GLOBALS[db_currencyname]',
    'sort_f_num'    => '朋友数',
里面四个没有具体名称的,调用后台全局定义的积分名称。为什么这个文件里会有“sort_”前缀,大概是因为在sort.htm文件里有这么一段(对应调用):
$type=!is_numeric($key) ? getLangInfo('other','sort_'.$key) : $_CREDITDB[$key][0];

所以,综上,想调整会员排行榜的排列顺序不是件容易的事。关键点是29楼提到的lib/element.class.php文件里getAllUserSort()函数的查询方式,“$query = $this->db->query("SELECT * FROM pw_elements WHERE type='usersort' ORDER BY mark DESC, value DESC");”,按mark和value降序排列查询到的结果,而后调用。恰恰这个mark排序不能任意调整顺序。所以,也就只能到此了,虽然不能调整顺序,但历时近两天的时间,我想,应该是研究明白了吧。

经测试,会员排行的排列顺序确实是受lib/element.class.php文件的查询排序控制。(35楼)
=================分隔线====================
更新:已经可以任意指定排序,详见53楼。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 沙发  发表于: 2020-02-01 10:28:17 星期六  点亮(0)
首先是会员排行页的修改。搜索“今日发帖排行榜”,奇怪的是搜索了好几遍都没有搜索到相关文件,换成“威望排行榜”也是没有结果。好奇怪!不管了,反正这个应该跟sort.php和sort.htm这两个文件有关,于是直接查看代码。

sort.htm文件里有一段:
  1. <div class="t3" style="padding:1px;border:1px solid $tablecolor;width:98%;margin:5px auto">
  2. <table width="100%" cellspacing="0" cellpadding="0" align="center">
  3. <tr class="tr2 tac"><td colspan="3">   {$type}排行榜</td></tr>
原来是{$type}排行榜,“排行榜”是共用的,{$type}依次分别调用相关排序项,难怪没有搜索结果。看来不用修改这个文件了,原本以为需要调整各排序项相关整块代码在文件中的位置。

再查看sort.php文件,里面有一段:
  1. } elseif ($action == 'member') {
  2.     $_SORTDB = $member = array();
  3.     $array = array('todaypost','rvrc','postnum','onlinetime','monthpost','monoltime','f_num','money', 'digests', 'currency', 'credit', 'postMostUser');
  4.     foreach ($_CREDITDB as $key => $value) {
  5.         array_push($array,$key);
  6.     }
原来都在这里,$array = array('todaypost','rvrc','postnum','onlinetime','monthpost','monoltime','f_num','money', 'digests', 'currency', 'credit', 'postMostUser');。如此,修改起来就简单多了,简单调整下排序应该就可以了。
=================分隔线====================
说明:这样修改后还是不行,原因见31楼。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 板凳  发表于: 2020-02-01 10:35:31 星期六  点亮(0)
又好长时间没用ftp软件了,把文件下载回来,修改再重新上传应该就可以了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 地板  发表于: 2020-02-01 11:25:55 星期六  点亮(0)
sort.php文件经过再三检查(只是简单调整下顺序),确认文件修改无误,但清空浏览器缓存、后台清空缓存、清除cookies等操作后,会员排行页排序还是没有变化,也没有报错(文件修改无误,不会),那只有一种可能:和缓存文件有关。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 4楼 发表于: 2020-02-01 11:32:09 星期六  点亮(0)
还是sort.php文件,1楼代码(删除了第2行和第4行的空行)后面不多行,
$cachetime = pwFilemtime(D_P."data/bbscache/member_sort.php");
if (!$per || !file_exists(D_P."data/bbscache/member_sort.php") || ($timestamp-$cachetime>$per*3600)) {
可能就是member_sort.php这个文件,删除试试。没事儿,只是一个缓存文件,基本没什么影响的。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 5楼 发表于: 2020-02-01 11:37:20 星期六  点亮(0)
竟然没有member_sort.php这个文件!我就不信了!继续!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 6楼 发表于: 2020-02-01 11:51:51 星期六  点亮(0)
lang_other.php
    'sort_onlinetime'    => '在线时间',
    'sort_postnum'        => '发帖',
    'sort_todaypost'    => '今日发帖',
    'sort_monthpost'    => '本月发帖',
    'sort_monoltime'    => '本月在线',
继续!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 7楼 发表于: 2020-02-01 11:56:16 星期六  点亮(0)
搜索“sort_monoltime”没有其它文件,没法继续了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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