• 域名认证
  • 作品:147
  • 案例:18|
  • 教程:152|
  • 资讯:28|
  • 资源:0|
  • 总访问量:31612|

导航菜单
酷讯网络工作室欢迎你.
帝国CMS栏目ID+结合项伪静态,支持分页

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

浏览次数:

作者: 淡淡的风

信息来源:

更新日期: 2018-05-05 11:27:27

文章简介

跟帝国官方的差不多,只是伪静态了。没有官方支持的筛选项多,只支持:栏目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代码:

  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. ?>


收藏此文 ( ) 感觉不错,赞哦! 打赏本站

如果本文对你有所帮助请打赏本站

  • 打赏方法如下:
  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏

精彩评论