帝国CMS栏目ID+结合项伪静态,支持分页

跟帝国官方的差不多,只是伪静态了。

没有官方支持的筛选项多,只支持:栏目ID,筛选项,分页。需要其他比如:专题ID模型id模版ID排序等等,可以自己修改。

说明:

一:建立字段时候要用:值==名称的形式。不要用0,0留着给不限使用。

二:需要在e/action/ListInfo.php加几行代码,判断伪静态使用分页函数的

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

在下面添加:

//如果启用结合项并且伪静态的分页

if($_GET[‘ph’]==1 && strpos($_SERVER[‘REQUEST_URI’],’.html’)){

$listpage=page_sx($num,$line,$page_line,$start,$page,$_SERVER[REQUEST_URI]);

}

三:把userfun.php的函数复制到你的userfun.php。如果没修改过,可以覆盖。

四:伪静态规则:

apache的

RewriteRule ^10-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$        /e/action/ListInfo.php?classid=10&ph=1&myarea=$1&sex=$2&age=$3&page=$4 [L]

五:在需要显示的栏目模版加:

APACHE的,IIS需要判断$_SERVER[REQUEST_URI]

userfun.php代码:

<?php
//显示结合项筛选选项
function user_showfield($ecms=0){
global $public_r;
//------- 函数参数设置开始 -----
//要显示的结合项字段列表,多个字段用半角逗号“,”隔开
$fieldandvar='myarea,sex,age';
//字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
$fieldandval=array();
$fieldandval['myarea']='地区:|==|##不限,0##东城,1##朝阳,2##崇文,3##宣武,4##海淀,5##丰台,6';
$fieldandval['sex']='性别:|==|##不限,0##男,1##女,2##人妖,3';
$fieldandval['age']='年龄:|==|##不限,0##1-10,1##11-20,2##21-30,3##31-40,4##41-50,5##50岁以上,6';
//正常链接样式
$fieldandcss='fieldandcss';
//已选的选项链接样式
$changefieldandcss='changefieldandcss';
//字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
$fieldexp='
|

‘; //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符 $valexp=’| ‘; //——- 函数参数设置结束 —– //间隔字符 $fieldexpr=explode(‘|’,$fieldexp); $valexpr=explode(‘|’,$valexp); //输出选项 $fr=explode(‘,’,$fieldandvar); $fcount=count($fr); $allstr=”; $urladd=”; for($i=0;$i<$fcount;$i++){ $field=$fr[$i]; //选项链接 $getval=’0′; if($_GET[$field]){ $getval=htmlspecialchars($_GET[$field],ENT_QUOTES); } //选项说明 $vsayr=explode(‘|==|’,$fieldandval[$field]); //选项内容 $valallstr=”; $vr=explode(‘##’,$vsayr[1]); $vcount=count($vr); for($vi=0;$vi<$vcount;$vi++){ $vtr=explode(‘,’,$vr[$vi]); if($getval==$vtr[1]){ $css=$changefieldandcss; }else{ $css=$fieldandcss; } $trueurl=$field.’|’.$vtr[1]; $url=Return_Url($fr,$trueurl); $valallstr.=$valexpr[0].”.$vtr[0].”.$valexpr[1]; } $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1]; } echo $allstr; } //结合项伪静态返回地址。 function Return_Url($zd_arr,$trueurl){ global $classid,$page,$public_r; $url_zuhe=”; if(strpos($_SERVER[REQUEST_URI],’.html’) && $_GET[‘ph’]==1){ $url_zuhe=$_SERVER[REQUEST_URI]; }else{ for($i=0;$i$val){ if($url_arr[0]==$val){ $ser_url[$key+1]=$url_arr[1]; //因为有classis所有key要加1   } } } foreach($ser_url as $val){ $url.=$val.’-‘; } return substr(substr($url,0,-1),1); } //结合项分页 function page_sx($num,$line,$page_line,$start,$page,$search){ global $fun_r; if($num<=$line){ return ”; } $search=RepPostStr($search,1); $lj_arr=explode(‘-‘,$search); $lj_arr[count($lj_arr)-1]=”;//去掉页数.html foreach ($lj_arr as $val){ $lianjie.=$val.’-‘; } $lianjie=substr($lianjie,0,-1); $url=eReturnSelfPage(0).’?page’; $snum=2;//最小页数 $totalpage=ceil($num/$line);//取得总页数 $firststr=’ ‘.$num.’   ‘; //上一页 if($page0){ $toppage=”.$fun_r[‘startpage’].’ ‘; $pagepr=$page-1; $prepage=”.$fun_r[‘pripage’].”; } //下一页 if($page!=$totalpage-1){ $pagenex=$page+1; $nextpage=’ ‘.$fun_r[‘nextpage’].”; $lastpage=’ ‘.$fun_r[‘lastpage’].”; } $starti=$page-$snum<0?0:$page-$snum; $no=0; for($i=$starti;$i<$totalpage&&$no<$page_line;$i++){ $no++; if($page==$i){ $is_1=”“; $is_2=”“; }else{ $is_1=”; $is_2=””; } $pagenum=$i+1; $returnstr.=” “.$is_1.$pagenum.$is_2; } $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage; return $returnstr; } ?>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注