今天做一个站点时,遇到需要使用结合项的功能,之前大概知道怎么搞,但具体没搞过,今天针对这个功能第一次实地操作
需要实现的效果如图:
1、下载帝国cms结合项插件,这里不在敖述
2、针对原有代码进行修改
原有代码:
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tbody>
- <tr>
- <td class="td_left" width="114">适用站点:</td>
- <td class="ajax_select_a">
- <a href="">全部</a>
- <a title="帝国CMS企业网站" href="">企业网站</a>
- <a title="帝国CMS教育网站" href="">教育网站</a>
- <a title="帝国CMS商城网站" href="">商城网站</a>
- <a title="帝国CMS图片网站" href="">图片网站</a>
- <a title="帝国CMS文章资讯" href="">文章资讯</a>
- <a title="帝国CMS软件下载" href="">软件下载</a>
- <a title="帝国CMS博客网站" href="">博客网站</a>
- <a title="帝国CMS手机网站" href="">手机网站</a>
- <br/>
- </td>
- </tr>
- <tr>
- <td class="td_left">模板颜色:</td>
- <td class="ajax_select_a">
- <a href="" class="shaixuan">全部</a>
- <a title="黑色" href="">黑色</a>
- <a title="橙色" href="">橙色</a>
- <a title="白色" href="">白色</a>
- <a title="红色" href="">红色</a>
- <a title="灰色" href="">灰色</a>
- <a title="绿色" href="">绿色</a>
- <a title="紫色" href="">紫色</a>
- <a title="蓝色" href="">蓝色</a>
- <a title="黄色" href="">黄色</a>
- <a title="综合" href="">综合</a>
- <br/>
- </td>
- </tr>
- <tr>
- <td class="td_left">兼容设备:</td>
- <td class="ajax_select_a">
- <a href="" class="shaixuan">全部</a>
- <a title="帝国cmsPC模板" href="">PC</a>
- <a title="帝国cms手机模板" href="">Mobile</a>
- <a title="帝国cms免费模板" href="">PC+Mobile</a>
- <a title="帝国cms响应式模板" href="">响应式</a>
- <a title="帝国cms自适应模板" href="">自适应</a>
- <br/></td>
- </tr>
- <tr>
- <td class="td_left">模板价格:</td>
- <td class="ajax_select_a">
- <a href="" class="shaixuan">全部</a>
- <a title="0-49" href="">0-49元</a>
- <a title="50-199" href="">50-199元</a>
- <a title="200-299" href="">200-299元</a>
- <a title="300-499" href="">300-499元</a>
- <a title="500-699" href="">500-699元</a>
- <a title="700以上" href="">700元以上</a>
- <br/></td>
- </tr>
- </tbody>
- </table>
修改后的完整代码如下:
- //显示结合项筛选选项
- function user_ShowFieldandChange($ecms=0){
- global $public_r;
- //------- 函数参数设置开始 -----
- //要显示的结合项字段列表,多个字段用半角逗号“,”隔开
- $fieldandvar='hangye,yanse,jianrong,price';
- //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
- $fieldandval=array();
- $fieldandval['hangye']='<td class="td_left" width="114">适用站点:</td><td class="ajax_select_a">|==|全部,##企业网站,企业网站##教育网站,教育网站##商城网站,商城网站##图片网站,图片网站##文章资讯,文章资讯##软件下载,软件下载##博客网站,博客网站##手机网站,手机网站';
- $fieldandval['yanse']='<td class="td_left">模板颜色:</td><td class="ajax_select_a">|==|全部,##黑色,黑色##橙色,橙色##白色,白色##红色,红色##灰色,灰色##绿色,绿色##紫色,紫色##蓝色,蓝色##黄色,黄色##综合,综合';
- $fieldandval['jianrong']='<td class="td_left">兼容设备:</td><td class="ajax_select_a">|==|全部,##PC,PC##Mobile,Mobile##PC+Mobile,PC+Mobile##响应式,响应式##自适应,自适应';
- $fieldandval['price']='<td class="td_left">模板价格:</td><td class="ajax_select_a">|==|全部,##1-49,1__49##50-199,50__199##200-299,200__299##300-499,300__499##500-699,500__699##700元以上,700__5000';
- //正常链接样式
- $fieldandcss='fieldandcss';
- //已选的选项链接样式
- $changefieldandcss='shaixuan';
- //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
- $fieldexp='<tr><td class="td_left">|<br/></td></tr>';
- //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
- $valexp='|';
- //------- 函数参数设置结束 -----
- $userfunecmsver=function_exists('ehtmlspecialchars')?1:0;
- //附加参数
- $urlcs='';
- $mid=(int)$_GET['mid'];
- if($mid)
- {
- $urlcs.='&mid='.$mid;
- }
- if($_GET['classid'])
- {
- $classid=RepPostVar($_GET['classid']);
- $urlcs.='&classid='.$classid;
- }
- else
- {
- if(!$_GET['mid']&&!$_GET['ttid']&&!$_GET['ztid'])
- {
- $classid=intval($GLOBALS['navclassid']);
- $urlcs.='&classid='.$classid;
- }
- }
- if($_GET['ttid'])
- {
- $ttid=RepPostVar($_GET['ttid']);
- $urlcs.='&ttid='.$ttid;
- }
- if($_GET['ztid'])
- {
- $ztid=RepPostVar($_GET['ztid']);
- $urlcs.='&ztid='.$ztid;
- }
- if($_GET['firsttitle'])
- {
- $firsttitle=(int)$_GET['firsttitle'];
- $urlcs.='&firsttitle='.$firsttitle;
- }
- if($_GET['isgood'])
- {
- $isgood=(int)$_GET['isgood'];
- $urlcs.='&isgood='.$isgood;
- }
- if($_GET['endtime'])
- {
- $starttime=RepPostVar($_GET['starttime']);
- $endtime=RepPostVar($_GET['endtime']);
- $urlcs.='&starttime='.$starttime.'&endtime='.$endtime;
- }
- $line=(int)$_GET['line'];
- if($line)
- {
- $urlcs.='&line='.$line;
- }
- $tempid=(int)$_GET['tempid'];
- if($tempid)
- {
- $urlcs.='&tempid='.$tempid;
- }
- if($_GET['orderby'])
- {
- $orderby=RepPostVar($_GET['orderby']);
- $myorder=(int)$_GET['myorder'];
- $urlcs.='&orderby='.$orderby.'&myorder='.$myorder;
- }
- //间隔字符
- $fieldexpr=explode('|',$fieldexp);
- $valexpr=explode('|',$valexp);
- //输出选项
- $fr=explode(',',$fieldandvar);
- $fcount=count($fr);
- $allstr='';
- $urladd='';
- for($i=0;$i<$fcount;$i++)
- {
- $field=$fr[$i];
- //选项链接
- $getval='';
- if($_GET[$field])
- {
- $getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES);
- $urladd.='&'.$field.'='.urlencode($getval);
- }
- //选项说明
- $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;
- }
- $valallstr.=$valexpr[0].'<a href="'.$public_r['newsurl'].'e/action/ListInfo.php?'.$urlcs.'&ph=1<!--url.add-->&'.$field.'='.urlencode($vtr[1]).'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
- }
- $allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1];
- }
- $allstr=str_replace('<!--url.add-->',$urladd,$allstr);
- echo $allstr;
- }
- //结合项技术
写此文的目的:防止忘记,并且以后做其他网站有结合项时可参考这篇文章的写法