如何用 主栏目 和 副栏目 构造筛选器 迅睿框架 更新 2026-09-14 19:04:29 耗子舞 共享栏目 A 下面有 子栏目 a1,a2,a3,a4 , 作为文章的主栏目单选共享栏目 B 下面 有 子栏目 b1,b2,b3,b4, 做为文章的副栏目多选 如何用 a 栏目 和 b 栏目 构造筛选器??
主栏目A: a1 a2 a3副栏目B: b1 b2 b3 b4联动菜单C: c1 c2 c3 c4联动菜单D: d1 d2 d3 d4---------文章列表-------------文章1文章2文章3。。。。。。-------------------------分页 12345678
单独 联动菜单+主栏目, 联动菜单+副栏目 我都解决可以了, 要想 主栏目+副栏目+ 联动菜单 一起筛选,就不行了
{php} $current_page = (int)\Phpcmf\Service::L('input')->get('page'); if ($current_page < 1) $current_page = 1; $page_size = 70; $sn = ($current_page - 1) * $page_size + 1; {/php}
{search module=MOD_DIR id=$searchid total=$sototal order=$params.order ztld=$ztld_search catid=$params.catid catids=$catids page=1 pagesize=70 urlrule=$urlrule}
<!-- 筛选条件 --> <!-- 栏目转态 --> <div class="d-flex flex-stack"> <div class="d-flex align-items-center w-100 flex-wrap"> <a class="btn btn-sm {if !$cat || $cat.child}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catid', $parent.id)}">全部</a> {loop $related $t} {if $t.tid==1 && $t.mid==MOD_DIR} <a class="btn btn-sm {if $t.id==$cat.id}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catid', $t.id)}">{$t.name}</a> {/if} {/loop} </div> </div> <div class="separator separator-dashed my-3"></div> <!-- ================= 专题联动================ --><div class="d-flex flex-stack"> <div class="d-flex align-items-center w-100 flex-wrap"> <!-- “全部”按钮 --> <a class="btn btn-sm {if !$params.catids}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catids', NULL)}">全部</a>
<!-- 循环副栏目的直接子栏目(pid=29) --> {category module=cangpin pid=29 return=c1} {php $isActive = false;} <!-- 生成该栏目的子栏目列表(仅对需要递归的父级) --> {php $child_ids_str = '';} {if in_array($c1.id, [31, 45])} {php $child_ids = [];} {category module=cangpin pid=$c1.id return=child} {php $child_ids[] = $child.id;} {/category} {php $child_ids_str = implode(' | ', $child_ids);} {/if}
<!-- 高亮判断逻辑 --> <!-- 1. 自身 ID 匹配 --> {if $c1.id == $params.catids} {php $isActive = true;} <!-- 2. 点击父级时,URL 中等于该父级的子栏目列表 --> {elseif $child_ids_str && $params.catids == $child_ids_str} {php $isActive = true;} <!-- 3. 点击子栏目时,检查是否属于该父级 --> {elseif $child_ids_str} {category module=cangpin pid=$c1.id return=sub} {if $sub.id == $params.catids} {php $isActive = true;} {/if} {/category} {/if}
<!-- 生成链接 --> {if in_array($c1.id, [31, 45])} <a class="btn btn-sm {if $isActive}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catids', $child_ids_str)}">{$c1.name}</a> {else} <a class="btn btn-sm {if $isActive}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catids', $c1.id)}">{$c1.name}</a> {/if}
<!-- 子栏目展开 --> {if $isActive && $c1.child} <div class="d-flex align-items-center flex-wrap mt-2 p-2 bg-light rounded" style="width:100%;"> {category module=cangpin pid=$c1.id return=c2} <a class="btn btn-sm {if $c2.id == $params.catids}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{Router::search_url($params, 'catids', $c2.id)}" style="color:#888;"> {$c2.name} </a> {/category} </div> {/if} {/category} </div></div><div class="separator separator-dashed my-3"></div>
<!-- 分类 --> <div class="d-flex flex-stack"> <div class="d-flex align-items-center w-100 flex-wrap"> <a class="btn btn-sm {if !$params.fenlei || dr_linkage('cpclass', $params.fenlei, 0, 'child')}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'fenlei', NULL, 'cangpin')}">全部</a> {linkage code=cpclass pid=$params.fenlei} <a class="btn btn-sm {if $t.id==$params.fenlei}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'fenlei', $t.id, 'cangpin')}">{$t.name}</a> {/linkage} </div> </div> <div class="separator separator-dashed my-3"></div>
<!-- 来源 --> <div class="d-flex flex-stack"> <div class="d-flex align-items-center w-100 flex-wrap"> <a class="btn btn-sm {if !$params.source || dr_linkage('cpsource', $params.source, 0, 'child')}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'source', NULL, 'cangpin')}">全部</a> {linkage code=cpsource pid=$params.source} <a class="btn btn-sm {if $t.id==$params.source}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'source', $t.id, 'cangpin')}">{$t.name}</a> {/linkage} </div> </div> <div class="separator separator-dashed my-3"></div>
<!-- 库位 --> <div class="d-flex flex-stack"> <div class="d-flex align-items-center w-100 flex-wrap"> <a class="btn btn-sm {if !$params.location || dr_linkage('cplocation', $params.location, 0, 'child')}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'location', NULL, 'cangpin')}">全部</a> {linkage code=cplocation pid=$params.location} <a class="btn btn-sm {if $t.id==$params.location}btn-primary{else}btn-outline-secondary{/if} fw-bold mx-2 my-2" href="{dr_search_url($params, 'location', $t.id, 'cangpin')}">{$t.name}</a> {/linkage} </div> </div> <div class="separator separator-dashed my-3"></div>