苹果CMS模板制作教程
2025-03-25 共人阅读苹果CMS模板制作教程:全局标签大全
在制作苹果CMS模板时,熟悉系统提供的全局变量、模块标签、内容字段、分页标签以及常用处理函数,可以大幅提高模板开发效率。本文整理苹果CMS模板制作过程中常用的标签和调用方法,涵盖全局标签、条件判断、友情链接、留言本、评论、分类、专题、视频、文章、分页、JS处理函数以及常用标签技巧等内容。
一、苹果CMS全局标签
全局标签可以在模板的多个页面中直接调用,主要用于获取网站基本信息、当前页面信息以及模板相关配置。
| 标签 | 说明 |
|---|---|
{$maccms.site_name} | 网站名称 |
{$maccms.site_url} | 网站 URL |
{$maccms.site_keywords} | 网站关键词 |
{$maccms.site_description} | 网站描述 |
{$maccms.site_icp} | 网站备案号 |
{$maccms.site_qq} | 站长 QQ |
{$maccms.site_email} | 站长 Email |
{$maccms.site_tj} | 网站统计代码 |
{$maccms.site_status} | 网站状态,1 开启,0 关闭 |
{$maccms.site_close_tip} | 网站关闭提示信息 |
{$maccms.path} | 网站目录 |
{$maccms.path_tpl} | 当前模板目录 |
{$maccms.search_hot} | 热门搜索词 |
{$maccms.mid} | 模块 ID,1 视频、2 文章、3 专题 |
{$maccms.aid} | 当前系统页面 ID |
二、苹果CMS常用页面 ID
| 页面 ID | 页面 |
|---|---|
| 1 | 首页 |
| 2 | 网站地图 |
| 3 | RSS |
| 4 | 留言本 |
| 5 | 评论 |
| 6 | 用户中心 |
| 7 | 自定义页面 |
| 10 | 视频首页 |
| 11 | 视频分类页 |
| 12 | 视频分类筛选页 |
| 13 | 视频搜索页 |
| 14 | 视频详情页 |
| 15 | 视频播放页 |
| 16 | 视频下载页 |
| 20 | 文章首页 |
| 21 | 文章分类页 |
| 22 | 文章分类筛选页 |
| 23 | 文章搜索页 |
| 24 | 文章详情页 |
| 30 | 专题首页 |
| 31 | 专题详情页 |
三、引入公共模板文件
苹果CMS模板支持通过 include 标签引入公共模板文件。例如,可以将网站头部、底部等公共代码单独保存,然后在其他模板页面中进行调用。
{include file="public/head"}四、条件判断 if 标签
苹果CMS模板中的 if 标签可以根据条件输出不同内容。由于 condition 属性中基本使用 PHP 条件表达式,因此在简单判断场景下,也可以结合判断标签或 Switch 标签使用,使模板代码更加简洁。
{if condition="($name == 1) OR ($name > 100)"} value1
{elseif condition="$name eq 2"/}value2
{else /} value3
{/if}五、empty 和 notempty 标签
empty 标签用于判断指定变量是否为空。
{empty name="name"}
name为空值
{/empty}如果需要判断变量已经存在并且不为空,可以使用 notempty:
{notempty name="name"}
name不为空
{/notempty}六、友情链接标签
友情链接标签用于调用网站设置的文字或图片友情链接。
常用参数:
type:友情链接类型,font表示文字链接,pic表示图片链接。num:获取友情链接数量。
{maccms:link num="2" type="pic"}
{$key} 序号
{$vo.link_name} 名称
{$vo.link_url} 地址
{$vo.link_pic} 图片
{/maccms:link}七、留言本标签
留言本标签用于调用网站留言数据。
常用参数包括:
num:获取数据条数,默认值为 10。paging:是否开启分页,例如yes。order:排序方向,例如desc、asc。by:排序依据,例如id、time。
{maccms:gbook num="10" paging="no" order="desc" by="time"}
{$key} 序号
{$vo.gbook_id} 编号ID
{$vo.gbook_name} 留言昵称
{$vo.gbook_content} 留言内容
{$vo.gbook_reply} 回复内容
{$vo.gbook_ip} 留言者IP
{$vo.gbook_time} 留言时间
{$vo.gbook_replytime} 回复时间
{/maccms:gbook}八、评论标签
评论标签用于调用网站评论数据。
{maccms:comment num="10" paging="no" order="desc" by="time"}
{$key} 排序位
{$vo.comment_id} 编号ID
{$vo.comment_name} 评论昵称
{$vo.comment_content} 评论内容
{$vo.comment_ip} 评论者IP
{$vo.comment_time} 评论时间
{$vo.childs} 回复评论项
{/maccms:comment}九、分类标签
分类标签同时适用于视频和文章模块,可以调用网站分类数据。
常用参数:
order:排列顺序,desc倒序、asc正序。by:排序依据。start:从第几条数据开始。num:获取数据条数。ids:指定分类,例如all、parent、child或指定分类 ID。flag:模块类型,视频为vod,文章为art。
{maccms:type num="10" order="asc" by="sort" ids="all"}
{$key} 序号
{$vo.type_id} 分类ID
{$vo.type_name} 分类名称
{$vo.type_enname} 分类别名
{:mac_url_type($vo)} 分类链接
{/maccms:type}十、分类页独有标签
在分类页面中,当前分类数据通常通过 $obj 获取。常用字段如下:
| 标签 | 说明 |
|---|---|
{$obj.parent} | 当前二级分类对应的一级分类对象 |
{$obj.parent.type_id} | 一级分类 ID |
{$obj.type_id} | 当前分类 ID |
{$obj.type_name} | 分类名称 |
{$obj.type_enname} | 分类别名 |
{$obj.type_sort} | 排序号 |
{$obj.type_mid} | 所属模块 |
{$obj.type_pid} | 上级分类 ID |
{$obj.type_status} | 分类状态,1 开启、0 关闭 |
{$obj.type_tpl} | 分类页模板 |
{$obj.type_tpl_list} | 筛选页模板 |
{$obj.type_tpl_detail} | 详情页模板 |
{$obj.type_tpl_play} | 播放页模板 |
{$obj.type_tpl_down} | 下载页模板 |
{$obj.type_key} | 分类关键词 |
{$obj.type_des} | 分类描述 |
{$obj.type_title} | 分类标题 |
{$obj.type_extend} | 扩展配置 JSON |
{:mac_url_type($obj)} | 当前分类链接 |
十一、专题列表标签
专题列表可以通过 maccms:topic 标签调用,并支持排序、数量、ID、时间和点击量等条件。
常用参数包括:
order:排序方向。by:排序字段。start:开始位置。num:获取数量。ids:指定专题 ID。timeadd:按添加时间筛选,例如-1 day、-1 week。timehits:按点击时间筛选。time:按更新时间筛选。hitsmonth、hitsweek、hitsday、hits:按不同时间周期点击量筛选。paging:是否开启分页。
{maccms:topic num="10" paging="no" order="asc" by="sort" ids="all"}
{$key} 序号
{$vo.topic_id} 专题ID
{$vo.topic_name} 专题名称
{$vo.topic_pic} 专题图片
{:mac_url_topic_detail($vo)} 专题详情链接
{/maccms:topic}十二、专题页独有标签
| 标签 | 说明 |
|---|---|
{$obj.topic_id} | 专题 ID |
{$obj.topic_name} | 专题名称 |
{$obj.topic_en} | 专题别名 |
{$obj.topic_sub} | 专题副标题 |
{$obj.topic_status} | 专题状态 |
{$obj.topic_sort} | 排序号 |
{$obj.topic_letter} | 首字母 |
{$obj.topic_color} | 高亮颜色 |
{$obj.topic_tpl} | 模板文件 |
{$obj.topic_type} | 扩展分类 |
{$obj.topic_pic} | 专题图片 |
{$obj.topic_pic_thumb} | 缩略图 |
{$obj.topic_pic_slide} | 幻灯图 |
{$obj.topic_key} | SEO 关键词 |
{$obj.topic_des} | SEO 描述 |
{$obj.topic_title} | SEO 标题 |
{$obj.topic_blurb} | 专题简介 |
{$obj.topic_remarks} | 备注 |
{$obj.topic_level} | 推荐值 |
{$obj.topic_up} | 顶数 |
{$obj.topic_down} | 踩数 |
{$obj.topic_score} | 平均分 |
{$obj.topic_score_all} | 总评分 |
{$obj.topic_score_num} | 总评论次数 |
{$obj.topic_hits} | 总点击量 |
{$obj.topic_hits_day} | 日点击量 |
{$obj.topic_hits_week} | 周点击量 |
{$obj.topic_hits_month} | 月点击量 |
{$obj.topic_time} | 更新时间 |
{$obj.topic_time_add} | 添加时间 |
{$obj.topic_content} | 专题详细介绍 |
{$obj.topic_extend} | 扩展配置 JSON |
{:mac_url_topic_detail($obj)} | 专题详情页链接 |
{:mac_url_topic_index()} | 专题首页链接 |
十三、剧情分类、地区、语言、年代、版本和资源标签
苹果CMS还提供了多个常用的筛选标签,可以用于制作视频筛选条件。
剧情分类标签
{maccms:class num="10" order="desc"}
{$key} 序号
{$vo.class_name} 分类名称
{$vo.class_link} 链接
{/maccms:class}地区标签
{maccms:area num="5" order="desc"}
{$key} 排序位
{$vo.area_name} 地区名称
{$vo.area_link} 链接地址
{/maccms:area}语言标签
{maccms:lang num="5" order="desc"}
{$key} 排序位
{$vo.lang_name} 语言名称
{$vo.lang_link} 链接地址
{/maccms:lang}年代标签
{maccms:year num="5" order="desc"}
{$key} 排序位
{$vo.year_name} 年代名称
{$vo.year_link} 链接地址
{/maccms:year}版本标签
{maccms:version num="5" order="desc"}
{$key} 排序位
{$vo.version_name} 版本名称
{$vo.version_link} 链接地址
{/maccms:version}资源标签
{maccms:state num="5" order="desc"}
{$key} 排序位
{$vo.state_name} 状态名称
{$vo.state_link} 链接地址
{/maccms:state}十四、苹果CMS分页标签详解
分页标签可以应用于首页、分类页、筛选页、专题首页、搜索页、文章内容页、留言本和评论等支持分页的数据列表。
使用分页时需要注意 paging="yes" 和 pageurl 参数。pageurl 用于指定当前分页类型,避免分页地址生成错误。
| 页面 | pageurl |
|---|---|
| 首页 | index/index |
| 视频分类页 | vod/type |
| 视频筛选页 | vod/show |
| 视频搜索页 | vod/search |
| 文章分类页 | art/type |
| 文章筛选页 | art/show |
| 文章搜索页 | art/search |
{maccms:vod num="10" paging="yes" pageurl="vod/type" half="3"}
{/maccms:vod}其中 half 参数用于设置显示的数字页码数量,不设置时通常使用默认值。
自定义分页调用
系统提供了 $__PAGING__ 分页变量,可以根据模板需求自定义分页样式。
<div class="mac_pages">
<div class="page_tip">共{$__PAGING__.record_total}条数据,当前{$__PAGING__.page_current}/{$__PAGING__.page_total}页</div>
<div class="page_info">
<a class="page_link" href="{$__PAGING__.page_url|mac_url_page=1}" title="首页">首页</a>
<a class="page_link" href="{$__PAGING__.page_url|mac_url_page=$__PAGING__.page_prev}" title="上一页">上一页</a>
{maccms:foreach name="$__PAGING__.page_num" id="num"}
{if condition="$__PAGING__['page_current'] eq $num"}
<a class="page_link page_current" href="javascript:;" title="第{$num}页">{$num}</a>
{else}
<a class="page_link" href="{$__PAGING__.page_url|mac_url_page=$num}" title="第{$num}页">{$num}</a>
{/if}
{/maccms:foreach}
<a class="page_link" href="{$__PAGING__.page_url|mac_url_page=$__PAGING__.page_next}" title="下一页">下一页</a>
<a class="page_link" href="{$__PAGING__.page_url|mac_url_page=$__PAGING__.page_total}" title="尾页">尾页</a>
<input class="page_input" type="text" placeholder="页码" id="page" autocomplete="off" style="width:40px">
<button class="page_btn mac_page_go" type="button" data-url="{$__PAGING__.page_url}" data-total="{$__PAGING__.page_total}" data-sp="{$__PAGING__.page_sp}">GO</button>
</div>
</div>十五、视频搜索页参数和标签
视频搜索页可以通过 $param 获取当前搜索条件。
| 参数 | 说明 |
|---|---|
wd | 视频名称或主演关键词 |
ids | 数据 ID,支持多个 ID |
letter | 首字母 |
enname | 别名 |
actor | 主演 |
director | 导演 |
area | 地区 |
lang | 语言 |
year | 上映年代 |
version | 版本 |
state | 资源类型 |
level | 推荐等级 |
tid | 分类 ID |
order | 排序方向 |
by | 排序字段 |
搜索页面独有变量:
{$param.page}:当前页码{$param.wd}:搜索关键词{$param.area}:地区{$param.lang}:语言{$param.year}:年代{$param.actor}:演员{$param.director}:导演{$param.class}:扩展分类
十六、视频列表标签
视频列表主要通过 maccms:vod 标签调用。常用筛选条件包括分类、扩展分类、标签、推荐等级、地区、语言、年代、版本以及更新时间等。
{maccms:vod num="10" paging="no" type="all" order="asc" by="sort"}
{$vo.vod_id} 视频ID
{$vo.vod_name} 视频名称
{$vo.vod_pic} 视频图片
{:mac_url_vod_detail($vo)} 视频详情链接
{/maccms:vod}常用参数包括 order、by、start、num、ids、type、class、tag、level、area、lang、year、state、version、weekday、rel、timeadd、timehits、time、hitsmonth、hitsweek、hitsday、hits、paging 和 pageurl。
十七、视频内容页独有标签
在视频详情页中,当前视频数据通常通过 $obj 调用。以下是常用视频字段:
| 标签 | 说明 |
|---|---|
{$obj.vod_id} | 视频 ID |
{$obj.type_id} | 分类 ID |
{$obj.type_id_1} | 一级分类 ID |
{$obj.type} | 视频分类对象 |
{$obj.type_1} | 一级分类对象 |
{$obj.group_id} | 用户组 ID |
{$obj.vod_name} | 视频名称 |
{$obj.vod_sub} | 副标题 |
{$obj.vod_en} | 别名 |
{$obj.vod_status} | 审核状态 |
{$obj.vod_letter} | 首字母 |
{$obj.vod_color} | 标题颜色 |
{$obj.vod_tag} | Tags |
{$obj.vod_class} | 扩展分类 |
{$obj.vod_pic} | 主图片 |
{$obj.vod_pic_thumb} | 缩略图 |
{$obj.vod_pic_slide} | 幻灯图 |
{$obj.vod_actor} | 主演 |
{$obj.vod_director} | 导演 |
{$obj.vod_writer} | 编剧 |
{$obj.vod_blurb} | 简介 |
{$obj.vod_remarks} | 备注 |
{$obj.vod_pubdate} | 上映日期 |
{$obj.vod_total} | 总集数 |
{$obj.vod_serial} | 连载数 |
{$obj.vod_tv} | 上映电视台 |
{$obj.vod_weekday} | 节目周期 |
{$obj.vod_area} | 地区 |
{$obj.vod_lang} | 语言 |
{$obj.vod_year} | 年代 |
{$obj.vod_version} | 视频版本 |
{$obj.vod_state} | 资源类别 |
{$obj.vod_author} | 编辑人员 |
{$obj.vod_jumpurl} | 跳转 URL |
{$obj.vod_tpl} | 独立模板 |
{$obj.vod_tpl_play} | 独立播放页模板 |
{$obj.vod_tpl_down} | 独立下载页模板 |
{$obj.vod_isend} | 是否完结 |
{$obj.vod_lock} | 锁定状态 |
{$obj.vod_level} | 推荐级别 |
{$obj.vod_points_play} | 点播付费点数 |
{$obj.vod_points_down} | 下载付费点数 |
{$obj.vod_hits} | 总点击量 |
{$obj.vod_hits_day} | 日点击量 |
{$obj.vod_hits_week} | 周点击量 |
{$obj.vod_hits_month} | 月点击量 |
{$obj.vod_duration} | 视频时长 |
{$obj.vod_up} | 顶数 |
{$obj.vod_down} | 踩数 |
{$obj.vod_score} | 平均评分 |
{$obj.vod_score_all} | 总评分 |
{$obj.vod_score_num} | 评分次数 |
{$obj.vod_time} | 更新时间 |
{$obj.vod_time_add} | 添加时间 |
{$obj.vod_time_hits} | 点击时间 |
{$obj.vod_time_make} | 生成时间 |
{$obj.vod_trysee} | 试看时长 |
{$obj.vod_reurl} | 来源地址 |
{$obj.vod_rel_vod} | 关联视频 ID |
{$obj.vod_rel_art} | 关联文章 ID |
{$obj.vod_content} | 视频详细介绍 |
{$obj.vod_play_from} | 播放组 |
{$obj.vod_play_server} | 播放服务器组 |
{$obj.vod_play_note} | 播放备注 |
{$obj.vod_play_url} | 播放地址 |
{$obj.vod_down_from} | 下载组 |
{$obj.vod_down_server} | 下载服务器组 |
{$obj.vod_down_note} | 下载备注 |
{$obj.vod_down_url} | 下载地址 |
视频相关链接
{:mac_url_vod_detail($obj)} 视频详情页链接
{:mac_url_vod_play($obj,['sid'=>1,'nid'=>1])} 视频播放页链接
{:mac_url_vod_down($obj,['sid'=>1,'nid'=>1])} 视频下载页链接十八、视频播放地址调用
在视频详情页中,可以通过 obj.vod_play_list 循环获取不同播放组以及对应的剧集地址。
{maccms:foreach name="obj.vod_play_list" id="vo"}
<div class="ui-box marg" id="playlist_{$key}">
<div class="down-title">
<h2>{$vo.from}-在线播放</h2><span>[{$vo.player_info.tip}]</span>
</div>
<div class="video_list fn-clear">
{maccms:foreach name="vo.urls" id="vo2"}
<a href="{:mac_url_vod_play($obj,['sid'=>$vo.sid,'nid'=>$vo2.nid])}">{$vo2.title}</a>
{/maccms:foreach}
</div>
</div>
{/maccms:foreach}十九、视频下载地址调用
下载地址的调用方式与播放地址类似,可以循环 obj.vod_down_list 获取下载组以及对应的下载链接。
{maccms:foreach name="obj.vod_down_list" id="vo"}
<div class="ui-box marg" id="downlist_{$key}">
<div class="down-title">
<h2>{$vo.from}-下载</h2><span>[{$vo.player_info.tip}]</span>
</div>
<div class="video_list fn-clear">
{maccms:foreach name="vo.urls" id="vo2"}
<a href="{:mac_url_vod_down($obj,['sid'=>$vo.sid,'nid'=>$vo2.nid])}">{$vo2.title}</a>
{/maccms:foreach}
</div>
</div>
{/maccms:foreach}二十、播放器详细信息
在播放组循环过程中,可以通过 player_info 获取播放器的详细信息。
{$vo.player_info.from}:播放器编码{$vo.player_info.show}:播放器名称{$vo.player_info.des}:播放器备注{$vo.player_info.tip}:播放器提示{$vo.player_info.sort}:播放器排序{$vo.player_info.parse}:解析接口
二十一、视频播放页独有标签
| 标签 | 说明 |
|---|---|
{$param.sid} | 当前播放组序号 |
{$param.nid} | 当前集数序号 |
{$obj.player_info.link_next} | 下一集地址 |
{$obj.player_info.link_pre} | 上一集地址 |
{$obj['vod_play_list'][$param['sid']]} | 当前播放组数据 |
{$obj['vod_play_list'][$param['sid']]['player_info']} | 播放器信息 |
{$obj['vod_play_list'][$param['sid']]['server_info']} | 服务器组信息 |
{$obj['vod_play_list'][$param['sid']]['url_count']} | 当前播放组总集数 |
{$obj['vod_play_list'][$param['sid']]['urls']} | 集数信息 |
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]} | 当前集数信息 |
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['name']} | 当前集数名称 |
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url']} | 当前集数 URL |
在下载页面获取对应数据时,可以将 vod_play_list 替换为 vod_down_list,其他参数结构保持一致。
{$player_data}
{$player_js}其中,{$player_data} 用于获取播放数据,{$player_js} 用于加载播放器相关脚本。
二十二、获取关联视频和关联文章
苹果CMS支持通过关联 ID 调用当前视频相关联的视频和文章,可以用于制作“相关推荐”“相关文章”等模块。
调用关联视频
<h2>与<strong>“{$obj.vod_name}”</strong>关联的视频</h2>
<ul class="img-list dis">
{maccms:vod num="6" rel="'.$obj['vod_rel_vod'].'" 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>
<i>{$vo.vod_version}</i>
</a></li>
{/maccms:vod}
</ul>调用关联文章
<h2>与<strong>“{$obj.vod_name}”</strong>关联的文章</h2>
<ul class="img-list dis">
{maccms:art num="6" rel="'.$obj['vod_rel_art'].'" order="desc" by="time"}
<li><a href="{:mac_url_art_detail($vo)}" title="{$vo.art_name}">
<img src="{:mac_url_img($vo.art_pic)}" alt="{$vo.art_name}">
<h2>{$vo.art_name}</h2>
</a></li>
{/maccms:art}
</ul>二十三、文章列表标签
文章列表使用 maccms:art 标签,可以按照分类、标签、推荐等级、关联数据、更新时间和点击量等条件获取文章。
常用参数包括:
order:排列顺序。by:排序依据。start:开始位置。num:获取数量。ids:指定文章 ID。type:指定文章分类。class:扩展分类。tag:文章 Tags。level:推荐等级。rel:关联数据。timeadd:添加时间筛选。timehits:点击时间筛选。time:更新时间筛选。hitsmonth、hitsweek、hitsday、hits:按照点击量筛选。paging:是否分页。pageurl:分页地址。
{maccms:art num="10" paging="no" type="all" order="asc" by="sort"}
{$key} 序号
{$vo.art_id} 文章ID
{$vo.art_name} 文章标题
{$vo.art_pic} 文章图片
{:mac_url_art_detail($vo)} 文章详情链接
{/maccms:art}二十四、文章内容页独有标签
文章详情页中,当前文章数据通常通过 $obj 获取。
| 标签 | 说明 |
|---|---|
{$obj.art_id} | 文章 ID |
{$obj.type_id} | 分类 ID |
{$obj.type_id_1} | 一级分类 ID |
{$obj.type} | 文章分类对象 |
{$obj.type_1} | 一级分类对象 |
{$obj.group_id} | 用户组 ID |
{$obj.art_name} | 文章标题 |
{$obj.art_sub} | 副标题 |
{$obj.art_en} | 文章别名 |
{$obj.art_status} | 审核状态 |
{$obj.art_letter} | 首字母 |
{$obj.art_from} | 文章来源 |
{$obj.art_author} | 作者 |
{$obj.art_tag} | Tags |
{$obj.art_class} | 扩展分类 |
{$obj.art_pic} | 主图 |
{$obj.art_pic_thumb} | 缩略图 |
{$obj.art_pic_slide} | 幻灯图 |
{$obj.art_blurb} | 文章简介 |
{$obj.art_remarks} | 备注 |
{$obj.art_jumpurl} | 跳转 URL |
{$obj.art_tpl} | 独立模板 |
{$obj.art_level} | 推荐等级 |
{$obj.art_lock} | 锁定状态 |
{$obj.art_up} | 顶数 |
{$obj.art_down} | 踩数 |
{$obj.art_hits} | 总点击量 |
{$obj.art_hits_day} | 日点击量 |
{$obj.art_hits_week} | 周点击量 |
{$obj.art_hits_month} | 月点击量 |
{$obj.art_time} | 更新时间 |
{$obj.art_time_add} | 添加时间 |
{$obj.art_time_hits} | 点击时间 |
{$obj.art_time_make} | 生成时间 |
{$obj.art_score} | 平均评分 |
{$obj.art_score_all} | 总评分 |
{$obj.art_score_num} | 评分次数 |
{$obj.art_rel_art} | 关联文章 |
{$obj.art_rel_vod} | 关联视频 |
{$obj.art_title} | 页面标题 |
{$obj.art_note} | 页面备注 |
{$obj.art_content} | 文章详细内容 |
{:mac_url_art_detail($obj)}二十五、文章关联视频和关联文章
文章详情页同样可以通过关联 ID 调用相关视频和文章。
{maccms:vod num="6" ids="'.$obj['art_rel_vod'].'" order="desc" by="time"}
{$vo.vod_name}
{:mac_url_vod_detail($vo)}
{/maccms:vod}
{maccms:art num="6" ids="'.$obj['art_rel_art'].'" order="desc" by="time"}
{$vo.art_name}
{:mac_url_art_detail($vo)}
{/maccms:art}二十六、分页内容标签
分页内容标签可以应用于分类页、筛选页、搜索页、文章内容页、留言本、评论以及专题首页等页面。使用分页前,需要确保对应数据标签已经开启 paging="yes"。
{maccms:vod num="10" paging="yes" pageurl="vod/type"}
{/maccms:vod}常见 pageurl 参数如下:
视频分类页:
vod/type视频筛选页:
vod/show视频搜索页:
vod/search首页:
index/index文章分类页:
art/type文章筛选页:
art/show文章搜索页:
art/search
自定义分页可以使用 $__PAGING__ 获取分页状态,例如总数据量、当前页、总页数、上一页、下一页以及分页 URL 等。
二十七、苹果CMS常用处理函数
模板中可以通过 | 分隔多个处理函数,对变量进行连续处理。
| 调用方法 | 说明 |
|---|---|
{:mac_data_count(0,'all','vod')} | 获取视频总数量 |
{:mac_data_count(0,'today','vod')} | 获取今日更新视频数量 |
{:mac_data_count(0,'all','art')} | 获取文章总数量 |
{:mac_data_count(0,'today','art')} | 获取今日更新文章数量 |
{:mac_data_count(1,'all')} | 获取指定分类的数据总量 |
{:mac_data_count(1,'today')} | 获取指定分类今日更新数量 |
{:mac_url('map/index')} | 获取站内链接 |
{$vo.vod_pic|mac_url_img} | 转换图片地址 |
{$vo.vod_content|mac_substring=100} | 截取指定长度字符串 |
{$vo.vod_content|mac_filter_html} | 过滤 HTML 标签 |
{$actor|mac_url_create='actor','vod','search'} | 将多个关键词生成搜索链接 |
{$vo.vod_time|mac_day} | 格式化日期 |
{$vo.vod_time|mac_friend_date} | 生成友好时间,例如几分钟前 |
{$vo.vod_year|mac_default='未知'} | 变量为空时返回默认值 |
{$user.user_login_ip|mac_long2ip} | 格式化 IP 地址 |
二十八、苹果CMS常用 JS 处理函数
苹果CMS前台部分功能通常通过元素的 class 和 data 属性自动绑定事件,不需要在每个按钮上单独编写 JavaScript。
会员收藏视频
<a href="javascript:;" class="mac_ulog" data-type="2" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}">我要收藏</a>会员收藏文章
<a href="javascript:;" class="mac_ulog" data-type="2" data-mid="{$maccms.mid}" data-id="{$obj.art_id}">我要收藏</a>会员收藏专题
<a href="javascript:;" class="mac_ulog" data-type="2" data-mid="{$maccms.mid}" data-id="{$obj.topic_id}">我要收藏</a>二十九、会员浏览记录
以下标签一般放在页面 body 结束标签之前,用于记录用户的浏览行为,本身不需要作为可见内容显示。
文章浏览记录
<span style="display:none" class="mac_ulog_set" alt="设置文章内容页浏览记录" data-type="1" data-mid="{$maccms.mid}" data-id="{$obj.art_id}" data-sid="{$param.sid}" data-nid="{$param.nid}"></span>专题浏览记录
<span style="display:none" class="mac_ulog_set" alt="设置专题内容页浏览记录" data-type="1" data-mid="{$maccms.mid}" data-id="{$obj.topic_id}" data-sid="{$param.sid}" data-nid="{$param.nid}"></span>视频浏览记录
<span style="display:none" class="mac_ulog_set" alt="设置内容页浏览记录" data-type="1" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}" data-sid="{$param.sid}" data-nid="{$param.nid}"></span>视频播放记录
<span style="display:none" class="mac_ulog_set" alt="设置视频播放记录" data-type="4" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}" data-sid="{$param.sid}" data-nid="{$param.nid}"></span>视频下载记录
<span style="display:none" class="mac_ulog_set" alt="设置视频播放记录" data-type="5" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}" data-sid="{$param.sid}" data-nid="{$param.nid}"></span>三十、视频、文章和专题顶踩功能
顶踩功能可以通过 digg_link class 和相关 data 属性实现。
<a class="digg_link" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-mid="{$maccms.mid}" data-type="up" href="javascript:;">
顶<em class="digg_num">{$obj.vod_up}{$obj.art_up}{$obj.topic_up}</em>
</a>
<a class="digg_link" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-mid="{$maccms.mid}" data-type="down" href="javascript:;">
踩<em class="digg_num">{$obj.vod_down}{$obj.art_down}{$obj.topic_down}</em>
</a>三十一、视频、文章和专题点击量
点击量可以通过 mac_hits class 配合 data-type 调用。
总点击量:
<span class="mac_hits hits" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-type="hits"></span>
日点击量:
<span class="mac_hits hits_day" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-type="hits_day"></span>
周点击量:
<span class="mac_hits hits_week" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-type="hits_week"></span>
月点击量:
<span class="mac_hits hits_month" data-mid="{$maccms.mid}" data-id="{$obj.vod_id}{$obj.art_id}{$obj.topic_id}" data-type="hits_month"></span>三十二、前台浏览历史记录
可以使用 mac_history 调用前台浏览历史记录。
<a href="javascript:;" class="mac_history">历史记录</a>
在视频、文章和专题详情页中,可以使用 mac_history_set 写入浏览历史信息。
<span style="display:none" class="mac_history_set" alt="设置视频历史记录" data-name="[{$obj.type.type_name}]{$obj.vod_name}" data-pic="{$obj.vod_pic|mac_url_img}"></span>
<span style="display:none" class="mac_history_set" alt="设置文章历史记录" data-name="[{$obj.type.type_name}]{$obj.art_name}" data-pic="{$obj.art_pic|mac_url_img}"></span>
<span style="display:none" class="mac_history_set" alt="设置专题历史记录" data-name="{$obj.topic_name}" data-pic="{$obj.topic_pic|mac_url_img}"></span>三十三、AJAX 数据接口
苹果CMS提供了 AJAX 数据接口,可用于瀑布流等异步加载场景。
常用参数:
mid:模块 ID,1 视频、2 文章、3 专题。limit:每页数量,例如 10、20、30。page:页码,通常需要控制请求范围,避免产生大量无效请求。
示例接口:
index.php/ajax/data.html?mid=1&page=1&limit=10
三十四、苹果CMS模板常用标签技巧
1、循环中获取分类数据量
在分类循环中,可以通过 mac_data_count 获取对应分类的数据总量和今日更新数量。
{maccms:type ids="1,2,3,4" order="asc" by="sort" id="vo1" key="key1"}
分成:{$vo1.type_name};
总数量:{$vo1.type_id|mac_data_count=all};
今日数量:{$vo1.type_id|mac_data_count=today}。
{/maccms:type}2、嵌套循环调用分类中的视频或文章
当模板中使用嵌套循环时,需要特别注意外层和内层标签的 id 与 key。如果都使用系统默认的 vo,可能导致循环变量相互覆盖。
{maccms:type ids="1,2,3,4" order="asc" by="sort" id="vo1" key="key1"}
{maccms:vod num="10" type="'.$vo1['type_id'].'" order="desc" by="time" id="vo2" key="key2"}
{$vo1.type_name}:{$vo2.vod_name};
{/maccms:vod}
{/maccms:type}这种写法的重点是给不同层级的循环指定不同变量,例如外层使用 vo1,内层使用 vo2,从而避免数据被覆盖。
三十五、苹果CMS模板制作中的变量使用规则
制作苹果CMS模板时,需要区分列表循环变量和当前详情对象。通常情况下,maccms:vod、maccms:art、maccms:type 等列表标签内部使用 $vo,而视频详情页、文章详情页以及分类详情页等当前页面数据通常使用 $obj。
例如视频列表中可以使用:
{$vo.vod_name}
{$vo.vod_pic}
{:mac_url_vod_detail($vo)}而视频详情页通常使用:
{$obj.vod_name}
{$obj.vod_pic}
{:mac_url_vod_detail($obj)}掌握 $vo、$obj、$param、$maccms 和 $__PAGING__ 这些常用变量,是制作苹果CMS模板时非常重要的基础。
总结
苹果CMS模板制作涉及的标签比较丰富,从网站全局变量、分类和专题标签,到视频与文章列表、详情页、播放页、下载页、分页、会员功能以及常用处理函数,都可以通过模板标签快速完成调用。
实际制作模板时,可以根据页面类型选择对应的标签和变量,并结合 mac_url_*、mac_data_count、mac_url_img、mac_substring 等处理函数进一步完善页面功能。对于复杂模板,合理区分列表中的 $vo、详情页的 $obj 以及搜索和播放页面中的 $param,可以有效减少模板调用错误。
- 整体架构与底层运行逻辑彻底梳理5热度
- 二次开发完整教程4热度
- 视频模板制作常用函数62热度
- 会员积分记录页面调用代码64热度
- 苹果cms内置ajax数据接口说明95热度
- 会员权限列表模板调用教程65热度
- 专题搜索教程86热度
- 更换模板报错解决方法109热度
- 自定义标签使用教程98热度
- 视频筛选调用教程101热度
