Screen筛选标签
screen筛选标签实现了自定义字段的单选、多选的筛选。
相关视频
https://www.bilibili.com/video/av74627286/
{screen molds="product" orderby="orders desc" as="s"}
自定义字段名字:{$s['fieldname']}
自定义字段选项输出:
默认全部/全选:
对应链接:{$s['url']}
判断选中:{if(!isset($filters[$s['field']]))}选中全部{/if}
对应值为:0
{foreach $s['list'] as $ss}
*每个选项链接:{$ss['url']}
每个选项字段:{$s['field']}
每个选项名称:{$ss['value']}
每个选项对应的值:{$ss['key']}
判断是否已选:
{if(isset($filters[$s['field']]) && strpos(','.$filters[$s['field']].',',','.$ss['key'].',')!==false)}
这里写选中时的标识
{/if}
{/foreach}
{/screen}
注意事项:每个选项链接存在缺省值,如果本次点击的字段与上一次点击的字段不相同,那么默认记录上一次选择的选项,相当于二次筛选。如果清空上一次筛选,则需要点击栏目链接,进行全部筛选条件清空。
任何页面输出筛选
<!--添加代码内容-->
<!--需要制定栏目ID,如下假设栏目id=1有筛选,则写$classtypedata[1],以此类推-->
{if(!isset($type))}
{php $type = $classtypedata[1];$filters = [];/}
{/if}
{screen molds="product" orderby="orders desc" as="s"}
自定义字段名字:{$s["fieldname"]}
自定义字段选项输出:
默认全部/全选:
对应链接:{$s["url"]}
判断选中:{if(!isset($filters[$s["field"]]))}选中全部{/if}
对应值为:0
{foreach $s["list"] as $ss}
*每个选项链接:{$ss["url"]}
每个选项字段:{$s["field"]}
每个选项名称:{$ss["value"]}
每个选项对应的值:{$ss["key"]}
判断是否已选:
{if(isset($filters[$s["field"]]) && strpos(",".$filters[$s["field"]].",",",".$ss["key"].",")!==false)}
这里写选中时的标识
{/if}
{/foreach}
{/screen}
排除个别筛选字段
假设不输出
abc
和aaa
这两个筛选字段
{screen molds="product" orderby="orders desc" as="s"}
//此处加入判断
{if($s['field']!='aaa' && $s['field']!='abc')}
自定义字段名字:{$s['fieldname']}
自定义字段选项输出:
默认全部/全选:
对应链接:{$s['url']}
判断选中:{if(!isset($filters[$s['field']]))}选中全部{/if}
对应值为:0
{foreach $s['list'] as $ss}
*每个选项链接:{$ss['url']}
每个选项字段:{$s['field']}
每个选项名称:{$ss['value']}
每个选项对应的值:{$ss['key']}
判断是否已选:
{if(isset($filters[$s['field']]) && strpos(','.$filters[$s['field']].',',','.$ss['key'].',')!==false)}
这里写选中时的标识
{/if}
{/foreach}
{/if}
{/screen}
输出选中的条件
很多页面选中的条件都会写到页面上,如:
选中: 红色 > 春夏装 > 连衣裙子
选中:
{screen molds="product" orderby="orders desc" as="s"}
{foreach $s['list'] as $ss}
{if(isset($filters[$s['field']]) && strpos(','.$filters[$s['field']].',',','.$ss['key'].',')!==false)}
{$ss['value']} >
{/if}
{/foreach}
{/screen}
取消选中某项筛选
需要在封装HTML的时候就设定好,加上链接
样式:选择: 红色[取消×] > 春夏装[取消×] > 连衣裙[取消×]
选中:
{screen molds="product" orderby="orders desc" as="s"}
{foreach $s['list'] as $ss}
{if(isset($filters[$s['field']]) && strpos(','.$filters[$s['field']].',',','.$ss['key'].',')!==false)}
{$ss['value']}<a href="{$s['url']}"><span>取消×</span></a> >
{/if}
{/foreach}
{/screen}