帝国cms结合项如何实现多条件查询帝国cms结合项如何实现多条件查询

生命不息,
折腾不止!

帝国cms结合项如何实现多条件查询

实现多条件的筛选,下载帝国官方给出的插件,然后再在数据库表新建字段

1、下载插件

https://pan.baidu.com/s/1KldzKOYFXwm9VysUTn8NrQ

本地下载:帝国CMS-结合项列表属性筛选显示.zip (13.82 KB)

2、打开“fieldand.txt”文件,将文件里的所有内容复制到  /e/class/userfun.php  文件里(放在 <?php 和 ?> 之间任意位置);

3、 函数参数设置

4、增加字段

 

修改模型

效果如图:

增加列表模板

 

 

 

新增加的栏目记得勾选动态列表,刷新栏目后

 

拓展阅读:

帝国CMS系统结合项图文教程

http://www.phome.net/doc/manual/editor/html/fieldand.html

 

帝国cms结合项url参数优化

http://www.520am.com/forum/thread-16-401-0-0.html

 

帝国官方结合项如果同一个字段不同值点击两次以上url就会出现重复的参数,当然对功能是没有影响的,感觉不大美观!

优化前:
/e/action/ListInfo.php?&classid=19&orderby=psalenum&myorder=1&ph=1&classid=19&pbrand=27&orderby=psalenum&myorder=1&myorder=1

优化后:
/e/action/ListInfo.php?classid=19&orderby=psalenum&myorder=1&ph=1&pbrand=27

优化后是不是感觉清爽了很多

 

优化方法:

在官方的结合项的函数方法 echo $allstr; 这行代码的前面插入以下代码即可:

//新增代码---jimmy.start-----
preg_match_all ('/<a href=\"(.*?)\".*?>(.*?)<\/a>/i',$allstr,$matches);
        for($i=0;$i<count($matches[1]);$i++){
                 $url = $matches[1][$i];
                 $parts = parse_url($url);
                 $query = explode('&', $parts[query]);
                 $output=array();
                 foreach ($query as $key => $value) {
                         if($value){
                            $params = explode('=', $value);
                            if($params[0]){
                                    $output[$params[0]]=urldecode($params[1]);
                            }
                        }
                 }
  
              $newurl = $parts[path].'?'.http_build_query($output);

                 $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',  $allstr);
        }

    //新增代码---jimmy.end-----

如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把 echo $allstr; 替换成 echo beautifyUrl($allstr); 即可

function beautifyUrl($allstr){
    //新增代码---jimmy.start-----
    preg_match_all ('/<a href=\"(.*?)\".*?>(.*?)<\/a>/i',$allstr,$matches);
    for($i=0;$i<count($matches[1]);$i++){
         $url = $matches[1][$i];
         $parts = parse_url($url);
         $query = explode('&', $parts[query]);
         $output=array();
         foreach ($query as $key => $value) {
            if($value){
                $params = explode('=', $value);
                if($params[0]){
                    $output[$params[0]]=urldecode($params[1]);
                }
            }
         }
  
          $newurl = $parts[path].'?'.http_build_query($output);

         $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',  $allstr);
    }
    //新增代码---jimmy.end-----
    return  $allstr;   
}

 

赞() 打赏
未经允许不得转载:我的博客 » 帝国cms结合项如何实现多条件查询
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    这是评论测试

    DUX主题小秘7个月前 (09-17)回复
    • 飞歌导航东方红烦得很

      themebetter主题小秘3周前 (04-08)回复
  2. #2

    这是新的一条评论

    DUX主题小秘7个月前 (09-17)回复
  3. #3

    未来一年,中国的移动支付市场会是什么样?

    DUX主题小秘7个月前 (09-17)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

大前端WP主题 更专业 更方便

联系我们 联系我们