`
JYY282
  • 浏览: 23313 次
  • 性别: Icon_minigender_2
  • 来自: 无锡
社区版块
存档分类
最新评论

shopex 搜索挂件加入一个内部搜索条件

 
阅读更多

在二次目录model->cmd.products.php文件中。找到wFilter方法,在sql语句的地方添加搜索条件的字段名,

    function wFilter($words){
        $replace = array(",","+");
        $enStr=preg_replace("/[^chr(128)-chr(256)]+/is"," ",$words);
        $otherStr=preg_replace("/[chr(128)-chr(256)]+/is"," ",$words);
        $words=$enStr.' '.$otherStr;
        $return=str_replace($replace,' ',$words);
        $word=preg_split('/\s+/s',trim($return));
        $GLOBALS['search_array']=$word;

        $oGoods = &$this->system->loadModel('trading/goods');
        foreach($word as $k=>$v){
            if($v){
                $goodsId = array();
                foreach($oGoods->getGoodsIdByKeyword(array($v)) as $idv)
                    $goodsId[] = $idv['goods_id'];
                foreach( $this->db->select('SELECT goods_id FROM sdb_products WHERE bn = \''.trim($v).'\' ') as $pidv)
                    $goodsId[] = $pidv['goods_id'];
                $sql[]='(name LIKE \'%'.$word[$k].'%\' or suppliers_first_type LIKE \'%'.$word[$k].'%\' or bn like \''.$word[$k].'%\' '.( $goodsId?' or goods_id IN ('.implode(',',$goodsId).') ':'' ).')';
            }
        }
        return implode('and',$sql);
    }

 例子代码里有名字,和编号的搜索条件,商品型号suppliers_first_type是后来添加的。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics