帝国cms自定义函数userfun实现列表页和内容页分页
对于帝国cms分页,可通过e-class-t_functions.php原系统文件进行直接修改,但这就面临一个问题,即后面升级的时候修改后的系统文件会被升级文件覆盖掉,但class下的userfun.php文件不会,所以可以通过自定义函数实现列表页和内容页的分页,简单方便。
对于修改,首先要知道源文件的函数位置,函数位置如下所示:
列表页模板[!--show.page--]:分页导航(下拉式) 大概在10-98行;列表页模板[!--show.listpage--]:分页导航(列表式) 在101-169行;内容页模板(返回内容分页):分页导航 在172-228行;内容页模板(返回下拉式内容分页导航):标题式分页导航 在231-262行。
列表页两个,内容页两个,一般常用的分页是[!--show.listpage--]和内容页分页函数,下面以[!--show.listpage--]为例介绍自定义函数的列表分页的实现方法:
1、修改进入帝国cms后台,点击系统设置->系统参数设置->信息设置:里面有个"列表分页函数(列表)"选项,将里面的函数名修改为user_ShowListMorePage
2、复制修改后的t_function.php列表式分页函数代码到 e/class/userfun.php <?php与?> 之间,并修改函数名,7.5版本的整体修改后的代码如下:
//列表模板之列表式分页 function user_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search="",$add){ global $fun_r,$public_r; if($num<=$line) { $pager['showpage']=''; return $pager; } //文件名 if(empty($add['dofile'])) { $add['dofile']='index'; } //静态页数 $repagenum=$add['repagenum']; $page_line=$public_r['listpagelistnum']; $snum=2; //$totalpage=ceil($num/$line);//取得总页数 $firststr='<a title="Total record"> <b>'.$num.'</b> </a> '; //上一页 if($page<>1) { $toppage='<a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a> '; $pagepr=$page-1; if($pagepr==1) { $prido=$add['dofile'].$type; } else { $prido=$add['dofile'].'_'.$pagepr.$type; } $prepage='<a href="'.$dolink.$prido.'" class="disabled">'.$fun_r['pripage'].'</a>'; } //下一页 if($page!=$totalpage) { $pagenex=$page+1; $nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$dolink.$add['dofile'].'_'.$pagenex.$type; $lastpagelink=$repagenum&&$repagenum<$totalpage?eReturnRewritePageLink2($add,$totalpage):$dolink.$add['dofile'].'_'.$totalpage.$type; $nextpage='<a href="'.$nextpagelink.'" class="disabled">'.$fun_r['nextpage'].'</a>'; $lastpage='<a href="'.$lastpagelink.'" class="disabled">'.$fun_r['lastpage'].'</a>'; } $starti=$page-$snum<1?1:$page-$snum; $no=0; for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++) { $no++; if($page==$i) { $is_1="<a class='cur'>"; $is_2="</a>"; } elseif($i==1) { $is_1='<a href="'.$dolink.$add['dofile'].$type.'">'; $is_2="</a>"; } else { $thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].'_'.$i.$type; $is_1='<a href="'.$thispagelink.'">'; $is_2="</a>"; } $returnstr.=$is_1.$i.$is_2; } $returnstr=$prepage.$returnstr.$nextpage.$lastpage; $pager['showpage']=$returnstr; return $pager; } ?>
帝国cms7.5版本的可以直接复制上述代码到userfun.php中
2、添加css样式
.pageBox {text-align: center;} .pageBox a {border:1px solid #ddd;display:inline-block;margin-right:6px;color: #707070;width:34px;height:34px;font:bold 14px/34px arial;} .pageBox a:hover,.pageBox a:active{background:#3aa9f2;color: #FFFFFF;text-decoration: none;} .pageBox .cur { background: #3aa9f2;border: 1px solid #3aa9f2;text-decoration: none;} .pageBox a.cur {color: #fff;} .pageBox .disabled {width: 79px;}
css代码都会添加,如果直接在html中就添加在<style></style>之间
3、数据更新-刷新所有信息栏目页
有人说那如何调用上述自定义函数呢,第一步已经算引入调用了好吧,然后[!--show.listpage--]还是一样的,这个步骤很简单,比修改源文件来的爽!!!