苹果CMS演员筛选页面多条件筛选功能开发与配置教程
发布时间:2026-03-28共12人阅读
一、演员筛选页面基础属性
苹果CMS演员模块支持属性、地区、星座、排序等多条件复合筛选,适合制作演员大全、明星图鉴、分类筛选页面,页面拥有独立模板文件与专属调用标识。
模板路径:
html/actor/show.html页面ID:82,模板中可通过
{$maccms.aid}直接调用筛选页面链接生成标签:
{:mac_url_type(['type_id'=>12],['by'=>'hits'],'show')}字段支持:页面可正常调用所有演员字段与分类字段,可结合字段拓展筛选维度
二、演员筛选URL参数详解
演员筛选页面依靠URL传参实现动态数据筛选,支持单条件或多条件叠加组合,所有参数均可自由搭配,适配各类精细化筛选场景。
| 参数 | 示例值 | 是否必填 | 参数说明 |
|---|---|---|---|
| id | 1 | 是 | 演员分类ID,为筛选功能核心必填参数,锁定当前筛选分类 |
| sex | 女 | 否 | 根据演员性别筛选数据,支持男、女两种参数值 |
| blood | B型 | 否 | 根据演员血型筛选数据,适配已录入血型数据的演员资料 |
| starsign | 处女座 | 否 | 按照演员星座信息进行数据筛选 |
| letter | H | 否 | 根据演员姓名首字母筛选,适配字母检索功能 |
| area | 中国 | 否 | 根据演员所属地区筛选,适配多地区演员分类展示 |
| order | desc | 否 | 数据排序方式,desc为倒序、asc为正序 |
| by | time | 否 | 自定义排序依据,支持id、time、time_add、score、hits、hits_day、hits_week、hits_month、up、down、level、rnd、in |
三、多维度筛选导航与结果列表完整代码
以下完整代码整合性别、地区、星座、热门排序四大筛选维度,自带筛选条件联动保留、选中状态高亮、条件重置功能,适配ID为12的演员分类,可直接用于模板部署。
<!-- 演员筛选导航模块 分类ID固定为12 -->
<div class="common-action">
<ul class="channel-type">
<li class="type-item"><span class="type-tip">性别:</span>
<div class="type-title {if condition="$param['sex'] eq ''"} cur {/if}">
<a href="{:mac_url('actor/show',['id'=>actor_id(),'area'=>$param['area'],'sex'=>'','blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter']])}">全部</a>
</div>
<div class="show">
<ul class="item-list">
{maccms:foreach name=":explode(',','男,女')" key="key2"}
<li class="item {if condition="$param['sex'] eq $vo2"} cur {/if }"><a href="{:mac_url('actor/show',['id'=>actor_id(),'area'=>$param['area'],'sex'=>$vo2,'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter']])}">{$vo2}明星</a></li>
{/maccms:foreach}
</ul>
</div>
</li>
<li class="type-item"><span class="type-tip">地区:</span>
<div class="type-title {if condition="$param['area'] eq ''"} cur {/if}">
<a href="{:mac_url('actor/show',['id'=>12,'area'=>'','sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter']])}">全部</a>
</div>
<div class="show">
<ul class="item-list">
{maccms:foreach name=":explode(',','内地,中国香港,中国台湾,泰国,印度,俄罗斯,日本,韩国,美国,英国,德国,法国,西班牙,新西兰')" key="key2"}
<li class="item{if condition="$param['area'] eq $vo2"} cur {/if }"><a href="{:mac_url('actor/show',['id'=>12,'area'=>$vo2,'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter']])}">{$vo2}</a></li>
{/maccms:foreach}
</ul>
</div>
</li>
<li class="type-item">
<span class="type-tip">星座:</span>
<div class="type-title {if condition="$param['year'] eq ''"} cur{/if}">
<a href="{:mac_url('actor/show',['id'=>12,'area'=>$param['area'],'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>'','letter'=>$param['letter']])}">全部</a>
</div>
<div class="show">
<ul class="item-list ">
{maccms:foreach name=":explode(',','白羊座,金牛座,双子座,巨蟹座,狮子座,处女座,天秤座,天蝎座,射手座,摩羯座,水瓶座,双鱼座')" key="key2"}
<li class="item {if condition="$param['starsign'] eq $vo2"} cur{/if}"><a href="{:mac_url('actor/show',['id'=>12,'area'=>$param['area'],'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$vo2,'letter'=>$param['letter']])}">{$vo2}</a></li>
{/maccms:foreach}
</ul>
</div>
</li>
</ul>
<ul class="check-area">
<a class="check-item" href="{:mac_url('actor/show',['id'=>12,'area'=>$param['area'],'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter'],'by'=>'time'])}">
<span {if condition="$param.by eq '' || $param.by eq 'time'"}class="checked"{/if}></span><label>最新</label>
</a>
<a class="check-item" href="{:mac_url('actor/show',['id'=>12,'area'=>$param['area'],'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter'],'by'=>'hits'])}">
<span {if condition="$param.by eq 'hits'"}class="checked"{/if}"></span> <label>最热</label>
</a>
<a class="check-item" href="{:mac_url('actor/show',['id'=>12,'area'=>$param['area'],'sex'=>$param['sex'],'blood'=>$param['blood'],'starsign'=>$param['starsign'],'letter'=>$param['letter'],'by'=>'up'])}">
<span {if condition="$param.by eq 'up'"}class="checked"{/if}"></span> <label>好评</label>
</a>
</ul>
</div>
<!-- 筛选结果列表渲染 -->
{maccms:actor num="35" paging="yes" pageurl="actor/show" order="desc" by="time"}
<li class="m-item">
<a href="{$vo|mac_url_actor_detail}" title="{$vo.actor_name}">
<img src="{$vo.actor_pic|mac_url_img}" />
<h5>{$vo.actor_name}</h5>
<p>{$vo.actor_remarks}</p>
</a>
</li>
{/maccms:actor}
<!-- 通用分页组件 -->四、筛选功能运行机制说明
多条件联动保留:各个筛选维度相互独立且联动生效,切换单一筛选条件时,会自动保留用户已选择的其他筛选参数,实现多条件叠加精准筛选,点击对应维度的“全部”选项即可重置当前筛选条件。
选中状态高亮:代码内置参数判断逻辑,可自动识别用户当前选中的筛选标签与排序方式,并添加高亮样式,清晰展示当前筛选状态,优化页面交互体验。
列表参数配置:筛选结果列表默认单页展示35条数据,开启分页功能并绑定演员筛选专属路由,保障分页跳转路径准确无误,默认按照数据添加时间倒序展示内容。
数据渲染规则:列表循环自动调取演员头像、姓名、备注信息等常用字段,通过系统内置链接函数自动生成标准化演员详情页链接,无需手动配置路径参数。
