首页 > 其他 > 网站日记>正文

一个复杂的帝国cms结合项保留备忘

提示: 阅读权限:公开  
//显示结合项筛选选项
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 的摆放,省市二级联动。各种繁复的判断,头都大了。保留备忘。

上一篇:js正则动态加载jquery码段

下一篇:php代码片段本周下周星期几

tags: 帝国cms 结合

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部