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

时间: 2019-06-10 / 分类: ecms / 浏览次数: 2,106 views / 0个评论 发表评论

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

}

?>

 

a8014c086e061d958e83902071f40ad163d9cae5(1)

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

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

0df431adcbef76099c5a3f8724dda3cc7cd99e51(1)

35a85edf8db1cb1348619d0bd754564e92584b99(1)

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

cf1b9d16fdfaaf5100af27a7865494eef01f7a5e(1)

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

aec379310a55b319b56c246d49a98226cffc1714(1)

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

ae51f3deb48f8c54625e633730292df5e0fe7f1d(1)

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

35a85edf8db1cb1348619d0bd754564e92584b99(1)

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

0dd7912397dda1446176cfaab8b7d0a20cf486af

503d269759ee3d6dc32126d349166d224e4adec7

发表评论

您的昵称 *

您的邮箱 *

您的网站