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

帝国CMS栏目ID+结合项伪静态,支持分页
本文关键字词:结合项伪静态,帝国CMS结合项


跟帝国官方的差不多,只是伪静态了。
没有官方支持的筛选项多,只支持:栏目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]
五:在需要显示的栏目模版加:<?=user_showfield();?>

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


userfun.php代码:

  1 <?php
  2 //显示结合项筛选选项
  3 function user_showfield($ecms=0){
  4 global $public_r;
  5 //------- 函数参数设置开始 -----
  6 //要显示的结合项字段列表,多个字段用半角逗号“,”隔开
  7 $fieldandvar='myarea,sex,age';
  8 //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
  9 $fieldandval=array();
 10 $fieldandval['myarea']='<b>地区:</b>|==|##不限,0##东城,1##朝阳,2##崇文,3##宣武,4##海淀,5##丰台,6';
 11 $fieldandval['sex']='<b>性别:</b>|==|##不限,0##男,1##女,2##人妖,3';
 12 $fieldandval['age']='<b>年龄:</b>|==|##不限,0##1-10,1##11-20,2##21-30,3##31-40,4##41-50,5##50岁以上,6';
 13 //正常链接样式
 14 $fieldandcss='fieldandcss';
 15 //已选的选项链接样式
 16 $changefieldandcss='changefieldandcss';
 17 //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
 18 $fieldexp='<table><tr><td>|</td></tr></table>';
 19 //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
 20 $valexp='| ';
 21 //------- 函数参数设置结束 -----
 22 //间隔字符
 23 $fieldexpr=explode('|',$fieldexp);
 24 $valexpr=explode('|',$valexp);
 25 //输出选项
 26 $fr=explode(',',$fieldandvar);
 27 $fcount=count($fr);
 28 $allstr='';
 29 $urladd='';
 30 for($i=0;$i<$fcount;$i++){
 31 $field=$fr[$i];
 32 //选项链接
 33 $getval='0';
 34 if($_GET[$field]){
 35 $getval=htmlspecialchars($_GET[$field],ENT_QUOTES);
 36 }
 37 //选项说明
 38 $vsayr=explode('|==|',$fieldandval[$field]);
 39 //选项内容
 40 $valallstr='';
 41 $vr=explode('##',$vsayr[1]);
 42 $vcount=count($vr);
 43 for($vi=0;$vi<$vcount;$vi++){
 44 $vtr=explode(',',$vr[$vi]);
 45 if($getval==$vtr[1]){
 46 $css=$changefieldandcss;
 47 }else{
 48 $css=$fieldandcss;
 49 }
 50 $trueurl=$field.'|'.$vtr[1];
 51 $url=Return_Url($fr,$trueurl);
 52 $valallstr.=$valexpr[0].'<a href="'.$public_r[newsurl].$url.'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
 53 }
 54 $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1];
 55 }
 56 echo $allstr;
 57 }
 58 //结合项伪静态返回地址。
 59 function Return_Url($zd_arr,$trueurl){
 60 global $classid,$page,$public_r;
 61 $url_zuhe='';
 62 if(strpos($_SERVER[REQUEST_URI],'.html') && $_GET['ph']==1){
 63 $url_zuhe=$_SERVER[REQUEST_URI];
 64 }else{
 65 for($i=0;$i<count($zd_arr);$i++){
 66 $url_zdzh.='0-';
 67 }
 68 $url_zuhe='/'.$classid.'-'.$url_zdzh.$page.'.html';
 69 }
 70 $ser_url=explode('-',$url_zuhe);
 71 $url_arr=explode('|',$trueurl);
 72 $ser_url[count($ser_url)-1]='0.html';//如果有分页的话,筛选后分页是0,免得不是第一页没数据显示
 73 if(is_array($zd_arr)){
 74 foreach($zd_arr as $key=>$val){
 75 if($url_arr[0]==$val){
 76 $ser_url[$key+1]=$url_arr[1]; //因为有classis所有key要加1  
 77 }
 78 }
 79 }
 80 foreach($ser_url as $val){
 81 $url.=$val.'-';
 82 }
 83 return substr(substr($url,0,-1),1);
 84 }
 85 //结合项分页
 86 function page_sx($num,$line,$page_line,$start,$page,$search){
 87 global $fun_r;
 88 if($num<=$line){
 89 return '';
 90 }
 91 $search=RepPostStr($search,1);
 92 $lj_arr=explode('-',$search);
 93 $lj_arr[count($lj_arr)-1]='';//去掉页数.html
 94 foreach ($lj_arr as $val){
 95 $lianjie.=$val.'-';
 96 }
 97 $lianjie=substr($lianjie,0,-1);
 98 $url=eReturnSelfPage(0).'?page';
 99 $snum=2;//最小页数
100 $totalpage=ceil($num/$line);//取得总页数
101 $firststr='<a title="'.$fun_r['trecord'].'">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
102 //上一页
103 if($page<>0){
104 $toppage='<a href="'.$lianjie.'0.html">'.$fun_r['startpage'].'</a>&nbsp;';
105 $pagepr=$page-1;
106 $prepage='<a href="'.$lianjie.$pagepr.'.html">'.$fun_r['pripage'].'</a>';
107 }
108 //下一页
109 if($page!=$totalpage-1){
110 $pagenex=$page+1;
111 $nextpage='&nbsp;<a href="'.$lianjie.$pagenex.'.html">'.$fun_r['nextpage'].'</a>';
112 $lastpage='&nbsp;<a href="'.$lianjie.($totalpage-1).'.html">'.$fun_r['lastpage'].'</a>';
113 }
114 $starti=$page-$snum<0?0:$page-$snum;
115 $no=0;
116 for($i=$starti;$i<$totalpage&&$no<$page_line;$i++){
117 $no++;
118 if($page==$i){
119 $is_1="<b>";
120 $is_2="</b>";
121 }else{
122 $is_1='<a href="'.$lianjie.$i.'.html">';
123 $is_2="</a>";
124 }
125 $pagenum=$i+1;
126 $returnstr.="&nbsp;".$is_1.$pagenum.$is_2;
127 }
128 $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
129 return $returnstr;
130 }
131 ?>

 

转载于:https://www.cnblogs.com/jincao/p/7833585.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值