### [让帝国CMS7.2搜索模板支持动态标签调用](https://www.prosaas.cn/article/1439) **Published:** 2020-06-15T05:49:39 **Author:** 5201314 **Excerpt:** 下面由帝国cms二次开发教程栏目给大家介绍帝让帝国CMS7.2搜索模板支持动态标签调用的方法,希望对需要的朋友… 下面由**帝国cms二次开发**教程栏目给大家介绍帝让帝国CMS7.2搜索模板支持动态标签调用的方法,希望对需要的朋友有所帮助! ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212115823883.jpg) 帝国cms站内搜索一般不支持动态标签调用,如果要调用如何实现呢?修改两个地方就可以实现了。打开 /e/search/result/index.php 文件,找到(文件改了,不会调用也是徒劳!) require("../../class/connect.php"); require("../../class/db\_sql.php"); require("../../data/dbcache/class.php"); require("../../class/q\_functions.php"); require "../".LoadLang("pub/fun.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"); 接着查找: //替换公共模板变量 $listtemp=$tempr\[temptext\]; 在上面添加以下代码: //页面支持标签 $tempr\[temptext\]=DtNewsBq('list'.$tempid,$tempr\[temptext\],0);   ytkah早就猜到你不想去一行行找了,哈哈,直接提供修改后的整个代码如下 fetch1("select searchid,keyboard,result\_num,orderby,myorder,tbname,tempid,andsql,trueclassid from {$dbtbpre}enewssearch where searchid='$searchid'"); if(empty($search\_r\['searchid'\])||InfoIsInTable($search\_r\[tbname\])) { printerror("SearchNotRecord",$getfrom,1); } $page=(int)$\_GET\['page'\]; $page=RepPIntvar($page); $start=0; $page\_line=$public\_r\['search\_pagenum'\];//每页显示链接数 $line=$public\_r\['search\_num'\];//每页显示记录数 $offset=$page\*$line;//总偏移量 $search="&searchid=".$searchid; $myorder=$search\_r\[orderby\]; if(empty($search\_r\[myorder\])) { $myorder.=" desc"; } $add=stripSlashes($search\_r\['andsql'\]); $num=$search\_r\[result\_num\]; $query="select \* from {$dbtbpre}ecms\_".$search\_r\[tbname\].($add?' where '.substr($add,5):''); $query.=" order by ".$myorder." limit $offset,$line"; $sql=$empire->query($query); $listpage=page1($num,$line,$page\_line,$start,$page,$search); //取得模板 if($search\_r\['tempid'\]) { $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where tempid='".$search\_r\['tempid'\]."' limit 1"); } elseif(empty($class\_r\[$search\_r\[trueclassid\]\]\[searchtempid\])) { $tempr=$empire->fetch1("select temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode from ".GetTemptb("enewssearchtemp")." where isdefault=1 limit 1"); } else { $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"); } $have\_class=1; //页面支持标签 $tempr\[temptext\]=DtNewsBq('list'.$tempid,$tempr\[temptext\],0); //替换公共模板变量 $listtemp=$tempr\[temptext\]; if($public\_r\['searchtempvar'\]) { $listtemp=ReplaceTempvar($listtemp); } $search\_r\[keyboard\]=ehtmlspecialchars($search\_r\[keyboard\]); $listtemp=str\_replace("\[!--show.page--\]",$listpage,$listtemp); $listtemp=str\_replace("\[!--keyboard--\]",$search\_r\[keyboard\],$listtemp); $listtemp=str\_replace("\[!--ecms.num--\]",$num,$listtemp); $url="".$fun\_r\['index'\]." > ".$fun\_r\['adsearch'\]; $pagetitle=$fun\_r\['adsearch'\]." ".$search\_r\[keyboard\]; $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("",$repvar,$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); ?> 相关视频推荐:《帝国cms全套视频教程》 以上就是让帝国CMS7.2搜索模板支持动态标签调用的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** 帝国CMS ---