PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > phpcms教程 > 正文

    phpcms v9最新全站搜索教程分享

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:phpcms v9的搜索是根据模型来搜索的,今天分享一个不用模型搜索,直接全站搜索的代码,废话不多说了。看教程第一步:需要在phpcms v9后台...
    phpcms v9的搜索是根据模型来搜索的,今天分享一个不用模型搜索,直接全站搜索的代码,废话不多说了。看教程

    第一步:需要在phpcms v9后台 模块=》全站搜索=》模块配置里开启全站搜索,如图:


    phpcms v9最新全站搜索教程分享

    第二步:替换代码(此步骤改变了phpcms  v9 全站搜索的其它配置)

    找到phpcms\modules\search\index.php 里的function init()函数

    替换成
    1. /**  
    2.      * 关键词搜索  
    3.      */ 
    4.     public function init() {  
    5.         //获取siteid  
    6.         $siteid = isset($_REQUEST['siteid']) && trim($_REQUEST['siteid']) ? intval($_REQUEST['siteid']) : 1;  
    7.         $SEO = seo($siteid);  
    8.  
    9.         //搜索配置  
    10.         $search_setting = getcache('search');  
    11.         $setting = $search_setting[$siteid];  
    12.  
    13.         $search_model = getcache('search_model_'.$siteid);  
    14.         $type_module = getcache('type_module_'.$siteid);  
    15.  
    16.         if(isset($_GET['q'])) {  
    17.             if(trim($_GET['q'])=='') {  
    18.                 header('Location: '.APP_PATH.'index.php?m=search');exit;  
    19.             }  
    20.             $typeid = emptyempty($_GET['typeid']) ? 0 : intval($_GET['typeid']);  
    21.             $time = emptyempty($_GET['time']) || !in_array($_GET['time'],array('all','day','month','year','week')) ? 'all' : trim($_GET['time']);  
    22.             $page = isset($_GET['page']) ? intval($_GET['page']) : 1;  
    23.             $pagesize = 10;  
    24.             $q = safe_replace(trim($_GET['q']));  
    25.             $q = new_html_special_chars(strip_tags($q));  
    26.             $q = str_replace('%'''$q);  //过滤'%',用户全文搜索  
    27.             $search_q = $q//搜索原内容  
    28.             //全站搜索  
    29.             $sql = "select  ";  
    30.             $sql_time = $sql_tid = '';  
    31.             if($typeid$sql_tid = ' AND typeid = '.$typeid;  
    32.             //按时间搜索  
    33.             if($time == 'day') {  
    34.                 $search_time = SYS_TIME - 86400;  
    35.                 $sql_time = ' AND adddate > '.$search_time;  
    36.             } elseif($time == 'week') {  
    37.                 $search_time = SYS_TIME - 604800;  
    38.                 $sql_time = ' AND adddate > '.$search_time;  
    39.             } elseif($time == 'month') {  
    40.                 $search_time = SYS_TIME - 2592000;  
    41.                 $sql_time = ' AND adddate > '.$search_time;  
    42.             } elseif($time == 'year') {  
    43.                 $search_time = SYS_TIME - 31536000;  
    44.                 $sql_time = ' AND adddate > '.$search_time;  
    45.             } else {  
    46.                 $search_time = 0;  
    47.                 $sql_time = '';  
    48.             }  
    49.             if($page==1 && !$setting['sphinxenable']) {  
    50.                 //精确搜索  
    51.                 $commend = $this->db->get_one("`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'");  
    52.             } else {  
    53.                 $commend = '';  
    54.             }  
    55.             //如果开启sphinx  
    56.             if($setting['sphinxenable']) {  
    57.                 $sphinx = pc_base::load_app_class('search_interface''', 0);  
    58.                 $sphinx = new search_interface();  
    59.  
    60.                 $offset = $pagesize*($page-1);  
    61.                 $res = $sphinx->search($qarray($siteid), array($typeid), array($search_time, SYS_TIME), $offset$pagesize'@weight desc');  
    62.                 $totalnums = $res['total'];  
    63.                 //如果结果不为空  B5教程网 http://www.bcty365.com
    64.                 if(!emptyempty($res['matches'])) {  
    65.                     $result = $res['matches'];  
    66.                 }  
    67.             } else {  
    68.  
    69.                 $sql = "`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'";  
    70.  
    71.  
    72.                 $result = $this->db->listinfo($sql'searchid DESC'$page, 10);  
    73.                 $das = $result;  
    74.             } 


    ok,搞定,这个功能做项目中遇到的,客户非要全站搜索,没办法。

    如果还有不会的请联系QQ634381967

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-101-1891-1.html
    相关热词搜索: phpcmsv9全站搜索