您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程
帝国CMS栏目ID结合项伪静态支持分页的方法
渊霖2023-01-22帝国CMS教程已有人查阅
导读跟帝国官方的差不多,只是伪静态了。没有官方支持的筛选项多,只支持:栏目ID,筛选项,分页。需要其他比如:专题ID模型id模版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]
五:在需要显示的栏目模版加:<?=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']='<b>年龄:</b>|==|##不限,0##1-10,1##11-20,2##21-30,3##31-40,4##41-50,5##50岁以上,6';
//正常链接样式
$fieldandcss='fieldandcss';
//已选的选项链接样式
$changefieldandcss='changefieldandcss';
//字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
$fieldexp='<table><tr><td>|</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=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].'<a href="'.$public_r[newsurl].$url.'" class="'.$css.'">'.$vtr[0].'</a>'.$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<count($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.'-';
}
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='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a> ';
//上一页
if($page<>0){
$toppage='<a href="'.$lianjie.'0.html">'.$fun_r['startpage'].'</a> ';
$pagepr=$page-1;
$prepage='<a href="'.$lianjie.$pagepr.'.html">'.$fun_r['pripage'].'</a>';
}
//下一页
if($page!=$totalpage-1){
$pagenex=$page+1;
$nextpage=' <a href="'.$lianjie.$pagenex.'.html">'.$fun_r['nextpage'].'</a>';
$lastpage=' <a href="'.$lianjie.($totalpage-1).'.html">'.$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="'.$lianjie.$i.'.html">';
$is_2="</a>";
}
$pagenum=$i+1;
$returnstr.=" ".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
?>
本文标签:帝国cms伪静态
很赞哦! ()
相关教程
图文教程
帝国CMS内容关键字怎么替换图片标签
之前发过一种帝国CMS内容关键字替换图片标签解决方法,今天在网络上看到了一个更简单方法,分享给大家。帝国CMS内容关键字替换图片标签解决方法
帝国cms数据表phome_enewstempvarclass公共模板变量分类表
下表为帝国cms数据表phome_enewstempvarclass公共模板变量分类表,方便大家查阅。
帝国cms用户投稿怎么自动提取简介
帝国CMS默认自动生成简介功能只支持后台有效,前台是没办法的,只能手填。让用户投稿手写简介是不可能的,所以只能用其他办法了。
帝国CMS整合腾讯防水墙验证码的方法
做网站,验证码是个少不了的东西。可以自动系统自带的验证码,这个在一般网站中是已经满足需求的。
相关源码
-
帝国cms7.5奇闻异事末解之谜模板免费下载带数据本模板基于帝国CMS7.5系统开发,为神秘现象、未解之谜类主题网站设计。包含完整的PC端、移动端及百度MIP站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码 -
(自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码 -
(自适应)英文电子芯片电子元件网站pbootcms模板下载基于PbootCMS内核开发的电子元件类企业专用模板,采用响应式设计技术,适配电子元器件、集成电路、半导体等行业的品牌展示与技术文档发布需求。前端布局针对芯片参数表格与产品规格书展示进行深度优化。查看源码 -
(自适应)英文绿色精密模具零件加工五金零件pbootcms外贸网站模板本模板基于PbootCMS开发,为五金零件、精密模具加工等英文外贸企业设计。采用响应式布局,适配各类移动设备,是五金零件企业开展国际贸易的专业展示平台。查看源码 -
(PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码 -
帝国CMS7.5二次元COS漫展网站模板源码免费下载本模板基于帝国CMS 7.5版本深度开发,为二次元文化分享领域设计。采用UTF-8编码,支持中文内容展示,特别适用于COSPLAY作品展示、漫展信息发布等二次元相关内容的网站建设。模板结构清晰,布局合理,充分考虑了二次元用户群体的浏览习惯和审美需求。查看源码
| 分享笔记 (共有 篇笔记) |

