//显示结合项筛选选项
function user_ShowFieldandChange($ecms=0){
global $public_r,$class_r;
//------- 函数参数设置开始 -----
//要显示的结合项字段列表,多个字段用半角逗号“,”隔开
if($myarea=$_GET['myarea']){
$fieldandvar='classid,myarea,myarea1,gq';
}else{
$fieldandvar='classid,myarea,gq';
}
//字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
$fieldandval=array();
$ejld=include(ECMS_PATH.'e/extend/ejld/ejld.php');
$fieldandval['myarea']='<div class="fl key">所在地区:</div><div class="fl value"><ul class="clear-fix">|==|全国,';
$fieldandval['myarea1']='<ul class="secul clear-fix">|==|不限,';
$fieldandval['gq']='<div class="fl key">信息类型:</div><div class="fl value">
<ul class="clear-fix">|==|不限,';
$fieldandval['classid']='<div class="fl key">信息分类:</div><div class="fl value"><ul class="clear-fix">|==|不限,';
foreach($ejld as $k=>$v){
if($v['name']==$myarea){
$you=false;
$jhcarea1=reppostvar($_GET['myarea1']);
foreach($v['child'] as $kk=>$vv){
$fieldandval['myarea1'].='##'.$vv['name'].','.$vv['name'];
if($vv['name']==$jhcarea1)$you=true;
}
}
$fieldandval['myarea'].='##'.$v['name'].','.$v['name'];
}
if(!$you)unset($_GET['myarea1']);
foreach($class_r as $v){
if($v['bclassid']==0){
$fieldandval['classid'].='##'.$v['classname'].','.$v['classid'];
}
}
$jhcclassid=intval($_GET['classid']);
$fieldandval['classid'].='##jhcad,';
foreach($class_r as $v){
if($v['bclassid']==$jhcclassid ||$v['islast']==1 && $v['bclassid']==$class_r[$jhcclassid][bclassid]){
$fieldandval['classid'].='##'.$v['classname'].','.$v['classid'];
}
}
$fieldandval['gq'].='##求购,q##供应,g';
//正常链接样式
$fieldandcss='';
//已选的选项链接样式
$changefieldandcss='select';
//字段与字段的显示间隔符,格式:开始显示字符|结束显示字符
$fieldexp='<div class="attr">|</ul></div><div class="clear"></div></div>';
$fieldexp1= $fieldexp;
//选项与选项的显示间隔符,格式:开始显示字符|结束显示字符
$valexp='|';
//------- 函数参数设置结束 -----
$userfunecmsver=function_exists('ehtmlspecialchars')?1:0;
//附加参数
$urlcs='ph=1';
$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=$urlcs;
foreach($fr as $field){
if($_GET[$field])
{
$getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES);
$urladd.='&'.$field.'='.urlencode($getval);
}
}
for($i=0;$i<$fcount;$i++)
{
$fieldexp= $fieldexp1;
$field=$fr[$i];
if($myarea){
if($field=='myarea'){
$fieldexp='<div class="attr">|</ul>';
}
if($field=='myarea1'){
$fieldexp=' |</ul></div><div class="clear"></div></div>';
}
}
$fieldexpr=explode('|',$fieldexp);
//选项链接
$getval='';
if($_GET[$field])
{
$getval=$userfunecmsver==1?ehtmlspecialchars($_GET[$field],ENT_QUOTES):htmlspecialchars($_GET[$field],ENT_QUOTES);
//$urladd.='&'.$field.'='.urlencode($getval);
}
$myurladd=preg_replace('/&'.$field.'=[^&]+/i','',$urladd);
if($field=='myarea')$myurladd=preg_replace('/&myarea1=[^&]+/i','',$myurladd);
//选项说明
$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=' class="'.$changefieldandcss.'" ';
}
else
{
$css='';
}
if($vtr[0]=='jhcad'){
$valallstr.='</ul><ul class="secul clear-fix">';
}else{
$valallstr.="<li{$css}>".'<a href="'.$public_r['newsurl'].'e/action/ListInfo.php?'.$myurladd.'&'.$field.'='.urlencode($vtr[1]).'">'.$vtr[0].'</a></li>';
}
}
$allstr.=$fieldexpr[0].$vsayr[0].$valallstr.$fieldexpr[1];
}
return $allstr;
} 涉及到各种技巧,classid 的摆放,省市二级联动。各种繁复的判断,头都大了。保留备忘。
|