回复详情

mzlh001

2016-8-15 0

@admin:回复 #3 确实因为输出搜索结果还需要得出页数会第一句SQL所以就省略了
 

我想到一个办法不执行sql

        {hook a_search_index_2}
        
        
        $Thread = M("Thread");
        $data=array();
        $data = $Thread->search_list($pageid,$this->conf['searchlist'],$key);
        $Thread->format($data);
        {hook a_search_index_3}
//这部分
        $count = $this->_count['thread'];
        $count = (!$count)?1:$count;
        $page_count = ($count % $this->conf['searchlist'] != 0)?(intval($count/$this->conf['searchlist'])+1) : intval($count/$this->conf['searchlist']);
//修改
        $t=$key;
        foreach ($data as &$v) {
            $v['title'] = str_replace($key,'<font color="red">'.$key.'</font>',$v['title']);
            
        }

        {hook a_search_index_v}
        $this->v("pageid",$pageid);
        $this->v("page_count",$page_count);
        $this->v("data",$data);
        $this->v("top_list",array());
        $this->display('search_index');

改成

        {hook a_search_index_2}
        
        
        $Thread = M("Thread");
        $data=array();
        $data = $Thread->search_list($pageid,$this->conf['searchlist'],$key);
        $Thread->format($data);
        {hook a_search_index_3}
//这部分
        $count = count($data);
        if($count<$this->conf['searchlist'])
          $page_count = $pageid;//因为view文件里是要判断他们相等才不让点
        else
          $page_count = $pageid+1;//永远不相等
//修改
        $t=$key;
        foreach ($data as &$v) {
            $v['title'] = str_replace($key,'<font color="red">'.$key.'</font>',$v['title']);
            
        }

        {hook a_search_index_v}
        $this->v("pageid",$pageid);
        $this->v("page_count",$page_count);
        $this->v("data",$data);
        $this->v("top_list",array());
        $this->display('search_index');


唯一的缺点就是当

$count的值和$this->conf['searchlist']一样时,也是会让点下一页的


加载更多

登陆后才可发表内容