zhangjingyu
本地测试数据共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',
'sort_money' => '$GLOBALS',
'sort_credit' => '$GLOBALS',
'sort_digest' => '精华帖',
'sort_onlinetime' => '在线时间',
'sort_postnum' => '发帖',
'sort_todaypost' => '今日发帖',
'sort_monthpost' => '本月发帖',
'sort_monoltime' => '本月在线',
'sort_postMostUser' => '活跃图客',
'sort_digests' => '精华帖',
'sort_currency' => '$GLOBALS',
'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楼。