亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > 帝國Empire > 正文

帝國cms插件 二次開發搜索支持多關鍵字

2024-08-28 12:26:21
字體:
來源:轉載
供稿:網友
二次開發修改方法打開/e/search/index.php1、找到://處理關鍵字function SearchDoKeyboardVar($keyboard){        $keyboard=RepPostVar2(trim($keyboard));        $keyboard=str_replace('  ','',$keyboard);        return $keyboard;}修改為://處理關鍵字function SearchDoKeyboardVar($keyboard){        $keyboard=RepPostVar2(trim($keyboard));        //$keyboard=str_replace('  ','',$keyboard);/*xuan 搜索關鍵字優化*/$keyboard=preg_replace('/[s]+/s', ' ', $keyboard);/*xuan 搜索關鍵字優化*/        return $keyboard;}2、找到://(有兩處,修改第二處)$where=$f." LIKE '%".$keyboard."%'";7.0版為:$where=$f." LIKE '%".str_replace(" ","%",$keyboard)."%'";修改為:/*xuan 搜索關鍵字優化*/preg_match_all("/[^s]+/s",$keyboard,$keyarr);foreach ($keyarr[0] as $val){$tj.=$f." like '%".$val."%' or ";}$where=substr($tj,0,-4);/*xuan 搜索關鍵字優化*/這樣即可。懶人直接復制以下代碼替換/e/search/index.php中所有代碼即可/e/search/index.php:<?phprequire("../class/connect.php");require("../class/db_sql.php");require("../data/dbcache/class.php");require("../class/q_functions.php");eCheckCloseMods('search');//關閉模塊$link=db_connect();$empire=new mysqlquery();//處理關鍵字function SearchDoKeyboardVar($keyboard){        $keyboard=RepPostVar2(trim($keyboard));        //$keyboard=str_replace('  ','',$keyboard);/*xuan 搜索關鍵字優化*/$keyboard=preg_replace('/[s]+/s', ' ', $keyboard);/*xuan 搜索關鍵字優化*/        return $keyboard;}//返回SQLfunction SearchDoKeyboard($f,$hh,$keyboard){        $where='';        $keyboard=SearchDoKeyboardVar($keyboard);        if(empty($keyboard))        {                return "";        }        if(!empty($hh))        {                if($hh=='LT')//小于                {                        $where=$f."<'".$keyboard."'";                }                elseif($hh=='GT')//大于                {                        $where=$f.">'".$keyboard."'";                }                elseif($hh=='EQ')//等于                {                        $where=$f."='".$keyboard."'";                }                elseif($hh=='LE')//小于等于                {                        $where=$f."<='".$keyboard."'";                }                elseif($hh=='GE')//大于等于                {                        $where=$f.">='".$keyboard."'";                }                elseif($hh=='NE')//不等于                {                        $where=$f."<>'".$keyboard."'";                }                elseif($hh=='IN')//包含                {                        $kr=explode(' ',$keyboard);                        $kcount=count($kr);                        $kbs='';                        $dh='';                        for($i=0;$i<$kcount;$i++)                        {                                $kr[$i]=(float)$kr[$i];                                if(empty($kr[$i]))                                {                                        continue;                                }                                if($kbs)                                {                                        $dh=',';                                }                                $kbs.=$dh."'".$kr[$i]."'";                        }                        if($kbs)                        {                                $where=$f." IN (".$kbs.")";                        }                        else                        {                                return '';                        }                }                elseif($hh=='BT')//范圍                {                        $keyboard=ltrim($keyboard);                        if(!strstr($keyboard,' '))                        {                                return '';                        }                        $kr=explode(' ',$keyboard);                        $kr[0]=(float)$kr[0];                        $kr[1]=(float)$kr[1];                        if(!trim($kr[0])||!trim($kr[1]))                        {                                return '';                        }                        $where=$f." BETWEEN '".$kr[0]."' and '".$kr[1]."'";                }                else//相似                {                        $where=$f." LIKE '%".$keyboard."%'";                }        }        else        {                //$where=$f." LIKE '%".str_replace(" ","%",$keyboard)."%'";/*xuan 搜索關鍵字優化*/preg_match_all("/[^s]+/s",$keyboard,$keyarr);foreach ($keyarr[0] as $val){$tj.=$f." like '%".$val."%' or ";}$where=substr($tj,0,-4);/*xuan 搜索關鍵字優化*/        }        return $where;}//變量if($_GET['searchget']==1){        $_POST=$_GET;}$ip=egetip();$searchtime=time();$getvar=$_POST['getvar'];if(empty($getvar)){        $getfrom="history.go(-1)";        $dogetvar='';}else{        $getfrom="../../search/";        $dogetvar="&getvar=1";}//返回$getfrom=DoingReturnUrl($getfrom,$_POST['ecmsfrom']);//搜索用戶組if($public_r['searchgroupid']){        $psearchgroupid=$public_r['searchgroupid'];        @include("../data/dbcache/MemberLevel.php");        $searchgroupid=(int)getcvar('mlgroupid');        if($level_r[$searchgroupid][level]<$level_r[$psearchgroupid][level])        {                printerror("NotLevelToSearch",$getfrom,1);        }}//搜索間隔$lastsearchtime=getcvar('lastsearchtime');if($lastsearchtime){        if($searchtime-$lastsearchtime<$public_r[searchtime])        {                printerror("SearchOutTime",$getfrom,1);        }}//搜索字段$searchclass=$_POST['show'];if(empty($searchclass)||@strstr($searchclass," ")){        printerror("SearchNotRecord",$getfrom,1);}//時間范圍$add='';$addtime='';$starttime=RepPostVar($_POST['starttime']);if(empty($starttime)){        $starttime="0000-00-00";}$endtime=RepPostVar($_POST['endtime']);if(empty($endtime)){        $endtime="0000-00-00";}if($endtime!="0000-00-00"){        $addtime=" and (newstime BETWEEN '".to_time($starttime." 00:00:00")."' and '".to_time($endtime." 23:59:59")."')";}//價格$addprice='';$startprice=(int)$_POST['startprice'];$endprice=(int)$_POST['endprice'];if($endprice){        $addprice=" and (price BETWEEN ".$startprice." and ".$endprice.")";}//搜索欄目及表$classid=RepPostVar($_POST['classid']);$s_tbname=RepPostVar($_POST['tbname']);$s_tempid=(int)$_POST['tempid'];$trueclassid=0;if($classid)//按欄目{        if(strstr($classid,","))//多欄目        {                $son_r=sys_ReturnMoreClass($classid,1);                $trueclassid=$son_r[0];                $add.=' and ('.$son_r[1].')';        }        else        {                $trueclassid=intval($classid);                $add.=$class_r[$trueclassid][islast]?" and classid='$trueclassid'":" and ".ReturnClass($class_r[$trueclassid][sonclass]);        }        $tbname=$class_r[$trueclassid][tbname];        $modid=$class_r[$trueclassid][modid];}elseif($s_tbname)//按<a href="http://www.11px.cn/tags/sjb/" target="_blank">數據表</a>{        $tbnamenum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$s_tbname' limit 1");        if(!$tbnamenum)        {                printerror("SearchNotRecord",$getfrom,1);        }        $tbname=$s_tbname;        //模型id        $thestemp_r=$empire->fetch1("select modid from ".GetTemptb("enewssearchtemp")." where tempid='$s_tempid'");        if(empty($thestemp_r['modid']))        {                printerror("SearchNotRecord",$getfrom,1);        }        $modid=$thestemp_r['modid'];}else{        $tbname=$public_r['tbname'];        $modid=0;}//表不存在if(empty($tbname)||InfoIsInTable($tbname)){        printerror("SearchNotRecord",$getfrom,1);}//標題分類$ttid=RepPostVar($_POST['ttid']);$truettid=0;if($ttid){        if(strstr($ttid,","))//多標題分類        {                $son_r=sys_ReturnMoreTT($ttid);                $truettid=$son_r[0];                $add.=' and ('.$son_r[1].')';        }        else        {                $truettid=intval($ttid);                $add.=" and ttid='$truettid'";        }}//會員$member=$_POST['member'];if($member==1){        $add.=' and ismember=1';}elseif($member==2){        $add.=' and ismember=0';}//模型$tempr=array();if(empty($class_r[$trueclassid][searchtempid])){        if(empty($modid))        {                $tempr=$empire->fetch1("select modid from ".GetTemptb("enewssearchtemp")." where isdefault=1 limit 1");        }        else        {                $tempr[modid]=$modid;        }}else{        $tempr[modid]=$modid;}//關鍵字$keyboard=$_POST['keyboard'];$keyboardone=0;if(is_array($keyboard)){}elseif(strstr($keyboard,',')){        $keyboard=explode(',',$keyboard);}else{        $keyboard=trim($keyboard);        $len=strlen($keyboard);        if($len<$public_r[min_keyboard]||$len>$public_r[max_keyboard])        {                printerror("MinKeyboard",$getfrom,1);        }        $keyboardone=1;}//符號$hh=$_POST['hh'];$hhone=0;if(is_array($hh)){}elseif(strstr($hh,',')){        $hh=explode(',',$hh);}else{        $hhone=1;}//字段if(!is_array($searchclass)){        $searchclass=explode(',',$searchclass);}$andor=$_POST['andor'];$andor=$andor=='and'?'and':'or';$mr=$empire->fetch1("select searchvar,tbname from {$dbtbpre}enewsmod where mid='$tempr[modid]'");if(!strstr($mr[searchvar],",price,"))//是否包含價格{        $addprice="";        $startprice=0;        $endprice=0;}//搜索特殊字段$mr[searchvar].='id,keyboard,userid,username,';$where='';$newsearchclass='';$count=count($searchclass);for($i=0;$i<$count;$i++){        if(empty($searchclass[$i]))        {                continue;        }        $searchclass[$i]=str_replace(',','',$searchclass[$i]);        if(!strstr($mr[searchvar],",".$searchclass[$i].","))        {                continue;        }        $searchclass[$i]=RepPostVar($searchclass[$i]);        $dh=empty($newsearchclass)?'':',';        $newsearchclass.=$dh.$searchclass[$i];        $dohh=$hhone==1?$hh:$hh[$i];        $dokeyboard=$keyboardone==1?$keyboard:$keyboard[$i];        $onewhere=SearchDoKeyboard($searchclass[$i],$dohh,$dokeyboard);        if($onewhere)        {                $or=empty($where)?'':' '.$andor.' ';                $where.=$or.'('.$onewhere.')';        }}//參數錯if(empty($newsearchclass)){        printerror("SearchNotRecord",$getfrom,1);}if($where){        $add.=' and ('.$where.')';}$allwhere=$add.$addtime.$addprice;$keyboard=$keyboardone==1?SearchDoKeyboardVar($keyboard):'';$andsql=addslashes($allwhere);if(strlen($newsearchclass)>250||strlen($classid)>200||strlen($andsql)>3000||strlen($keyboard)>100||strlen($ttid)>200){        printerror("SearchNotRecord",$getfrom,1);}//驗證碼$checkpass=md5($allwhere.$tbname);$query="select count(*) as total from {$dbtbpre}ecms_".$tbname.($allwhere?' where '.substr($allwhere,5):'');$search_r=$empire->fetch1("select searchid from {$dbtbpre}enewssearch where checkpass='$checkpass' limit 1");$searchid=$search_r[searchid];//排序$orderby=RepPostVar($_POST['orderby']);$myorder=(int)$_POST['myorder'];if($orderby){        $orderr=ReturnDoOrderF($tempr[modid],$orderby,$myorder);        $orderby=$orderr['returnf'];}else{        $orderby='newstime';}//是否有歷史記錄if($searchid){    $search_num=$empire->gettotal($query);        $sql=$empire->query("update {$dbtbpre}enewssearch set searchtime='$searchtime',result_num='$search_num',onclick=onclick+1,orderby='$orderby',myorder='$myorder',tempid='$s_tempid' where searchid='$searchid'");        if(empty($search_num))        {                $searchid=0;        }}else{        $search_num=$empire->gettotal($query);        if(empty($search_num))        {                $searchid=0;        }        else        {                $iskey=$keyboardone==1?0:1;                $sql=$empire->query("insert into {$dbtbpre}enewssearch(searchtime,keyboard,searchclass,result_num,searchip,classid,onclick,orderby,myorder,checkpass,tbname,tempid,iskey,andsql,trueclassid) values('$searchtime','$keyboard','$newsearchclass','$search_num','$ip','$classid',1,'$orderby','$myorder','$checkpass','$tbname','$s_tempid','$iskey','$andsql','$trueclassid')");                $searchid=$empire->lastid();        }}//設置最后搜索時間$set1=esetcookie("lastsearchtime",$searchtime,$searchtime+<a href="http://www.11px.cn/tags/360/" target="_blank">360</a>0*24);if(!$searchid){        printerror("SearchNotRecord",$getfrom,1);}else{        Header("Location:result/?searchid=$searchid".$dogetvar);}db_close();$empire=null;?>本方法兼容帝國CMS7.0/7.2,其他版本暫未測試。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看视频亚洲| 另类少妇人与禽zozz0性伦| 亚洲а∨天堂久久精品9966| 中文字幕国产精品久久| 欧美精品video| 亚洲天堂av高清| 精品日韩视频在线观看| 亚洲激情中文字幕| 欧美极品欧美精品欧美视频| 欧美老女人性视频| 国产福利精品在线| 久久国产精品99国产精| 久久影视三级福利片| 亚洲毛片在线观看| 久久综合伊人77777蜜臀| 日韩av在线看| 亚洲色图35p| 欧美激情一区二区久久久| 国产一区二区在线免费| 国产精品国产亚洲伊人久久| 欧美成人剧情片在线观看| 国产亚洲激情视频在线| 国产精品激情av电影在线观看| 国产一区二区激情| 欧美老少配视频| 久久视频在线免费观看| 97不卡在线视频| 神马国产精品影院av| 国产精品视频一区二区三区四| 亚洲综合成人婷婷小说| 国产精品一区二区在线| 97精品在线视频| 欧美在线免费视频| 中文字幕视频一区二区在线有码| 成人日韩av在线| 日本不卡视频在线播放| 成人久久18免费网站图片| 久久视频免费观看| 久久久国产一区| 日韩有码在线视频| 国产精品极品美女粉嫩高清在线| 亚洲人成电影网站色www| 国产亚洲欧洲黄色| 久久久亚洲天堂| 中文字幕欧美日韩精品| 欧美一级bbbbb性bbbb喷潮片| 久久精品国产综合| 国产精品高潮呻吟视频| 欧美猛交ⅹxxx乱大交视频| 国内精品久久久久久| 欧美精品在线视频观看| 中文字幕综合在线| 色综合久久中文字幕综合网小说| 91精品国产综合久久久久久蜜臀| 日韩av理论片| 中文字幕日韩精品有码视频| 久久久中文字幕| 国产成人精品久久二区二区| 日韩av免费看网站| 亚洲人成电影网站色| 国产精品日韩av| 国产亚洲精品一区二555| 亚洲国内精品视频| 高清欧美性猛交xxxx黑人猛交| 亚洲精品自产拍| 97在线观看视频国产| 2018中文字幕一区二区三区| 国产精品va在线播放我和闺蜜| 性欧美视频videos6一9| 国产精品久久久久久av下载红粉| 欧美老女人性生活| 精品久久香蕉国产线看观看亚洲| 亚洲片国产一区一级在线观看| 亚洲第一免费网站| 日韩在线观看成人| 亚洲欧洲午夜一线一品| 91精品国产高清| 亚洲男人的天堂在线播放| 久久精品99国产精品酒店日本| 国产成人免费av电影| 成人中文字幕在线观看| 日韩精品在线观看一区| 国产亚洲欧美aaaa| 日本韩国欧美精品大片卡二| 欧洲s码亚洲m码精品一区| 日本免费一区二区三区视频观看| 91精品国产91久久久久久| 一本一本久久a久久精品牛牛影视| 中日韩午夜理伦电影免费| 操人视频在线观看欧美| 96精品久久久久中文字幕| 九九九久久国产免费| 日韩精品中文在线观看| 日本91av在线播放| 91av免费观看91av精品在线| 亚洲欧美999| 日韩在线欧美在线| 日韩一中文字幕| 97精品在线视频| 国产亚洲激情视频在线| 国产精品久久久久9999| 日韩av电影中文字幕| 26uuu国产精品视频| 亚洲成人激情视频| 亚洲a∨日韩av高清在线观看| 国产成人精品久久二区二区91| 亚洲人成电影网站色www| 亚洲人成伊人成综合网久久久| 久久成人这里只有精品| 77777亚洲午夜久久多人| 97视频在线观看视频免费视频| 亚洲第一二三四五区| 国产精品一区久久久| 亚洲精品久久久久久久久| 欧美高清videos高潮hd| 日本久久久久久久久久久| 在线不卡国产精品| 欧美日韩福利电影| 亚洲国产精品国自产拍av秋霞| 欧美亚洲在线观看| 亚洲最新av在线网站| 136fldh精品导航福利| 91精品在线观看视频| 欧美情侣性视频| 久久久久久有精品国产| 日韩国产高清视频在线| 久久综合亚洲社区| 久久色在线播放| 久久久免费观看视频| 国产视频久久久| 国产成人精品视频| 国产成人高清激情视频在线观看| 国产精品久久久久久av| 欧美超级乱淫片喷水| 亚洲国产美女久久久久| 国产精品爽黄69| 一区二区日韩精品| 不卡伊人av在线播放| 日韩免费在线免费观看| 欧美成人免费va影院高清| 国产精品羞羞答答| 亚洲人成伊人成综合网久久久| 亚洲аv电影天堂网| 亚洲欧美日韩国产中文专区| 97av在线视频| 欧美激情第6页| 亚州欧美日韩中文视频| 欧洲精品久久久| 日韩高清电影免费观看完整| 国产99久久久欧美黑人| 成人av在线天堂| 日韩av大片在线| 日韩av影院在线观看| 欧美日韩亚洲高清| 欧美自拍视频在线| 国产精品av在线播放| 国产精品入口福利| www.欧美视频| 亚洲一品av免费观看| 亚洲福利视频专区| 亚洲精品成人久久| 国产专区欧美专区| 中文字幕日韩在线观看| 日韩福利伦理影院免费|