bp3的bug修复搜索问题,隐藏文件夹失效,开启跨盘搜点开为空

由于客户使用的bp3系统,数据量达到920万之后,查询巨慢。需要大约15秒

阅读源码:/api/baidu.class.php  约452行

发现问题:

  1. select 语句中字段列表的写法有误。例如,local_mtime 'local_ctime' 应该是 local_mtime as 'local_ctime'
  2. 在 CONCAT 函数和后面的字段之间也缺少了 as 关键字。

     // $list = DB::table("bp3_cache_file","select `id`,`category`,`isdir`,`fs_id`,`local_mtime` 'local_ctime',`local_mtime`,CONCAT(`parent_path`,`server_filename`)'path',`server_mtime` 'server_ctime',`server_mtime`,`server_filename`,`size`,`uk` from @table where 1=1 $where and match(server_filename) AGAINST(:key in boolean mode) $orderby limit $pageSize",$dbParam)->selectArrList();
                    $sql = "SELECT `id`,`category`,`isdir`,`fs_id`,`local_mtime` as `local_ctime`,`local_mtime`,CONCAT(`parent_path`,`server_filename`) as `path`,`server_mtime` as `server_ctime`,`server_mtime`,`server_filename`,`size`,`uk` FROM `bp3_cache_file` WHERE 1=1 $where AND MATCH(server_filename) AGAINST(? IN BOOLEAN MODE) $orderby LIMIT ?";  
                    $bindings = array_merge([$searchKey, $pageSize], $dbParam);  
                    $list = DB::query($sql, $bindings)->fetchAll(PDO::FETCH_ASSOC);
                    

将原查询$list部分注释掉,修改为新的查询。查询速度优化到1秒以内.

二、隐藏文件夹失效;修改index.php

foreach ($hideDir as $val){
                if(substr($row['path'],0,strlen($val)) == $val){
                    $flag = true;
                    break;
                }
            }

改为:

foreach ($hideDir as $val){
                $position = strrpos($row['path'], $val);  
                if($position == strlen($row['path']) - strlen($val)){
                    $flag = true;
                    break;
                }

三、跨盘搜索点击进去空白问题;修改/themes/default/index.html

 <td class="dir" colspan="4"><a class="lineText"  href="?dir={#$v['encode_path']#}&tag={#$tag#}&u={#$v['uk']#}&recursion={#$recursion#}" style="display:block;">
                    {#$v['server_filename']#}
                    </a>
                </td>

修改&u={#$u#}为&u={#$v['uk']#}

四、文件名称按照数字降序排列;修改/index.php

 usort($data['list'], function($a, $b) {   
    return strcmp($b['server_filename'], $a['server_filename']);  
    });

 

 

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
TP源码网 » bp3的bug修复搜索问题,隐藏文件夹失效,开启跨盘搜点开为空

提供最优质的资源集合

立即查看 了解详情