muban大师 发表于 2020-2-17 09:47:02

织梦DedeCMS搜索指定多个栏目的文档

针对织梦高级开发教程会用到,指定栏目搜索及多个栏目合并搜索的要求。织梦DedeCMS默认的搜索可以搜索全部栏目或者指定的搜索某一个栏目,不能搜索指定的多个栏目,需要修改后台文件才能实现。
       
        1、在搜索框表单里加个typeid提交过去
        例如
       
       
        [i,
       
       
       
        2、打开/plus/search.php找到
       
        $typeid = (isset($typeid) && is_numeric($typeid)) ? $typeid : 0;
       
        删除这一行后,继续找到
       
        $typeid = intval($typeid);
       
        也删除这一行
       
        3、打开 /include/arc.searchview.class.php 找到
        $ksqls[, = " typeid IN (".GetSonIds($this->TypeID).") ";
       
        改成
       
        //指定了多个栏目时
       
        if( preg_match('#,#', $this->TypeID) )
       
        {
       
          $typeids = explode(',', $this->TypeID);
       
          foreach($typeids as $ttid) {
       
                $typeidss[, = GetSonIds($ttid);
       
          }
       
          $typeidStr = join(',', $typeidss);
       
          $typeidss = explode(',', $typeidStr);
       
          $typeidssok = array_unique($typeidss);
       
          $typeid = join(',', $typeidssok);
       
          $ksqls[, = " arc.typeid IN ($typeid) ";
       
        }
       
        else
       
        {
       
          $ksqls[, = " arc.typeid IN (".GetSonIds($this->TypeID).") ";
       
        }
       
        完成,这样就可以搜索指定的多个栏目的文章了。
页: [1]
查看完整版本: 织梦DedeCMS搜索指定多个栏目的文档