分享好友 文章首页 文章分类 切换频道

destoon教程之列表页实现自定义筛选

2020-03-182140

任何页面实现自定义筛选,不二开内核文件,全部在模板中实现,不影响升级,不使用搜索功能。

首页在页头引入jquery.min.js 文件,默认的模板是有这个的。如果不是默认的模板,也没这个文件,请去下载个。


然后在筛选的页面引入以下JS代码:

<script>
function getQueryString(){
var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));
if(result == null){
return "";
}
for(var i = 0; i < result.length; i++){
result[i] = result[i].substrin(1);
}
return result;
}

function goSort(name,value){
var string_array = getQueryString();
var oldUrl = (document.URL.indexOf("index.php")==-1)?document.URL+"index.php":document.URL;
var newUrl;
if(string_array.length>0)//如果已经有筛选条件
{ var repeatField = false;
for(var i=0;i<string_array.length;i++){
if(!(string_array[i].indexOf(name)==-1)){
repeatField = true;//如果有重复筛选条件,替换条件值
newUrl = oldUrl.replac(string_array[i],name+"="+value);
}
}

//如果没有重复的筛选字段
if(repeatField == false){
newUrl = oldUrl+"&"+name+"="+value;
}

}else{//如果还没有筛选条件
newUrl = oldUrl+"?"+name+"="+value;
}

//跳转
window.location = newUrl;
}


function setSelected(name,value){
var all_li = $("#"+name).find("a");
//清除所有a标签的now类
all_li.each(function(){
$(this).removeClass("now");
});
//为选中的a增加now类
all_li.eq(value).addClass("now");
}

$(document).ready(function(){
var string_array = getQueryString();
for(var i=0;i<string_array.length;i++){
var tempArr = string_array[i].split("=");
setSelected(tempArr[0],tempArr[1]);//设置选中的筛选条件
}
});
</script>


然后在模板中引入条件语句,这下面的是筛选条件,看不懂的先学学,参考修改。

{php $condition = "status=3";}
{php $dmode = array('',1=>" and price=0",2=>" and price>0");}
{php $dcatid = array('',1=>" and catid=10",2=>" and catid=11");}
{php $dprice = array('',1=>" and price<1001",2=>" and price>1000 and price<2000",
3=>" and price>2001 and price<3000",4=>" and price>3001 and price<5000",5=>" and and price>5001 and price<10001",6=>" and price>10000");}
{php $order = isset($order) ? intval($order) : 0;}
{php $mode = isset($mode) ? intval($mode) : 0;}
{php $dorder = array('addtime desc','price desc','hits desc');}
{php $condition.= $dmode[$mode];}
{php $condition.= $dcatid[$catid];}
{php $condition.= $dprice[$price];}
{php $condition.=" order by $dorder[$order]";}


筛选模板,仅供参考

<div class="left j-left wfs fz12">
<h3 class="template">收费模式<span class="hide-left j-hide-left" style=""><i></i></span></h3>
<div class="icons j-icons wfs" id="mode">
<a class="now" href="java script:goSort('mode',0);">全部</a>
<a href="java script:goSort('mode',1);">商业模板</a>
<a href="java script:goSort('mode',2);">免费模板</a>
</div>
<h3 class="template">模板类型<span class="hide-left j-hide-left" style=""><i></i></span></h3>
<div class="icons j-icons wfs" id="catid">
<a class="now" href="java script:goSort('catid',0);">全部</a>
<a href="java script:goSort('catid',1);">平台型</a>
<a href="java script:goSort('catid',2);">小众型</a>
</div>
<h3 class="template">价格<span class="hide-left j-hide-left" style=""><i></i></span></h3>
<div class="icons j-icons wfs price" id="price">
<li> <a class="now" href="java script:goSort('price',0);">全部</a></li>
<li> <a href="java script:goSort('price',1);">1000以下</a></li>
<li><a href="java script:goSort('price',2);">1000-2000</a></li>
<li> <a href="java script:goSort('price',3);">2000-3000</a></li>
<li> <a href="java script:goSort('price',4);">3000-5000</a></li>
<li> <a href="java script:goSort('price',5);">5000-10000</a></li>
<li> <a href="java script:goSort('price',6);">10000以上</a></li>
</div>

</div>

</div>

<div class="right j-right" style="margin-left: 300px;">
<div class="sort wfs">
<div style="float:left;">
<span style="margin-left:45px; float:left; padding-top:5px; font-size:12px;">排序:</span>

<span class="sort-icons j-sort-icons" id="order">
<a class="now" rel="nofollow" href="java script:goSort('order',0);">新品</a>
<a rel="nofollow" href="java script:goSort('order',1);">价格</a>
<a rel="nofollow" href="java script:goSort('order',2);">热销</a>
</span>

</div>

</div>


循环语句中&condition=后面加入上$condition

举报
收藏 0
打赏 0
评论 0
destoon去掉图集默认无图图标
怎样去除图集中默认的无图图片呢,非常简单,打开include/module.func.php,第244行while($i++5) {改成while($i++0) {即可。

0评论2021-06-21350

destoon调用会员商铺二级分类
下面以destoon7.0商铺产品分类做示例:!--{php$tags=tag(table=typecondition=item='product-.$userid.'pagesize=8order=listorderasc,typeiddesctemplate=null);}--{loop$tags$i$t}{if$i7}liahref={userurl

0评论2020-09-30401

destoon商铺调用标题文字长度
destoon商铺在调用产品标题的时候很多时候会调用到标题,但是标题有长有短,为了布局好看,通常都要统一标题进行设置!用CSS有时候不好控制,所以我们只好在调用标题的时候,直接固定写死,想调用几个字就几个字,调

0评论2020-07-31268

destoon系统升级指南
Destoon B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可

0评论2020-06-28386

destoon如何在首页调用会员商铺图片和内容
我们很多时候在用destoon编辑网站时,很多情况下都需要调用会员商铺的内容到首页,这样才能客观的宣传网站的情况!而这时候我们就需要调用,话不多说,下边就是小编亲测的效果会员名称调用如下:!--{php $tags=tag(mo

0评论2020-06-28399

destoo模板目录和商铺页面相对应的中文
话不多说,直接上图,本文以destoon高端模板为例 模块名称目录名称备注整理员资讯模块article品牌模块brand求购模块buy片段目录chip用于放扩展文件城市分站city城市分站首页模板商圈模块club公司模块company下载模块

0评论2020-06-09228

destoon调用广告位位下的所有广告代码
destoon模板如何调用独立的广告ID下的所有图片,在网站上无论哪个位置都可以调用!代码如下!--{php$xiaohei=tag(table=adcondition=status=3andpid=25andtotime$DT_TIMEareaid=$cityidpagesize=6order=listorder

0评论2020-06-08472

destoon标签字符串的定义
随着b2b的高速发展,很多购物网站改用更为专业的destoon模板系统,随之而来的也是越来越多的客户群体,但是对于初学者来说,destoon的标签字符串调用规则很多同学难以理解,今天小编特意整理了一下,标签字符串的定

0评论2020-06-08230

destoon商铺中为友情链接增加nofollow标签
在模板管理-公司主页-友情链接修改默认路径为template/default/homepage/link.htm,修改td width=33%a href={$v[linkurl]} target=_blank{$v[title]}/a/td为td width=33%a href={$v[linkurl]} rel=nofollowtarget=_b

0评论2020-05-20175

Destoon添加供应内容时如何过滤手机号?
在我们为供应模板添加供应内容的时候,有时候我们不想把手机号码显示出来,增加不必要的麻烦,下面是我以供应模板为例的修改方法打开要目录文件sell/sell.class.php,找到“function add($post) { ” 字断然后在大概1

0评论2020-05-19217