别再做“只会填标签的码农”
苹果CMS(MacCMS)的模板系统基于PHP原生语法,核心目录为/template/,以默认模板为例,你必须在自己的模板文件夹内建立以下骨架:
/template/你的模板名/
├── index.html // 首页
├── list.html // 列表页(含分类筛选)
├── detail.html // 播放页
├── search.html // 搜索页
├── label.html // 自定义标签页
├── connext.html // 友情链接页
├── gbook.html // 留言板
├── player.html // 播放器跳转页(可选)
└── pc/ 或 mobile/ // 分设备目录(推荐)
关键点:v10支持“双端分离”模式,当你创建pc/和mobile/子目录时,系统会自动根据$_GET['device']或UA判断加载对应模板,若不分设备,直接将所有模板放根目录即可。
进阶心得:不要直接修改默认模板,而是复制后重命名,因为系统升级或换模板时,旧模板的标签兼容性往往能救你一次。
苹果CMS v10模板开发全实战,从文件结构到多端适配的完整指南
常用标签调用:别再用“万能查询”拖垮服务器
苹果CMS提供了丰富的内置函数,但很多开发者只记得{$vod_name}这种输出型标签,这里重点讲两个高频且易错的地方:
循环列表的limit控制
{maccms:vod num="12" type="all" order="desc" by="time"}
<div class="item">
<a href="{:mac_url_vod_detail($vo)}"><img src="{$vo.vod_pic}" alt="{$vo.vod_name}"/></a>
<h3><a href="{:mac_url_vod_detail($vo)}">{$vo.vod_name}</a></h3>
<p>{$vo.vod_time_add|date='Y-m-d',###}</p>
</div>
{/maccms:vod}
注意:order="desc"和by="time"固定搭配,by可以改成hits(点击量)、score(评分)等。不要直接写limit="12"而省略order,否则可能乱序。
分页标签的正确写法
苹果CMS v10的分页函数是{:mac_page_voice()},但它必须在有page参数的查询条件内使用,常见错误是直接在静态页面调用。
正确示例(在list.html内):
<div class="page">{$__PAGING__}</div>
确保查询标签内包含page="1"参数,
{maccms:vod num="20" type="current" order="desc" by="time" page="1"}
系统会自动生成← 上一页 1 2 3 ... 下一页 →。
移动端适配:三个技巧让PC模板秒变响应式
很多新手直接复制PC端代码,结果手机上一团糟,这里给三个实用技巧:
技巧1:用viewport + 流式布局代替双重模板
在index.html的<head>内加入:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
然后所有容器宽度用百分比或max-width: 1200px; margin: 0 auto;,图片加max-width:100%,这样同一套模板能自适应手机。
技巧2:触屏事件判断播放器适配
在播放页detail.html中,大屏显示网页播放器(如Dplayer),小屏隐藏并显示“请使用App观看”按钮,用一段PHP+CSS:
<?php $isMobile = (strpos($_SERVER['HTTP_USER_AGENT'],'Mobile')!==false); ?>
<style>
.desktop-player { display: <?php echo $isMobile?'none':'block';?>; }
.mobile-tip { display: <?php echo $isMobile?'block':'none';?>; }
</style>
技巧3:列表页网格自适应
用CSS Grid实现智能列数:
.vod-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
这样在平板、手机、PC上分别自动排列2~6列,无需冗余模板。
美化实例:从“白墙”到“影院版”
首页轮播图(焦点图)
在index.html顶部插入:
<div class="swiper-container">
<div class="swiper-wrapper">
{maccms:vod num="5" type="影视" order="desc" by="time"}
<div class="swiper-slide">
<a href="{:mac_url_vod_detail($vo)}">
<img src="{$vo.vod_pic}" alt="{$vo.vod_name}">
<span class="title">{$vo.vod_name}</span>
</a>
</div>
{/maccms:vod}
</div>
</div>
外层套一个CSS淡入淡出动画,配合transform: scale(1.05)实现悬停放大效果。
列表页“网格卡片”美化
在每个<li>项上增加data-id属性,用JS实现懒加载:
<img data-src="{$vo.vod_pic}" class="lazyload">
底部加上评分星标:
<span class="score">{$vo.vod_score|number_format=1}分</span>
播放页“选集区块”美化
把选集按钮做成流式排列:
<div class="episode-list">
{maccms:vod num="30" type="current" order="asc" by="episode"}
<a href="{:mac_url_vod_play($vo,'第'.$vo.vod_episode.'集')}" class="ep-btn">{$vo.vod_episode}</a>
{/maccms:vod}
</div>
CSS让按钮自动换行,并高亮当前集(用.active类对比URL参数)。
SEO优化:别忽略这6个标签配置
苹果CMS自带SEO规则,但默认配置较弱,在后台“系统-参数配置-SEO设置”中,至少做以下操作:
规则使用动态变量,如{$vod_name}_在线播放_{$vod_year}年热播剧 - 本站名
2. 关键词规则{$vod_keywords}会自动抓取影片标签,但建议补充“高清”、“无广告”等长尾词。
3. 描述规则截取{$vod_content|mac_substr=0,80}前80字。
4. URL伪静态开启后,播放页变为/vod/123.html,注意在Nginx/Apache中配置相应Rewrite规则。
5. 百度主动推送在detail.html末尾加一段JS,调用https://api.z.com/urls(需后台开启推送API)。
6. 面包屑导航**:在list.html顶部输出:
<nav class="breadcrumb">
当前位置:<a href="/">首页</a> > <a href="{:mac_url_type($vo.type_id)}">{$vo.type_name}</a>
</nav>
从“能用”到“好用”的最后一公里
模板开发不是简单的标签堆砌,你需要理解苹果CMS的数据缓存机制(runtime/cache目录),建议在开发时关掉缓存,用?cache=0测试,遇到标签不生效时,先检查后台“系统-用户状态-模板标签调试”是否开启输出错误信息。
把上述文件结构、标签逻辑、双端适配、SEO配置全部落实,你的模板就能同时满足访客体验和搜索引擎抓取,剩下的,就是不断用真实视频数据压测,调整CSS细节和W3C规范化了,动手吧——你的第一个商业模板就从复制这份指南的代码开始。



发表评论