帝国cms结合项列表属性筛选最详细教程

2025-10-29 11:23:28

1、首先把这个代码复制到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;

}

?>

帝国cms结合项列表属性筛选最详细教程

2、然后把这个代码放到模板里面:

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

帝国cms结合项列表属性筛选最详细教程

帝国cms结合项列表属性筛选最详细教程

3、这是后台对应的字段,一定要对应你的后台

帝国cms结合项列表属性筛选最详细教程

4、这个的原理其实就是判断你这个字段里面是不是有这个文字,从而达到赛选的目的

帝国cms结合项列表属性筛选最详细教程

5、这个是对应的样式,可以通过class进行样式控制

帝国cms结合项列表属性筛选最详细教程

6、这个是必须要加的,原理的话我也不清楚,反正不加是不显示的

帝国cms结合项列表属性筛选最详细教程

7、这里是控制筛选的,效果如下

帝国cms结合项列表属性筛选最详细教程

帝国cms结合项列表属性筛选最详细教程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢