微意技术博客

微意技术博客,记录一个web前端成长和学习历程的个人博客网站!

完美解决帝国搜索模板调用标签问题!

帝国cms近几年来非常盛行,可是cms系统多多少少会有一些缺陷,今天给大家带来的是帝国的搜索模板支持标签调用的问题。

帝国本身的搜索框是不支持动态标签调用的,很多Cms都有这个问题,其实要解决也很简单。

打开根目录/e/search/result/index.php 将下来代码全部粘贴覆盖。

  1. <?php  
  2. require('../../class/connect.php'); 
  3. require('../../class/db_sql.php'); 
  4. require('../../class/functions.php'); 
  5. require('../../class/t_functions.php'); 
  6. require('../../data/dbcache/class.php'); 
  7. require "../".LoadLang("pub/fun.php"); 
  8. $editor=1; 
  9. eCheckCloseMods('search');//关闭模块  
  10. $link=db_connect(); 
  11. $empire=new mysqlquery(); 
  12. $getvar=$_GET['getvar']; 
  13. if(emptyempty($getvar)) {  
  14.         $getfrom="history.go(-1)"
  15. else {  
  16.         $getfrom="../../../search/"
  17. //搜索结果  
  18. $searchid=(int)$_GET['searchid']; 
  19. if(emptyempty($searchid)) {  
  20.         printerror("SearchNotRecord",$getfrom,1); 
  21. }  
  22. $search_r=$empire->fetch1("select searchid,keyboard,result_num,orderby,myorder,tbname,tempid,andsql,trueclassid from {$dbtbpre}enewssearch where searchid='$searchid'"); 
  23. if(emptyempty($search_r['searchid'])||InfoIsInTable($search_r[tbname])) {  
  24.         printerror("SearchNotRecord",$getfrom,1); 
  25. }  
  26. $page=(int)$_GET['page']; 
  27. $page=RepPIntvar($page); 
  28. $start=0; 
  29. $page_line=$public_r['search_pagenum'];//每页显示链接数  
  30. $line=$public_r['search_num'];//每页显示记录数  
  31. $offset=$page*$line;//总偏移量  
  32. $search="&searchid=".$searchid
  33. $myorder=$search_r[orderby]; 
  34. if(emptyempty($search_r[myorder])) {  
  35.         $myorder.=" desc"
  36. }  
  37. $add=stripSlashes($search_r['andsql']); 
  38. $num=$search_r[result_num]; 
  39. $query="select * from {$dbtbpre}ecms_".$search_r[tbname].($add?' where '.substr($add,5):''); 
  40. $query.=" order by ".$myorder." limit $offset,$line"
  41. $sql=$empire->query($query); 
  42. $listpage=page1($num,$line,$page_line,$start,$page,$search); 
  43. //取得模板  
  44. if($search_r['tempid']) {  
  45.         $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where tempid='".$search_r['tempid']."' limit 1"); 
  46. elseif(emptyempty($class_r[$search_r[trueclassid]][searchtempid])) {  
  47.         $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where isdefault=1 limit 1"); 
  48. else {  
  49.         $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where tempid='".$class_r[$search_r[trueclassid]][searchtempid]."' limit 1"); 
  50. }  
  51. $have_class=1;//页面支持标签  
  52. $tempr[temptext]=DtNewsBq('listsearch'.$search_r['tempid'],$tempr[temptext],0);//替换公共模板变量  
  53. $listtemp=$tempr[temptext]; 
  54. if($public_r['searchtempvar']) { $listtemp=ReplaceTempvar($listtemp); 
  55. }  
  56. $search_r[keyboard]=ehtmlspecialchars($search_r[keyboard]); 
  57. $listtemp=str_replace("[!--show.page--]",$listpage,$listtemp); 
  58. $listtemp=str_replace("[!--keyboard--]",$search_r[keyboard],$listtemp); 
  59. $listtemp=str_replace("[!--ecms.num--]",$num,$listtemp); 
  60. $url="<a href='".ReturnSiteIndexUrl()."'>".$fun_r['index']."</a>&nbsp;>&nbsp;".$fun_r['adsearch']; 
  61. $pagetitle=$fun_r['adsearch']." ".$search_r[keyboard]; 
  62. $listtemp=ReplaceSvars($listtemp,$url,0,$pagetitle,$pagetitle,$pagetitle,$add,0); 
  63. $rownum=$tempr[rownum]; 
  64. if(emptyempty($rownum)) { $rownum=1; 
  65. }  
  66. $formatdate=$tempr[showdate]; 
  67. $subnews=$tempr[subnews]; 
  68. $subtitle=$tempr[subtitle]; 
  69. $docode=$tempr[docode]; 
  70. $modid=$tempr[modid]; 
  71. $listvar=str_replace('[!--news.url--]',$public_r[newsurl],$tempr[listvar]); 
  72. //字段  
  73. $ret_r=ReturnReplaceListF($tempr[modid]); 
  74. //取得列表模板  
  75. $list_exp="[!--empirenews.listtemp--]"
  76. $list_r=explode($list_exp,$listtemp); 
  77. $listtext=$list_r[1]; 
  78. $no=$offset+1; 
  79. $changerow=1; 
  80. while($r=$empire->fetch($sql)) {  
  81.         //替换列表变量  
  82. $repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$have_class,$r,$ret_r,$docode); 
  83. $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext); 
  84. $listtext=str_replace($search_r[keyboard],"<font color='red'>$search_r[keyboard]</font>",$listtext); 
  85. $changerow+=1; 
  86. //超过行数  
  87. if($changerow>$rownum) { 
  88. $changerow=1; 
  89. $string.=$listtext
  90. $listtext=$list_r[1]; 
  91. $no++; 
  92. } db_close(); 
  93. $empire=null; 
  94. //多余数据  
  95. if($changerow<=$rownum&&$listtext<>$list_r[1]) { 
  96.          $string.=$listtext
  97. }  
  98. $string=$list_r[0].$string.$list_r[2]; 
  99. echo stripSlashes($string); 
  100. ?> 

 

转载请注明出处:微意技术博客 - http://www.lovevy.cc//cms/ep/2016/0819/65.html

评论