模板文件结构:别让命名坑了你
苹果CMS(V10)的模板目录默认在/application/index/view/下,但强烈建议在后台“系统-模板管理”中新建自定义模板目录(如mytpl),避免升级被覆盖,一个标准模板至少包含这些核心文件:
index_index.html– 首页index_list.html– 列表页(自动适配vodtype/arttype)index_detail.html– 播放详情页index_search.html– 搜索结果页public_head.html/public_foot.html– 公共头部/底部public_side.html– 公共侧边栏(可选)
关键坑点:苹果CMS的标签解析是“块级”的,文件里不能出现未闭合的{maccms:...}标签,否则整个页面白屏,每次修改后,必须清空runtime目录缓存(或后台“更新缓存”)才能生效。
常用标签调用:从“死数据”到“活循环”
记住三个核心标签:{:mac_url('vod/type')}(生成URL)、{maccms:vod}(数据循环)、{$vo.xxx}(字段输出)。
从零到一,苹果CMS模板全栈开发实战—以星空影视主题为例
实战案例:首页“热播榜”五连播
<div class="hot-list">
{maccms:vod num=5 type="current" order="desc" by="hits"}
<a href="{:mac_url_vod_detail($vo)}" title="{$vo.vod_name}">
<img src="{:mac_url_img($vo.vod_pic)}" alt="{$vo.vod_name}">
<p>{$vo.vod_name}</p>
<span class="score">{$vo.vod_score}分</span>
</a>
{/maccms:vod}
</div>
注意三个细节:
type="current"表示当前分类,如果是全局热点,去掉type即可。mac_url_img()会自动拼接图片域名(后台配置),比直接输出{$vo.vod_pic}更安全,能规避防盗链。- 如果列表为空,用
{empty}标签包裹提示语,防止出现空白块。
移动端适配:别用“响应式”糊弄
苹果CMS的播放页最怕手机端“卡屏”,我的做法是双模板策略:PC端用index_detail.html,移动端自动跳到wap子目录下的index_detail.html。
关键动作:
- 在
public_head.html中加:<meta name="viewport" content="width=device-width, initial-scale=1.0"> - 播放器推荐用
dplayer(需在后台“播放器管理”中添加),并设置autoplay=false,防止移动端自动加载浪费流量。 - 列表页的封面图用
{$vo.vod_pic_thumb}(缩略图字段),后台没生成缩略图?在“视频-图片参数”里开启vod_pic_thumb自动裁剪。
移动端重点优化:播放页把“猜你喜欢”改成横向滑动(overflow-x:scroll),并固定“选集”模块高度,避免长列表撑破页面。
三个页面的美化实例:从“能用”到“好看”
首页:告别“表格堆砌”
用CSS Grid布局替换传统float,核心代码:
.grid-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
@media(max-width:768px){.grid-list{grid-template-columns:repeat(3,1fr);}}
然后循环里给每个<div>加类名grid-list__item,每个封面块底部加一个渐变色遮罩(linear-gradient提高文字可读性)。
列表页:让“筛选”不丑
苹果CMS自带筛选功能(类型、地区、年份),但默认样式是原生下拉框,用自定义下拉插件(如select2)美化,但注意必须引入jQuery,否则插件失效,筛选结果的URL参数格式:/vodtype/20-地区-年份.html,在模板里用{$param.wd}、{$param.tid}接收。
播放页:专注“看片体验”
- 视频区上方加“返回上级”浮动按钮(固定定位右上角)。
- 选集列表用网格排列(
grid-template-columns:repeat(auto-fill,minmax(48px,1fr))),每个按钮显示集数,当前集高亮。 - 在播放器下方放“剧情简介”折叠框(
<details>标签),默认收起,避免冗长文本抢占首屏。
SEO优化:别折腾伪静态规则了,先做标签
苹果CMS后台““系统-SEO设置””里,要注意:
- TDK标签:在模板里写死不行!用
{$vo.vod_name}、{$vo.type.type_name}拼接,例如<title>{$vo.vod_name}在线观看-{$vo.type.type_name}频道</title>。 - 面包屑导航:列表页用
{$type.parent}循环输出上级分类,播放页用{$vod.type.type_name}后面加> {$vo.vod_name}。 - canonical标签:防重复收录,在
public_head.html里加:<link rel="canonical" href="{:mac_url_current()}">注意
mac_url_current()会保留当前页码和筛选参数。
重要提醒:不要用{maccms:vod}时同时输出vod_keywords和vod_description,因为这两个字段本身含大量竞品词,容易被搜索引擎判定为堆砌,建议在后台“视频-编辑”里手动为每个栏目设好关键词。
收尾验收清单
跟着以上步骤,你应该能做出一个能跑通的模板,最后检查三件事:
runtime能否正常自动生成(权限755)。- 手机端访问
/index.php/vod/detail/id/1.html是否正常跳转。 - 用浏览器开发者工具模拟手机端,点击几个播放页,看是否出现横向滚动条(如果有,检查
body{overflow-x:hidden})。
苹果CMS的魅力在于“越改越顺手”,这套实战下来的模板,已经能在后台一键切换,无需动数据库,剩下的,就是根据你的资源站风格,微调CSS变量了,下次直接换个皮肤色,又是一套新模板。



发表评论