苹果CMS开发

苹果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网站地图
3RSS
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:排序方向,例如 descasc

  • by:排序依据,例如 idtime

{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:指定分类,例如 allparentchild 或指定分类 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:按更新时间筛选。

  • hitsmonthhitsweekhitsdayhits:按不同时间周期点击量筛选。

  • 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}

常用参数包括 orderbystartnumidstypeclasstaglevelarealangyearstateversionweekdayreltimeaddtimehitstimehitsmonthhitsweekhitsdayhitspagingpageurl

十七、视频内容页独有标签

在视频详情页中,当前视频数据通常通过 $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:更新时间筛选。

  • hitsmonthhitsweekhitsdayhits:按照点击量筛选。

  • 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、嵌套循环调用分类中的视频或文章

当模板中使用嵌套循环时,需要特别注意外层和内层标签的 idkey。如果都使用系统默认的 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:vodmaccms:artmaccms: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_countmac_url_imgmac_substring 等处理函数进一步完善页面功能。对于复杂模板,合理区分列表中的 $vo、详情页的 $obj 以及搜索和播放页面中的 $param,可以有效减少模板调用错误。

标签:制作
最新信息
热门推荐
TAGS 详情 列表 提现 专题 sql 收藏 详情页 网址 接口 代码 制作 二开