苹果cms教程

苹果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传参实现动态数据筛选,支持单条件或多条件叠加组合,所有参数均可自由搭配,适配各类精细化筛选场景。

参数示例值是否必填参数说明
id1是演员分类ID,为筛选功能核心必填参数,锁定当前筛选分类
sex女否根据演员性别筛选数据,支持男、女两种参数值
bloodB型否根据演员血型筛选数据,适配已录入血型数据的演员资料
starsign处女座否按照演员星座信息进行数据筛选
letterH否根据演员姓名首字母筛选,适配字母检索功能
area中国否根据演员所属地区筛选,适配多地区演员分类展示
orderdesc否数据排序方式,desc为倒序、asc为正序
bytime否自定义排序依据,支持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条数据,开启分页功能并绑定演员筛选专属路由,保障分页跳转路径准确无误,默认按照数据添加时间倒序展示内容。

  • 数据渲染规则:列表循环自动调取演员头像、姓名、备注信息等常用字段,通过系统内置链接函数自动生成标准化演员详情页链接,无需手动配置路径参数。