帝国cms栏目自定义字段(帝国cms栏目分类)
和帝国官方的几乎一模一样,不过是伪静态的。官方支持的过滤项并不多。只支持:列ID、过滤项、分页。如果需要其他信息如:主题ID、模型ID、模板ID、排序等,可以自行修改。注意: 1:创建字段时,使用形式:值==名称。不要使用0,0 保留供无限使用。 2:需要在e/action/ListInfo.php中添加几行代码判断伪静态并使用分页功能查找$listpage=page1($num,$line,$page_line,$start,$页面,$搜索);下面添加: //如果启用绑定并伪静态分页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=10ph=1myarea=$1sex=$2age=$3page=$4 [L] 五:在需要显示的栏目模板中添加:=user_showfield();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']='b 地区:/b|==|## 不限,0##东城、1##朝阳、2##崇文、3##宣武、4##海淀、5# # 丰台, 6'; $fieldandval['sex']='b性别: /b|==|## 无限制, 0##男,1##女,2##人妖,3'; $fieldandval['age']='bAge:/b|==|## 无限制,0##1-10,1##11-20,2##21-30,3##31-40, 4##41-50,5##50岁以上,6'; //普通链接样式$fieldandcss='fieldandcss'; //选中选项链接样式$changefieldandcss='changefieldandcss'; //显示字段与字段之间的间隔,格式:开始显示字符|结束显示字符$fieldexp='tabletrtd|/td/tr/table'; //显示选项与选项符号之间的间隔,格式:开始显示字符|结束显示字符$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=爆炸('##',$vsayr[1]); $vcount=count($vr); for($vi=0;$vi$vcount;$vi++){ $vtr=explode(', ',$vr[$vi]); if($getval==$vtr[1]){ $css=$changefieldandcss; }其他{ $css=$fieldandcss; $trueurl=$field.'|'.$vtr[1]; $url=Return_Url($fr,$trueurl); $valallstr.=$valexpr[0].'a href=''.$public_r[newsurl].$url.'' class=''。 $css.'''.$vtr[0].'/a'.$valexpr[1]; $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1]; } 回显$allstr; } //组合项伪静态返回地址。
函数Return_Url($zd_arr,$trueurl){ 全局$classid,$page,$public_r; $url_zuhe=''; if(strpos($_SERVER[REQUEST_URI],'.html') $_GET['ph']==1){ $url_zuhe=$_SERVER[REQUEST_URI]; }else{ for($i=0;$icount($zd_arr);$i++){ $url_zdzh.='0-'; } $url_zuhe='/'. $classid.'-'.$url_zdzh.$page.'.html'; $ser_url=explode('-',$url_zuhe); $url_arr=explode('|',$trueurl); $ser_url[count( $ser_url)-1]='0.html';//如果有分页,过滤后分页为0,以免第一页没有数据显示if(is_array($zd_arr )){ foreach($zd_arr as $key=$val){ if($url_arr[0]==$val){ $ser_url[$key+1]=$url_arr[1]; //因为有classis,所有key都要加1 } } } foreach($ser_url as $val){ $url.=$val.'-';返回substr(substr($url,0,-1),1); } //组合项分页函数page_sx($num,$line,$page_line,$start,$page,$search){ global $fun_r; if($num=$line){ 返回''; $search=RepPostStr($search,1); $lj_arr=爆炸('-', $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='a title=''.$fun_r['trecord'].' 'nbsp;b'.$num.'/b /anbsp;nbsp;'; //上一页if($page0) { $toppage='a href=''.$lianjie.'0.html''.$fun_r['startpage'].'/anbsp;'; $pagepr=$page-1; $prepage='a href=''.$lianjie.$pagepr.'.html''.$fun_r['pripage'].'/a'; } //下一页if($page!=$totalpage-1){ $pagenex=$page+1; $nextpage='nbsp;a href=''.$lianjie.$pagenex.'.html''.$fun_r['nextpage'].'/a'; $lastpage='nbsp;a href=''.$lianjie.($totalpage-1).'.html''.$fun_r['lastpage'].'/a'; $starti=$page-$snum0?0:$page-$snum; $ 否=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=''.$lianjie.$i.'.html''; $is_2='/a'; $pagenum=$i+1; $returnstr.='nbsp;'.$is_1.$pagenum.$is_2; $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;返回$returnstr; } ?