帝国cms筛选

一:首先把这个代码复制到e/class/userfun.php   里面去:

$val){                if($val && in_array($key, $fr)){                        $url_this=$key.'='.urlencode($val);                        $url=str_replace($url_this,'',$_SERVER[REQUEST_URI]);                        $tj='已选择条件:';                        $yixuan.=''.$val.'x ';                                }        }        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].''.$vtr[0].''.$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('',$urladd,$allstr);

return $allstr;

}

?>

二:然后把这个代码放到模板里面
|';

  

    //选项与选项的显示间隔符,格式:开始显示字符|结束显示字符

    $valexp='| ';

  

    //字段显示选项设置,多项用“|”号隔开,格式:选项说明|==|内容1,值1|内容2,值2

        $val=array();

    $val2=array();

    $val3=array();

    $val['quyu']='区域:|==|老城,老区|新区,新区';

    $val['ftitle']='户型:|==|三室一厅,三室一厅|三室两厅,三室两厅|两室一厅,两室一厅';

      

    $val['jiage']='价格:|==|50,50|40,40|30,30';

    $val3['jiage']='
|
'; $val3['quyu']='
|
'; $val3['ftitle']='
|
'; $g=user_ShowFieldandChange($val,$fieldandvar,$fieldandcss,$changefieldandcss,$fieldexp,$valexp,$val3); ?>
注意:代码加入模板之后,应该取消勾选列表循环下面的--使用程序代码片,不然会报错


三:字段一定要跟自己后台的字段对应


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

帝国cms筛选_第1张图片
             这个是对应的样式,可以通过class进行样式控制

       帝国cms筛选_第2张图片
              这里是控制筛选的,效果如下
帝国cms筛选_第3张图片

如果要实现伪静态,使a链接与伪静态规则符合:更改userfun.php的for循环,更改如下:
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]."=";}
        }
        //选项链接
        $f = array(
            'orderby'=> urlencode(htmlspecialchars($_GET['orderby'])),
            'zhuangtai'=> urlencode(htmlspecialchars($_GET['zhuangtai'])),
            'shouzhong'=> urlencode(htmlspecialchars($_GET['shouzhong'])),
            'diyu'=> urlencode(htmlspecialchars($_GET['diyu'])),
            'ticai'=> urlencode(htmlspecialchars($_GET['ticai'])),
        );
        $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;
            }
            $f[$field] = $vtr[1];
            $valallstr.=$valexpr[0].''.$vtr[0].''.$valexpr[1];
        }



翻页伪静态:
上面的 $valallstr.应该改成   $valallstr.=$valexpr[0].''.$vtr[0].''.$valexpr[1];  就是.html加-
然后在ListInfo.php里面找到
//分页
$listpage=page1($num,$line,$page_line,$start,$page,$search);
改成     $listpage=page5($num,$line,$page_line,$start,$page,$search);
然后在文件里面添加page5()方法,如下:
//分页函数
function page5($num,$line,$page_line,$start,$page,$search){
    global $fun_r;
    if($num<=$line)
    {
        return '';
    }
    $search=RepPostStr($search,1);
    //分割
    $sarr = explode('&',$search);
    for($i=0;$i         $s = explode('=',$sarr[$i]);
        if($s[0]=='kj'){
            $wurl[0] = $s[1];
        }elseif($s[0]=='jb'){
            $wurl[1] = $s[1];
        }elseif($s[0]=='fg'){
            $wurl[2] = $s[1];
        }elseif($s[0]=='orderby'){
            $wurl[3] = $s[1];
        }
    }
$aaa=explode('=',$sarr[1]);
    if($aaa[1]=='102'||$aaa[1]=='103'){
        $isq = 1;
    }else{
        $isq = 0;
    }
    $wurl[3]="onclick";
    $wjurl =$wurl[0].'-'.$wurl[1].'-'.$wurl[2].'-'.$wurl[3];
    $url=eReturnSelfPage(0).'?page';
    $snum=2;
    $totalpage=ceil($num/$line);
    $firststr=' '.$num.'   ';

    if($page<>0)
    {
        if($isq==0){
        $toppage=''.$fun_r['startpage'].' ';
        $pagepr=$page-1;
        $prepage=''.$fun_r['pripage'].'';
        }else{
        $toppage=''.$fun_r['startpage'].' ';
        $pagepr=$page-1;
        $prepage=''.$fun_r['pripage'].'';
        }
    }

    if($page!=$totalpage-1)
    {
        if($isq==0){
        $pagenex=$page+1;
        $nextpage=' '.$fun_r['nextpage'].'';
        $lastpage=' '.$fun_r['lastpage'].'';
        }else{
        $pagenex=$page+1;
        $nextpage=' '.$fun_r['nextpage'].'';
        $lastpage=' '.$fun_r['lastpage'].'';
        }
    }
    $starti=$page-$snum<0?0:$page-$snum;
    $no=0;
    for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
    {
        $no++;
        if($page==$i)
        {
            $is_1="";
            $is_2="
";
        }
        else
        {
            if($isq==0){
            $is_1='';
            $is_2="
";
            }else{
            $is_1='';
            $is_2="
";
            }
        }
        $pagenum=$i+1;
        $returnstr.=" ".$is_1.$pagenum.$is_2;
    }
    $returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;
    return $returnstr;
}

//注意,方法里面的字段名字要一一对应的

范围类筛选项伪静态,符号如"-"与伪静态冲突的时候,在ListInfo.php中做如下替换:
找到$andval=$_GET[$andr[$i]];
在下面加上:        if($andr[$i]=='mj')
            $andval = str_replace('_','-',$andval);

你可能感兴趣的:(帝国CMS,cms,PHP,帝国cms,筛选)