一、苹果CMS简介
苹果CMS(maccms)是一套基于 PHP+MySQL 环境下运行的完善而强大的快速建站系统。系统内置了丰富的 CMS 标签并支持 ThinkPHP 框架标签完美融合,可以调取系统内所有的数据,只要你懂一些前端知识就可以快速开发自己的模板功能。
核心特点
特点 | 说明 |
|---|---|
程序体积小 | 优化代码,运行速度快,普通虚拟主机即可搭建 |
模板分离 | 仿 MVC 模板分离,后台与前端完全分离 |
内置标签丰富 | 支持 TP5 语法,可调取系统内所有数据 |
模块众多 | 支持视频、文章、专题、明星、角色、网址导航等模块 |
后台易用 | 界面简洁,功能齐全,支持双端管理 |
开源免费 | 基于 MIT 协议开源,可商用可二次开发 |
环境要求
- PHP 5.6+ / 7.x(推荐 PHP 7.0+)
- MySQL 5.5+ / 5.7+
- 服务器:Apache / IIS / Nginx
二、模板目录结构
苹果 CMS 所有模板主题包都规定放在 /template/ 目录下,必须严格遵守标准的目录结构,否则会导致前端访问异常。
│─template/模板目录/
│ ├─info.ini # 模板信息文件
│ ├─ads/ # 广告文件目录
│ ├─js/ # JavaScript 文件
│ ├─css/ # 样式文件
│ ├─images/ # 图片文件
│ └─html/ # 模板 HTML 文件目录
│ ├─art/ # 文章模块模板
│ ├─comment/ # 评论模块模板
│ ├─gbook/ # 留言本模块模板
│ ├─index/ # 首页模块模板
│ ├─topic/ # 专题模块模板
│ ├─user/ # 用户中心模块模板
│ └─vod/ # 视频模块模板
三、标签基础语法
1. 变量输出
类型 | 语法 | 说明 |
|---|---|---|
普通变量 | {$maccms.site_name} | 输出站点名称等配置信息,支持点语法代替数组下标 |
数组变量 | {$maccms['site_name']} | 传统数组语法 |
函数调用 | {$data.name|md5} | 对变量应用过滤函数,多个函数用 | 分隔 |
多参数函数 | {$create_time|date="y-m-d",###} | 用 ### 占位变量位置 |
原生 PHP | {:substr($name,0,3)} | 直接执行 PHP 代码,适合简单运算 |
2. 列表标签
列表标签由起始标签和结束标签组成,内部变量以 $vo. 开头。
{maccms:vod type="all" num="10" order="desc" by="time"}
{$vo.vod_name}{/maccms:vod}
3. 变量作用域
- $obj:详情页(视频详情、文章详情等)代表当前主对象
- $vo:循环列表中的每一条数据
- $parent:分类页二级分类时代表上级分类对象
四、全局配置标签
标签 | 说明 | 示例值 |
|---|---|---|
{$maccms.site_name} | 站点名称 | 我的影视站 |
{$maccms.site_url} | 站点网址 | https://www.example.com |
{$maccms.path} | 系统根目录路径 | / |
{$maccms.mid} | 当前模型 ID(视频=1,文章=2) | 1 |
{$maccms.mob_status} | 手机端访问状态 | 1 |
{:mac_url('map/index')} | 获取站内链接 | /index.php/map/index |
五、视频模块标签({maccms:vod})
最常用的视频数据调用标签,支持丰富的筛选参数。
常用参数
参数 | 说明 | 示例 |
|---|---|---|
type | 分类 ID, all 全站 / current 当前分类 | type="1" |
num | 调用数量 | num="12" |
order | 排序方式, desc 倒序 / asc 正序 | order="desc" |
by | 排序字段,如 time(时间)、hits(点击)、score(评分) | by="hits" |
ids | 指定视频 ID,多个用逗号分隔 | ids="1,2,3" |
level | 推荐等级 | level="5" |
paging | 是否分页, yes / no | paging="yes" |
timeadd | 添加时间范围,如 -1 week 一周内 | timeadd="-1 week" |
hits | 点击量筛选,如 gt 1000 大于1000 | hits="gt 1000" |
使用示例
{maccms:vod num="10" type="all" order="desc" by="time"} {$vo.vod_name} 主演:{$vo.vod_actor} {/maccms:vod}
六、文章模块标签({maccms:art})
文章数据调用标签,参数结构与视频模块类似。
使用示例
{maccms:art num="8" type="2" order="desc" by="hits"}{$vo.art_name}({$vo.art_time|date='Y-m-d'}){/maccms:art}
七、专题模块标签({maccms:topic})
专题列表标签,参数如下:
参数 | 说明 | 示例 |
|---|---|---|
num | 调用数量 | num="10" |
ids | 指定专题 ID | ids="1,2,3" |
paging | 是否分页 | paging="yes" |
{maccms:topic num="6" order="asc" by="sort"} {$vo.topic_name}{/maccms:topic}
八、角色模块标签({maccms:role})
角色功能针对影视剧里面虚构人物信息进行收集整理。
常用参数
参数 | 说明 |
|---|---|
rid | 指定关联视频 ID |
role | 指定演员名,支持多个(如“刘德华,成龙”) |
name | 指定角色名,支持多个 |
area | 指定地区 |
level | 指定推荐值 |
{maccms:role num="10" rid="'.$obj['vod_id'].'" order="asc" by="sort"}角色名:{$vo.role_name} | 演员:{$vo.role_actor}{/maccms:role}
角色字段(详情页 $obj)
标签 | 说明 |
|---|---|
{$obj.role_name} | 角色名 |
{$obj.role_actor} | 演员名称 |
{$obj.role_pic} | 图片 |
{$obj.role_level} | 推荐值 |
九、分类标签({maccms:type})
分类标签可以调出后台所有数据分类数据,不限定在某个模板中使用。
{maccms:type num="10" order="asc" by="sort" ids="all"}分类名称:{$vo.type_name}{/maccms:type}
十、页面独有标签
1. 分类页标签($obj)
在分类页模板中可用以下变量获取当前分类信息:
标签 | 说明 |
|---|---|
{$obj.type_id} | 分类 ID |
{$obj.type_name} | 分类名称 |
{$obj.type_pid} | 上级分类 ID |
{$obj.parent} | 上级分类对象(二级分类时可用) |
{$obj.type_title} | 分类 SEO 标题 |
{$obj.type_key} | 关键字 |
{$obj.type_des} | 描述信息 |
{:mac_url_type($obj)} | 分类链接 |
2. 视频详情页标签($obj)
在视频详情页(/html/vod/detail.html)可用以下标签:
标签 | 说明 |
|---|---|
{$obj.vod_id} | 视频 ID |
{$obj.vod_name} | 视频名称 |
{$obj.vod_pic|mac_url_img} | 海报图片 |
{$obj.vod_actor} | 主演 |
{$obj.vod_director} | 导演 |
{$obj.vod_area} | 地区 |
{$obj.vod_year} | 年份 |
{$obj.vod_remarks} | 备注(如“更新至XX集”) |
{$obj.vod_content|mac_filter_html} | 剧情简介(过滤 HTML) |
{$obj.vod_hits} | 总点击量 |
{$obj.vod_score} | 评分 |
{$obj.vod_time_add|date='Y-m-d'} | 添加时间 |
十一、常用处理函数
苹果 CMS 提供了一系列实用函数,可大幅简化开发流程:
函数 | 说明 | 示例 |
|---|---|---|
mac_url_img | 自动转换图片地址,远程和本地图片通用 | {$vo.vod_pic|mac_url_img} |
mac_substring | 截取字符串指定长度 | {$vo.vod_content|mac_substring=100} |
mac_filter_html | 过滤 HTML 标签 | {$vo.vod_content|mac_filter_html} |
mac_url_create | 将逗号分隔的字符生成搜索链接 | {$vo.actor|mac_url_create='actor','vod','search',' '} |
mac_day | 返回格式化日期 | {$vo.vod_time|mac_day} |
mac_friend_date | 友好时间格式(“3分钟前”) | {$vo.vod_time|mac_friend_date} |
mac_default | 空值时返回默认字符串 | {$vo.vod_year|mac_default='未知'} |
mac_long2ip | 长整型 IP 转字符串 | {$user.user_login_ip|mac_long2ip} |
mac_get_user_portrait | 获取用户头像地址 | {$user.user_id|mac_get_user_portrait} |
十二、数据统计函数
内置数据统计函数,快速获取各模块数据总量:
函数 | 说明 |
|---|---|
{: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')} | 获取分类ID=1下的数据总量(视频/文章) |
{:mac_data_count(1,'today')} | 获取分类ID=1下的今日更新量 |
十三、分页标签
分页标签用于列表页实现内容分页显示,通过 paging="yes" 参数启用。
{maccms:vod num="20" paging="yes" type="current"}
{$vo.vod_name}{/maccms:vod}
{include file="public/pagination"}
十四、条件判断标签({if})
苹果 CMS 支持 {if} 条件判断标签,语法与 PHP 类似。
{if $obj.vod_hits > 1000}
热门{elseif $obj.vod_hits > 500}
较热{else}
普通{/if}
十五、最佳实践建议
- 图片地址统一处理:所有图片地址都使用 mac_url_img 函数处理,确保地址统一性和可维护性。
- 引入必备 JS:模板开发中应引入系统自带的 home.js,封装了历史记录、顶踩收藏、访问量统计、评论等常用功能。
- 合理使用缓存:通过 cachetime 参数设置自定义缓存时间,提升网站访问速度。
- 注意数据排序:使用二分搜索时确保数据已正确排序,否则可能导致错误结果。
- 遵循模板结构:严格遵守标准的目录结构进行模板创建,避免前端访问异常。
- 避免过深嵌套:多级列表一般不超过3-4级,否则影响阅读。
十六、总结
- 苹果 CMS 基于 PHP+MySQL 环境运行,采用 TP5.x 作为核心框架。
- 支持视频、文章、专题、明星、角色、网址导航等八大模块。
- 模板标签完全支持 TP5 语法,使用 {} 包裹变量。
- 列表标签由起始和结束标签组成,内部变量以 $vo. 开头。
- 提供丰富的数据统计函数和处理函数,大幅简化开发流程。
- 分页、条件判断等标签满足复杂模板需求。
- 建议开发者从视频模块标签开始学习,逐步掌握其他模块的标签用法。
❤️收藏 👍点赞
用户评论
发表评论