首页 > 其他 > 网站日记>正文

帝国cms全站搜索的分页格式如何修改-流程

提示: 阅读权限:公开  

帝国cms的全站全文搜索,分页格式如何修改? 以下分析抽丝剥茧:

帝国后台,公共模板,全站搜索模板, [!--listpage--]

e/class/functions.php  生成全站搜索文件 


 

//生成全站搜索文件
function ReSchAlltemp(){
	global $empire,$public_r,$fun_r,$dbtbpre;
	$tfile=eReturnTrueEcmsPath()."//生成全站搜索文件
function ReSchAlltemp(){
	global $empire,$public_r,$fun_r,$dbtbpre;
	$tfile=eReturnTrueEcmsPath()."e/data/template/schalltemp.txt";
	$file=eReturnTrueEcmsPath()."e/sch/index.php";
	$temp=ReadFiletext($tfile);
	//取得页面模板
	$pr=$empire->fetch1("select schalltemp,schallsubnum,schalldate from ".GetTemptb("enewspubtemp")." limit 1");
	$url="<?=$url?>";
	$pagetitle=$fun_r['SearchAllNav'];
	$pr['schalltemp']=ReplaceSvars($pr['schalltemp'],$url,0,$pagetitle,$pagetitle,$pagetitle,$add,1);
	$temp=str_replace("<!--empire.listtemp.subnum-->",$pr['schallsubnum'],$temp);
	$temp=str_replace("<!--empire.listtemp.formatdate-->",$pr['schalldate'],$temp);

	$pr['schalltemp']=str_replace("[!--keyboard--]","<?=$keyboard?>",$pr['schalltemp']);
	$pr['schalltemp']=str_replace("[!--num--]","<?=$num?>",$pr['schalltemp']);
	$pr['schalltemp']=str_replace("[!--listpage--]","<?=$listpage?>",$pr['schalltemp']);

	$listtemp_r=explode("[!--empirenews.listtemp--]",$pr['schalltemp']);
	$temp=str_replace("<!--empire.listtemp.top-->",$listtemp_r[0],$temp);
	$temp=str_replace("<!--empire.listtemp.footer-->",$listtemp_r[2],$temp);
	//---列表中间
	$listtemp_center=str_replace("[!--no.num--]","<?=$no?>",$listtemp_r[1]);
	$listtemp_center=str_replace("[!--titleurl--]","<?=$titleurl?>",$listtemp_center);
	$listtemp_center=str_replace("[!--id--]","<?=$r[id]?>",$listtemp_center);
	$listtemp_center=str_replace("[!--classid--]","<?=$r[classid]?>",$listtemp_center);
	$listtemp_center=str_replace("[!--titlepic--]","<?=$titlepic?>",$listtemp_center);
	$listtemp_center=str_replace("[!--newstime--]","<?=$newstime?>",$listtemp_center);
	$listtemp_center=str_replace("[!--title--]","<?=$title?>",$listtemp_center);
	$listtemp_center=str_replace("[!--smalltext--]","<?=$smalltext?>",$listtemp_center);

	$temp=str_replace("<!--empire.listtemp.center-->",$listtemp_center,$temp);
	WriteFiletext($file,$temp);
}";
	$file=eReturnTrueEcmsPath()."e/sch/index.php";
	$temp=ReadFiletext($tfile);
	//取得页面模板
	$pr=$empire->fetch1("select schalltemp,schallsubnum,schalldate from ".GetTemptb("enewspubtemp")." limit 1");
	$url="<?=$url?>";
	$pagetitle=$fun_r['SearchAllNav'];
	$pr['schalltemp']=ReplaceSvars($pr['schalltemp'],$url,0,$pagetitle,$pagetitle,$pagetitle,$add,1);
	$temp=str_replace("<!--empire.listtemp.subnum-->",$pr['schallsubnum'],$temp);
	$temp=str_replace("<!--empire.listtemp.formatdate-->",$pr['schalldate'],$temp);

	$pr['schalltemp']=str_replace("[!--keyboard--]","<?=$keyboard?>",$pr['schalltemp']);
	$pr['schalltemp']=str_replace("[!--num--]","<?=$num?>",$pr['schalltemp']);
	$pr['schalltemp']=str_replace("[!--listpage--]","<?=$listpage?>",$pr['schalltemp']);

	$listtemp_r=explode("[!--empirenews.listtemp--]",$pr['schalltemp']);
	$temp=str_replace("<!--empire.listtemp.top-->",$listtemp_r[0],$temp);
	$temp=str_replace("<!--empire.listtemp.footer-->",$listtemp_r[2],$temp);
	//---列表中间
	$listtemp_center=str_replace("[!--no.num--]","<?=$no?>",$listtemp_r[1]);
	$listtemp_center=str_replace("[!--titleurl--]","<?=$titleurl?>",$listtemp_center);
	$listtemp_center=str_replace("[!--id--]","<?=$r[id]?>",$listtemp_center);
	$listtemp_center=str_replace("[!--classid--]","<?=$r[classid]?>",$listtemp_center);
	$listtemp_center=str_replace("[!--titlepic--]","<?=$titlepic?>",$listtemp_center);
	$listtemp_center=str_replace("[!--newstime--]","<?=$newstime?>",$listtemp_center);
	$listtemp_center=str_replace("[!--title--]","<?=$title?>",$listtemp_center);
	$listtemp_center=str_replace("[!--smalltext--]","<?=$smalltext?>",$listtemp_center);

	$temp=str_replace("<!--empire.listtemp.center-->",$listtemp_center,$temp);
	WriteFiletext($file,$temp);
}

可见,是利用 

e/data/template/schalltemp.txt

和 后台的全站搜索模板,一起合成最终的搜索页面。

在这个函数中,

[!--listpage--]

 为 变量$listpage 替换。

 

进一步,观察

schalltemp.txt

 的代码,可见:

 

$listpage=page1($num,$line,$page_line,$start,$page,$search);

 

那么,分页就是用page1函数实现的了。打开二开助手,page1回车后,看到:

//函数page1位于文件/e/class/connect.php#//前台分页中。
//前台分页
function page1($num,$line,$page_line,$start,$page,$search)
	global $fun_r;
	if($num<=$line)
	{
		return '';
	}
	$search=RepPostStr($search,1);
	$url=eReturnSelfPage(0).'?page';
	$snum=2;//最小页数
	$totalpage=ceil($num/$line);//取得总页数
	$firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a>  ';
	//上一页
	if($page<>0)
	{
		$toppage='<a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a> ';
		$pagepr=$page-1;
		$prepage='<a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a>';
	}
	//下一页
	if($page!=$totalpage-1)
	{
		$pagenex=$page+1;
		$nextpage=' <a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a>';
		$lastpage=' <a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a>';
	}
	$starti=$page-$snum<0?0:$page-$snum;
	$no=0;
	for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
	{
		$no++;
		if($page==$i)
		{
			$is_1="<b>";
			$is_2="</b>";
		}
		else
		{
			$is_1='<a href="'.$url.'='.$i.$search.'">';
			$is_2="</a>";
		}
		$pagenum=$i+1;
		$returnstr.=" ".$is_1.$pagenum.$is_2;
	}
	$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
	return $returnstr;
}

 

以上就是帝国cms全站全文搜索的分页代码龙脉,了解后,改动起来就有的放矢了。

上一篇:帝国cms自定义栏目排序

下一篇:帝国cms前台信息提示

tags: 帝国cms 全站 搜索 分页 格式 修改 流程

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部