实现多条件的筛选,下载帝国官方给出的插件,然后再在数据库表新建字段
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;
}
这是评论测试
飞歌导航东方红烦得很
这是新的一条评论
未来一年,中国的移动支付市场会是什么样?