帝国CMS结合项使用实例

今天做一个站点时,遇到需要使用结合项的功能,之前大概知道怎么搞,但具体没搞过,今天针对这个功能第一次实地操作

需要实现的效果如图:

1、下载帝国cms结合项插件,这里不在敖述

2、针对原有代码进行修改

原有代码:

  1. 适用站点:
  2.  
  3. 全部
  4. 企业网站
  5. 教育网站
  6. 商城网站
  7. 图片网站
  8. 文章资讯
  9. 软件下载
  10. 博客网站
  11. 手机网站

  12. 模板颜色:
  13. 全部
  14. 黑色
  15. 橙色
  16. 白色
  17. 红色
  18. 灰色
  19. 绿色
  20. 紫色
  21. 蓝色
  22. 黄色
  23. 综合
  24.  

  25. 兼容设备:
  26. 全部
  27. PC
  28. Mobile
  29. PC+Mobile
  30. 响应式
  31. 自适应
  32.  
  33.  

  34. 模板价格:
  35. 全部
  36. 0-49元
  37. 50-199元
  38. 200-299元
  39. 300-499元
  40. 500-699元
  41. 700元以上
  42.  

修改后的完整代码如下:

  1. //显示结合项筛选选项
  2. function user_ShowFieldandChange($ecms=0){
  3. global $public_r;
  4.  
  5. //------- 函数参数设置开始 -----
  6.  
  7. //要显示的结合项字段列表,多个字段用半角逗号“,”隔开
  8. $fieldandvar='hangye,yanse,jianrong,price';
  9.  
  10. //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
  11. $fieldandval=array();
  12. $fieldandval['hangye']='适用站点:|==|全部,##企业网站,企业网站##教育网站,教育网站##商城网站,商城网站##图片网站,图片网站##文章资讯,文章资讯##软件下载,软件下载##博客网站,博客网站##手机网站,手机网站';
  13. $fieldandval['yanse']='模板颜色:|==|全部,##黑色,黑色##橙色,橙色##白色,白色##红色,红色##灰色,灰色##绿色,绿色##紫色,紫色##蓝色,蓝色##黄色,黄色##综合,综合';
  14. $fieldandval['jianrong']='兼容设备:|==|全部,##PC,PC##Mobile,Mobile##PC+Mobile,PC+Mobile##响应式,响应式##自适应,自适应';
  15. $fieldandval['price']='模板价格:|==|全部,##1-49,1__49##50-199,50__199##200-299,200__299##300-499,300__499##500-699,500__699##700元以上,700__5000';
  16.  
  17. //正常链接样式
  18. $fieldandcss='fieldandcss';
  19.  
  20. //已选的选项链接样式
  21. $changefieldandcss='shaixuan';
  22.  
  23. //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
  24. $fieldexp='|
    ';
  25.  
  26. //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
  27. $valexp='|';
  28.  
  29. //------- 函数参数设置结束 -----
  30.  
  31.  
  32. $userfunecmsver=function_exists('ehtmlspecialchars')?1:0;
  33. //附加参数
  34. $urlcs='';
  35. $mid=(int)$_GET['mid'];
  36. if($mid)
  37. {
  38. $urlcs.='&mid='.$mid;
  39. }
  40. if($_GET['classid'])
  41. {
  42. $classid=RepPostVar($_GET['classid']);
  43. $urlcs.='&classid='.$classid;
  44. }
  45. else
  46. {
  47. if(!$_GET['mid']&&!$_GET['ttid']&&!$_GET['ztid'])
  48. {
  49. $classid=intval($GLOBALS['navclassid']);
  50. $urlcs.='&classid='.$classid;
  51. }
  52. }
  53. if($_GET['ttid'])
  54. {
  55. $ttid=RepPostVar($_GET['ttid']);
  56. $urlcs.='&ttid='.$ttid;
  57. }
  58. if($_GET['ztid'])
  59. {
  60. $ztid=RepPostVar($_GET['ztid']);
  61. $urlcs.='&ztid='.$ztid;
  62. }
  63. if($_GET['firsttitle'])
  64. {
  65. $firsttitle=(int)$_GET['firsttitle'];
  66. $urlcs.='&firsttitle='.$firsttitle;
  67. }
  68. if($_GET['isgood'])
  69. {
  70. $isgood=(int)$_GET['isgood'];
  71. $urlcs.='&isgood='.$isgood;
  72. }
  73. if($_GET['endtime'])
  74. {
  75. $starttime=RepPostVar($_GET['starttime']);
  76. $endtime=RepPostVar($_GET['endtime']);
  77. $urlcs.='&starttime='.$starttime.'&endtime='.$endtime;
  78. }
  79. $line=(int)$_GET['line'];
  80. if($line)
  81. {
  82. $urlcs.='&line='.$line;
  83. }
  84. $tempid=(int)$_GET['tempid'];
  85. if($tempid)
  86. {
  87. $urlcs.='&tempid='.$tempid;
  88. }
  89. if($_GET['orderby'])
  90. {
  91. $orderby=RepPostVar($_GET['orderby']);
  92. $myorder=(int)$_GET['myorder'];
  93. $urlcs.='&orderby='.$orderby.'&myorder='.$myorder;
  94. }
  95. //间隔字符
  96. $fieldexpr=explode('|',$fieldexp);
  97. $valexpr=explode('|',$valexp);
  98. //输出选项
  99. $fr=explode(',',$fieldandvar);
  100. $fcount=count($fr);
  101. $allstr='';
  102. $urladd='';
  103. for($i=0;$i<$fcount;$i++)
  104. {
  105. $field=$fr[$i];
  106. //选项链接
  107. $getval='';
  108. if($_GET[$field])
  109. {
  110. $getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES);
  111. $urladd.='&'.$field.'='.urlencode($getval);
  112. }
  113. //选项说明
  114. $vsayr=explode('|==|',$fieldandval[$field]);
  115. //选项内容
  116. $valallstr='';
  117. $vr=explode('##',$vsayr[1]);
  118. $vcount=count($vr);
  119. for($vi=0;$vi<$vcount;$vi++)
  120. {
  121. $vtr=explode(',',$vr[$vi]);
  122. if($getval==$vtr[1])
  123. {
  124. $css=$changefieldandcss;
  125. }
  126. else
  127. {
  128. $css=$fieldandcss;
  129. }
  130. $valallstr.=$valexpr[0].''.$vtr[0].''.$valexpr[1];
  131. }
  132. $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1];
  133. }
  134. $allstr=str_replace('',$urladd,$allstr);
  135. echo $allstr;
  136. }
  137.  
  138.  
  139. //结合项技术

写此文的目的:防止忘记,并且以后做其他网站有结合项时可参考这篇文章的写法

你可能感兴趣的:(帝国CMS结合项使用实例)