原文来自:https://liye5.com/
内容摘要
帝国cms搜索模板支持调用动态标签方法
文章正文
帝国cms搜索模板支持调用动态标签方法
复制以下代码到e/search/result/index.php
<?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" ); $editor =1; eCheckCloseMods( 'search' ); //关闭模块 $link =db_connect(); $empire = new mysqlquery(); $getvar = $_GET [ 'getvar' ]; if ( empty ( $getvar )){
$getfrom = "history.go(-1)" ; } else {
$getfrom = "../../../search/" ; } //搜索结果 $searchid =(int) $_GET [ 'searchid' ]; if ( empty ( $searchid )){
printerror( "SearchNotRecord" , $getfrom ,1); } $search_r = $empire ->fetch1( "selectsearchid,keyboard,result_num,orderby,myorder,tbname,tempid,andsql,trueclassidfrom{$dbtbpre}enewssearchwheresearchid='$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 .= "orderby" . $myorder . "limit$offset,$line" ; $sql = $empire ->query( $query ); $listpage =page1( $num , $line , $page_line , $start , $page , $search ); //取得模板 if ( $search_r [ 'tempid' ]){
$tempr = $empire ->fetch1( "selecttemptext,subnews,listvar,rownum,showdate,modid,subtitle,docodefrom" .GetTemptb( "enewssearchtemp" ). "wheretempid='" . $search_r ['tempid ']."' limit1"); } elseif ( empty ( $class_r [ $search_r [trueclassid]][searchtempid])){
$tempr = $empire ->fetch1( "selecttemptext,subnews,listvar,rownum,showdate,modid,subtitle,docodefrom" .GetTemptb( "enewssearchtemp" ). "whereisdefault=1limit1" ); } else {
$tempr = $empire ->fetch1( "selecttemptext,subnews,listvar,rownum,showdate,modid,subtitle,docodefrom" .GetTemptb( "enewssearchtemp" ). "wheretempid='" . $class_r [ $search_r [trueclassid]][searchtempid]. "'limit1" ); } $have_class =1; //页面支持标签 $tempr [temptext]=DtNewsBq( 'listsearch' . $search_r [ '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 = "<ahref='" .ReturnSiteIndexUrl(). "'>" . $fun_r [ 'index' ]. "</a> > " . $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 ( "<!--list.var" . $changerow . "-->" , $repvar , $listtext ); $listtext = str_replace ( $search_r [keyboard], "<fontcolor='red'>$search_r[keyboard]</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 ); ?> |