苹果cms视频筛选调用教程
发布时间:2025-04-06共12人阅读
在苹果CMS V10中,视频筛选页面主要用于按照分类、地区、语言、年份、推荐等级、首字母、审核状态、Tag和扩展分类等条件筛选视频内容。
默认的视频筛选模板文件为:
html/vod/show.html
该页面对应的 aid 值为 12,当前分类数据主要通过 $obj 数组获取。如果需要进一步调用分类名称、扩展分类等字段,可以结合分类字段进行使用。
一、视频筛选页面的基本信息
模板文件:
html/vod/show.html页面AID:
12当前分类数组:
$obj筛选参数:
$param
其中,$obj主要表示当前视频分类的信息,而 $param 用于获取当前URL中已经传入的视频筛选条件。
二、苹果CMS V10视频筛选URL参数
视频筛选页面可以通过URL传递多个参数,实现不同条件组合筛选。常见参数如下:
| 参数 | 示例值 | 必有参数 | 参数说明 |
|---|---|---|---|
id | 1 | 是 | 视频分类ID |
area | 大陆 | 否 | 地区筛选 |
lang | 国语 | 否 | 语言筛选 |
year | 2019 | 否 | 年份筛选 |
level | 9 | 否 | 推荐等级筛选 |
letter | A | 否 | 首字母筛选 |
state | 1 | 否 | 审核状态筛选 |
tag | 国产大片 | 否 | Tag标签筛选 |
class | 科幻片 | 否 | 扩展分类、类型筛选 |
order | desc | 否 | 正序或倒序 |
by | time | 否 | 排序依据 |
by 参数默认可以使用 id、time、time_add、score、hits、hits_day、hits_week、hits_month、up、down、level、rnd、in 等排序字段。
三、视频筛选URL示例
多个筛选条件可以组合到同一个URL中。例如下面的地址同时包含分类、地区、排序、类型、语言、首字母和年份等条件:
/index.php/vodshow/1/area/大陆/by/time/class/科幻/lang/国语/letter/A/year/2020.html
通过这种方式,用户访问不同的URL时,就可以得到对应条件下的视频列表。
四、如何获取当前筛选参数
苹果CMS V10的视频筛选页面可以通过 $param 数组获取当前筛选条件。
例如获取当前选择的地区:
{$param['area']}同理,还可以获取其他参数:
{$param['class']}
{$param['lang']}
{$param['year']}
{$param['level']}
{$param['letter']}
{$param['state']}
{$param['tag']}
{$param['order']}
{$param['by']}在制作筛选导航时,这些参数非常重要,因为生成新的筛选链接时,需要保留其他已经选择的条件,否则点击某一个筛选项目后,之前的筛选条件可能会被重置。
五、制作视频高级筛选条件
苹果CMS V10可以使用 mac_url_type() 根据当前分类和筛选参数生成对应的筛选URL。
例如下面是一个基础的类型筛选结构:
<div class="ui-box filter-focus">
<div class="ui-title">
<h3>{$obj.type_name} - 高级搜索</h3>
</div>
<div class="ui-cnt">
<div class="filter-list fn-clear">
<h5>类型:</h5>
<ul>
<li>
<a {if condition="$param['class'] eq ''"} class="current" {/if}
href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>'','order'=>$param['order'],'by'=>$param['by'] ],'show')}">全部</a>
</li>
{empty name="$obj.type_extend.class"}
{maccms:foreach name=":explode(',',$obj.parent.type_extend.class)" id="vo2" key="key2"}
<li>
<a {if condition="$param['class'] eq $vo2"} class="current" {/if}
href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$vo2,'order'=>$param['order'],'by'=>$param['by'] ],'show')}">{$vo2}</a>
</li>
{/maccms:foreach}
{else /}
{maccms:foreach name=":explode(',',$obj.type_extend.class)" id="vo2" key="key2"}
<li>
<a {if condition="$param['class'] eq $vo2"} class="current" {/if}
href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$vo2,'order'=>$param['order'],'by'=>$param['by'] ],'show')}">{$vo2}</a>
</li>
{/maccms:foreach}
{/empty}
</ul>
</div>
</div>
</div>这里的核心逻辑是通过 $param 保留当前已经选择的其他条件,仅修改当前正在操作的筛选参数。
六、地区、语言和年份筛选
地区、语言和年份的实现方式与类型筛选基本相同,主要区别在于修改的参数不同。
例如地区筛选,可以将新的地区值传递给 mac_url_type():
{maccms:foreach name=":explode(',',$obj.type_extend.area)" id="vo2" key="key2"}
<li>
<a {if condition="$param['area'] eq $vo2"} class="current" {/if}
href="{:mac_url_type($obj,['area'=>$vo2,'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$param['class'],'order'=>$param['order'],'by'=>$param['by'] ],'show')}">{$vo2}</a>
</li>
{/maccms:foreach}语言和年份筛选同理,只需要将对应的 lang 或 year 参数替换成当前循环值即可。
七、首字母筛选
首字母筛选可以通过 A-Z 以及 0-9 对视频名称首字母进行筛选。
{maccms:foreach name=":explode(',', 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0~9')" id="vo2" key="key2"}
<li>
<a {if condition="$param['letter'] eq $vo2"} class="current"{/if}
href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$vo2,'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$param['class'],'order'=>$param['order'],'by'=>$param['by'] ],'show')}">{$vo2}</a>
</li>
{/maccms:foreach}八、视频列表排序方式
筛选条件之外,还可以给用户提供不同的排序方式,例如按照时间、人气和评分排序。
<div class="fn-clear">
<div class="view-filter">
<a href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$param['class'],'order'=>$param['order'],'by'=>'time'],'show')}"
class="order {if condition="$param.by eq '' || $param.by eq 'time'"}current{/if}">按时间</a>
<a href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$param['class'],'order'=>$param['order'],'by'=>'hits'],'show')}"
class="order {if condition="$param.by eq 'hits'"}current{/if}">按人气</a>
<a href="{:mac_url_type($obj,['area'=>$param['area'],'lang'=>$param['lang'],'year'=>$param['year'],'level'=>$param['level'],'letter'=>$param['letter'],'state'=>$param['state'],'tag'=>$param['tag'],'class'=>$param['class'],'order'=>$param['order'],'by'=>'score'],'show')}"
class="order {if condition="$param.by eq 'score'"}current{/if}">按评分</a>
</div>
</div>这里通过修改 by 参数实现不同的排序方式,同时利用 $param.by 判断当前使用的排序方式,并添加 current 样式。
九、获取当前筛选结果列表
筛选条件设置完成后,可以通过 {maccms:vod} 标签调用当前分类下的视频列表。
{maccms:vod num="20" paging="yes" pageurl="vod/show" type="current" order="desc" by="time"}
<li>
<a href="{:mac_url_vod_detail($vo)}" title="{$vo.vod_name}">
<img src="{:mac_url_img($vo.vod_pic)}" alt="{$vo.vod_name}"/>
<h2>{$vo.vod_name}</h2>
<p>{$vo.vod_actor}</p>
<i>{$vo.vod_remarks}</i>
</a>
</li>
{/maccms:vod}上面的代码一次获取20条视频数据,并开启分页,同时使用当前筛选分类的数据作为列表内容。
十、苹果CMS V10筛选模板代码中的注意事项
在使用网上提供的筛选模板代码时,需要特别检查模板标签是否完整。原始示例中有一处首字母筛选代码出现了多余的 {/if},以及列表结束标签写法不完整的问题。如果直接复制,可能导致模板解析异常。
例如类似下面的结构:
{if condition="$param['letter'] eq $vo2"} class="current"{/if} {/if}正常情况下只需要保留一个对应的条件结束标签:
{if condition="$param['letter'] eq $vo2"} class="current"{/if}另外,HTML列表标签也应注意保持成对闭合,例如 <li> 应对应 </li>,否则可能影响页面结构和CSS样式。
总结
苹果CMS V10的视频筛选页面主要围绕 html/vod/show.html 展开,核心数据包括当前分类 $obj 和筛选参数 $param。
通过 id、area、lang、year、class、letter 等参数,可以组合出不同的视频筛选URL;再配合 mac_url_type()、{maccms:vod} 等标签,就可以完成高级筛选、排序以及筛选结果列表的完整功能。
制作苹果CMS V10筛选模板时,建议尽量保留已有筛选参数,仅修改当前正在操作的参数,这样可以实现多条件组合筛选,并避免用户选择一个条件后其他条件被重置。
