帝国cms关键字搜索,无法通过url地址传关键字实现搜索,没办法那只能自己来改写了,这也方便后续后续伪静态实现SEO优化和方便通过网页链接传参。实现代码如下:
<?php require('../../class/connect.php'); require('../../class/db_sql.php'); require('../../class/functions.php'); require('../../class/t_functions.php'); require('../../data/dbcache/class.php'); require "../".LoadLang("pub/fun.php"); //require(ECMS_PATH . 'e/extend/cacheadmin/MakeCache.php'); $editor=1; eCheckCloseMods('search');//关闭模块 $link=db_connect(); $empire=new mysqlquery(); $page=(int)$_GET['page']; $start=0; $page_line=$public_r['search_pagenum'];//每页显示链接数 $line=$public_r['search_num'];//每页显示记录数 $offset=$page*$line;//总偏移量 $kwd=SearchDoKeyboardVar($_GET['kwd']); $search="&kwd=".$kwd; $add=''; //代码只实现了新闻系统数据表查询,通过更改查询表可以实现其他表模型查询 $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news where locate ('{$kwd}' ,title) > 0"); $query="select * from {$dbtbpre}ecms_news where locate ('{$kwd}' ,title) > 0"; $query.=" order by newstime desc limit $offset,$line"; $sql=$empire->query($query); $listpage=page1($num,$line,$page_line,$start,$page,$search); //取得模板 $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where tempid=1 limit 1"); $have_class=1;//页面支持标签 $tempr[temptext]=DtNewsBq('listsearch1',$tempr[temptext],0);//替换公共模板变量 $listtemp=$tempr[temptext]; if($public_r['searchtempvar']) { $listtemp=ReplaceTempvar($listtemp); } $listtemp=str_replace("[!--show.page--]",$listpage,$listtemp); $listtemp=str_replace("[!--keyboard--]",$kwd,$listtemp); $listtemp=str_replace("[!--ecms.num--]",$num,$listtemp); $url="<a href='".ReturnSiteIndexUrl()."'>".$fun_r['index']."</a> > ".$fun_r['adsearch']; $pagetitle=$fun_r['adsearch']." ".$kwd; $listtemp=ReplaceSvars($listtemp,$url,0,$pagetitle,$pagetitle,$pagetitle,$add,0); $rownum=$tempr[rownum]; if(empty($rownum)) { $rownum=1; } $formatdate=$tempr[showdate]; $subnews=$tempr[subnews]; $subtitle=$tempr[subtitle]; $docode=$tempr[docode]; $modid=$tempr[modid]; $listvar=str_replace('[!--news.url--]',$public_r[newsurl],$tempr[listvar]); //字段 $ret_r=ReturnReplaceListF($tempr[modid]); //取得列表模板 $list_exp="[!--empirenews.listtemp--]"; $list_r=explode($list_exp,$listtemp); $listtext=$list_r[1]; $no=$offset+1; $changerow=1; while($r=$empire->fetch($sql)) { //替换列表变量 $repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$have_class,$r,$ret_r,$docode); $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext); $listtext=str_replace($kwd,"<font color='red'>$kwd</font>",$listtext); $changerow+=1; //超过行数 if($changerow>$rownum) { $changerow=1; $string.=$listtext; $listtext=$list_r[1]; } $no++; } db_close(); $empire=null; //多余数据 if($changerow<=$rownum&&$listtext<>$list_r[1]) { $string.=$listtext; } $string=$list_r[0].$string.$list_r[2]; echo stripSlashes($string); //处理关键字 function SearchDoKeyboardVar($keyboard){ $keyboard=str_replace(' ','',$keyboard); $keyboard=RepPostVar2(trim($keyboard)); return $keyboard; } ?>
修改后的查询效果:
最新纠正其实是可以通过url地址传参的,参考官方文档http://www.phome.net/doc/manual/template/html/searchform.html
具体拼接url地址:/e/search/?searchget=1&keyboard=帝国&show=title
只能说自己也对帝国cms手册了解甚少。
如果本文对你有帮助,欢迎打赏本站