帝国cms结合项列表属性筛选最详细教程
第一、把这个代码复制到e/class/userfun.php 里面去:
<?php //—————————用户自定义标签函数文件 //显示结合项筛选选项 function user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3,$ecms=0){ global $public_r,$navclassid; $fieldandval=$val; $fieldandvart=$fieldandvar; $fieldandvar=str_replace(‘#’,’,’,$fieldandvar); //附加参数 $urlcs=”; $mid=(int)$_GET[‘mid’]; if($mid) { $urlcs.=’&mid=’.$mid; } if($_GET[‘classid’]) { $classid=RepPostVar($_GET[‘classid’]); $urlcs.=’&classid=’.$classid; } else { $urlcs.=’&classid=’.$navclassid; } if($_GET[‘ttid’]) { $ttid=RepPostVar($_GET[‘ttid’]); $urlcs.=’&ttid=’.$ttid; } if($_GET[‘ztid’]) { $ztid=RepPostVar($_GET[‘ztid’]); $urlcs.=’&ztid=’.$ztid; } 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); //上下级 $frt=explode(‘,’,$fieldandvart); $ftcount=count($frt); //输出选项 $fr=explode(‘,’,$fieldandvar); $fcount=count($fr); $allstr=”; foreach ($_GET as $key=>$val){ if($val && in_array($key, $fr)){ $url_this=$key.’=’.urlencode($val); $url=str_replace($url_this,”,$_SERVER[REQUEST_URI]); $tj=’已选择条件:’; $yixuan.='<a class="del_jhx" href="’.$url.’">’.$val.’x</a> ‘; } } echo $tj.$yixuan; $urladd=”; for($i=0;$i<$fcount;$i++) { $nofield=""; $field=$fr[$i]; for($ti=0;$ti<$ftcount;$ti++) { $frtval=explode(‘#’,$frt[$ti]); if($field==$frtval[0]){$nofield="&".$frtval[1]."=";} } //选项链接 $getval=”; if($_GET[$field]) { $getval=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="/e/action/ListInfo.php?’.$urlcs.’&ph=1<!–url.add–>&’.$field.’=’.urlencode($vtr[1]).$nofield.’" class="’.$css.’">’.$vtr[0].'</a>’.$valexpr[1]; } //自定义样式 实现二级自定义样式 if($val3[$field]!="") { $fieldexpr2=explode(‘|’,$val3[$field]); $allstr[$i]=$fieldexpr2[0].$vsayr[0].$valallstr.$fieldexpr2[1]; } else { $allstr[$i]=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1]; } //清空没有数据的行 if($vcount==1){$allstr[$i]="";} } $allstr=str_replace(‘<!–url.add–>’,$urladd,$allstr); return $allstr; } ?>
第二、然后把这个代码放到分类筛选列表模板里面:
<?php $GET=$_GET; //——- 函数参数设置开始 —– //要显示的结合项字段列表,多个字段用半角逗号“,”隔开 如果是二级关系用 “#” $fieldandvar=’quyu,ftitle,jiage’; //正常链接样式 $fieldandcss=’fieldandcss’; //已选的选项链接样式 $changefieldandcss=’changefieldandcss’; //字段与字段的显示间隔符,格式:开始显示字符|结束显示字符 $fieldexp='<table><tr><td>|</td></tr></table>’; //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符 $valexp=’| ‘; //字段显示选项设置,多项用“|”号隔开,格式:选项说明|==|内容1,值1|内容2,值2 $val=array(); $val2=array(); $val3=array(); $val[‘quyu’]='<b>区域:</b>|==|老城,老区|新区,新区’; $val[‘ftitle’]='<b>户型:</b>|==|三室一厅,三室一厅|三室两厅,三室两厅|两室一厅,两室一厅’; $val[‘jiage’]='<b>价格:</b>|==|50,50|40,40|30,30′; $val3[‘jiage’]='<div class="gzw">|</div>’; $val3[‘quyu’]='<div class="gzw">|</div>’; $val3[‘ftitle’]='<div class="gzw">|</div>’; $g=user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3); ?> <?=$g[0]?> <?=$g[1]?> <?=$g[2]?> <?=$g[3]?> <?=$g[4]?>
这是后台对应的字段,一定要对应你的后台
这个的原理其实就是判断你这个字段里面是不是有这个文字,从而达到筛选的目的
这个是对应的样式,可以通过class进行样式控制
这个是必须要加的,原理的话我也不清楚,反正不加是不显示的
这里是控制筛选的,效果如下
标签:
本文链接:http://78moban.cn/post/11946.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!