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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz! X2 搜索用户功能的修改(可搜出所有用户并按积分排序)

[复制链接]
otherbank 发表于 2011-9-8 16:42:38 | 显示全部楼层 |阅读模式
本帖最后由 otherbank 于 2011-12-5 14:13 编辑

搜索用户的修改,可以查询所有用户,并且按照积分从高到低排序
1,查询程序文件 source/include/spacecp/spacecp_search.php96行代码:
  1. $query = DB::query("SELECT s.* $fsql FROM ".implode(',', $fromarr)." WHERE ".implode(' AND ', $wherearr)." LIMIT 0,100");
  2. while ($value = DB::fetch($query)) {
  3.                         $value['isfriend'] = ($value['uid']==$space['uid'] || $space['friends'][$value['uid']])?1:0;
  4.                         $list[$value['uid']] = $value;
  5.                 }
复制代码
修改为:
  1. $ppp = 20;
  2. $page = max(1, intval($_G['gp_page']));
  3.                 $start = ($page -1)*$ppp;
  4.                 $pluginurl = "home.php?".$_SERVER["QUERY_STRING"];
  5.                 $count =  DB::result_first( "SELECT count(*) FROM ".implode(',', $fromarr)." WHERE ".implode(' AND ', $wherearr));
  6.                 $query = DB::query("SELECT s.* $fsql FROM ".implode(',', $fromarr)." WHERE ".implode(' AND ', $wherearr)." ORDER BY s.credits DESC LIMIT $start, $ppp");
  7.                 while ($value = DB::fetch($query)) {
  8.                         $value['isfriend'] = ($value['uid']==$space['uid'] || $space['friends'][$value['uid']])?1:0;
  9.                         $list[$value['uid']] = $value;
  10.                 }
  11.                 $multi = multi($count, $ppp, $page, $pluginurl);
复制代码
2,语言显示和替换文件source/language/home/lang_template.php的1344行代码
  1. 'search_member_list_message' => '以下是查找到的用户列表(最多显示 100 个),您还可以<a href="home.php?mod=spacecp&ac=search">换个搜索条件试试</a>',
复制代码
修改为:
  1. 'search_member_list_message' => '以下是查找到的所有用户列表(按积分从高到低排序),您还可以<a href="home.php?mod=spacecp&ac=search">换个搜索条件试试</a>',
复制代码
更新下缓存就OK了
64243354 发表于 2011-9-8 17:47:11 | 显示全部楼层
支持一下 学習了 想研究过 也放棄了 哈哈
回复

使用道具 举报

1661324664 发表于 2011-9-8 17:53:12 | 显示全部楼层
这个查询出来的用户多了,,怎么做成分页的啊?
回复

使用道具 举报

9258站长 发表于 2011-12-5 12:42:28 | 显示全部楼层
如何做到每页显示20个会员并分页???
回复

使用道具 举报

 楼主| otherbank 发表于 2011-12-5 12:44:53 | 显示全部楼层
9258站长 发表于 2011-12-5 12:42
如何做到每页显示20个会员并分页???

这个还得需要修改代码
回复

使用道具 举报

9258站长 发表于 2011-12-5 12:50:55 | 显示全部楼层
otherbank 发表于 2011-12-5 12:44
这个还得需要修改代码

麻烦你给出修复方法可以吗?
我自己研究了一个晚上都没有成功,对你来说只是几分钟的事情,希望您可以帮忙!先谢谢了!
回复

使用道具 举报

 楼主| otherbank 发表于 2011-12-5 14:21:08 | 显示全部楼层
本帖最后由 otherbank 于 2011-12-5 14:48 编辑
9258站长 发表于 2011-12-5 12:50
麻烦你给出修复方法可以吗?
我自己研究了一个晚上都没有成功,对你来说只是几分钟的事情,希望您可以帮 ...

修改 了  你试试看,我测试是好用的
回复

使用道具 举报

abcnic 发表于 2011-12-6 14:53:35 | 显示全部楼层
列的很详细呢
回复

使用道具 举报

 楼主| otherbank 发表于 2011-12-6 14:57:38 | 显示全部楼层
abcnic 发表于 2011-12-6 14:53
列的很详细呢

你试了吗,好用吗
回复

使用道具 举报

9258站长 发表于 2011-12-7 18:23:26 | 显示全部楼层
otherbank 发表于 2011-12-6 14:57
你试了吗,好用吗

试了代码,很好用,非常感谢!
还有一个问题,怎么在搜索用户结果显示会员的居住地、手机、QQ等信息?
我在/template/default/home/space_list.htm 页面添加了手机、QQ变量名($value[mobile]、$value[qq])不显示,求帮助!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 15:04 , Processed in 0.100420 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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