苹果CMS介绍与标签大全
一、苹果CMS简介
苹果CMS(maccms)是一套基于 PHP+MySQL 环境下运行的完善而强大的快速建站系统[reference:0]。系统内置了丰富的 CMS 标签并支持 ThinkPHP 框架标签完美融合,可以调取系统内所有的数据,只要你懂一些前端知识就可以快速开发自己的模板功能[reference:1][reference:2]。
核心特点
| 特点 | 说明 |
|---|---|
| 程序体积小 | 优化代码,运行速度快,普通虚拟主机即可搭建[reference:3] |
| 模板分离 | 仿 MVC 模板分离,后台与前端完全分离[reference:4] |
| 内置标签丰富 | 支持 TP5 语法,可调取系统内所有数据[reference:5] |
| 模块众多 | 支持视频、文章、专题、明星、角色、网址导航等模块[reference:6] |
| 后台易用 | 界面简洁,功能齐全,支持双端管理[reference:7] |
| 开源免费 | 基于 MIT 协议开源,可商用可二次开发 |
环境要求
- PHP 5.6+ / 7.x(推荐 PHP 7.0+)[reference:8]
- MySQL 5.5+ / 5.7+[reference:9][reference:10]
- 服务器:Apache / IIS / Nginx
二、模板目录结构
苹果 CMS 所有模板主题包都规定放在 /template/ 目录下,必须严格遵守标准的目录结构,否则会导致前端访问异常[reference:11]。
│─template/模板目录/
│ ├─info.ini # 模板信息文件
│ ├─ads/ # 广告文件目录
│ ├─js/ # JavaScript 文件
│ ├─css/ # 样式文件
│ ├─images/ # 图片文件
│ └─html/ # 模板 HTML 文件目录
│ ├─art/ # 文章模块模板
│ ├─comment/ # 评论模块模板
│ ├─gbook/ # 留言本模块模板
│ ├─index/ # 首页模块模板
│ ├─topic/ # 专题模块模板
│ ├─user/ # 用户中心模块模板
│ └─vod/ # 视频模块模板[reference:12]
三、标签基础语法
1. 变量输出
| 类型 | 语法 | 说明 |
|---|---|---|
| 普通变量 | {$maccms.site_name} | 输出站点名称等配置信息,支持点语法代替数组下标[reference:13] |
| 数组变量 | {$maccms['site_name']} | 传统数组语法 |
| 函数调用 | {$data.name|md5} | 对变量应用过滤函数,多个函数用 | 分隔[reference:14] |
| 多参数函数 | {$create_time|date="y-m-d",###} | 用 ### 占位变量位置[reference:15] |
| 原生 PHP | {:substr($name,0,3)} | 直接执行 PHP 代码,适合简单运算[reference:16] |
2. 列表标签
列表标签由起始标签和结束标签组成,内部变量以 $vo. 开头[reference:17]。
{maccms:vod type="all" num="10" order="desc" by="time"}
<div>{$vo.vod_name}</div>
{/maccms:vod}3. 变量作用域
- $obj:详情页(视频详情、文章详情等)代表当前主对象[reference:18]
- $vo:循环列表中的每一条数据[reference:19]
- $parent:分类页二级分类时代表上级分类对象[reference:20]
四、全局配置标签
| 标签 | 说明 | 示例值 |
|---|---|---|
{$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 正序[reference:21] | order="desc" |
by | 排序字段,如 time(时间)、hits(点击)、score(评分)[reference:22] | by="hits" |
ids | 指定视频 ID,多个用逗号分隔[reference:23] | ids="1,2,3" |
level | 推荐等级 | level="5" |
paging | 是否分页,yes / no | paging="yes" |
timeadd | 添加时间范围,如 -1 week 一周内[reference:24] | timeadd="-1 week" |
hits | 点击量筛选,如 gt 1000 大于1000[reference:25] | hits="gt 1000" |
使用示例
{maccms:vod num="10" type="all" order="desc" by="time"}
<div class="video-item">
<a href="{:mac_url_vod_detail($vo)}" title="{$vo.vod_name}">
<img src="{$vo.vod_pic|mac_url_img}" alt="{$vo.vod_name}">
<h3>{$vo.vod_name}</h3>
<p>主演:{$vo.vod_actor}</p>
</a>
</div>
{/maccms:vod}六、文章模块标签({maccms:art})
文章数据调用标签,参数结构与视频模块类似。
使用示例
{maccms:art num="8" type="2" order="desc" by="hits"}
<li><a href="{:mac_url_art_detail($vo)}">{$vo.art_name}</a>({$vo.art_time|date='Y-m-d'})</li>
{/maccms:art}七、专题模块标签({maccms:topic})
专题列表标签,参数如下[reference:26]:
| 参数 | 说明 | 示例 |
|---|---|---|
num | 调用数量 | num="10" |
ids | 指定专题 ID | ids="1,2,3" |
paging | 是否分页 | paging="yes" |
{maccms:topic num="6" order="asc" by="sort"}
<div class="topic">
<a href="{:mac_url_topic_detail($vo)}">{$vo.topic_name}</a>
</div>
{/maccms:topic}八、角色模块标签({maccms:role})
角色功能针对影视剧里面虚构人物信息进行收集整理[reference:27]。
常用参数
| 参数 | 说明 |
|---|---|
rid | 指定关联视频 ID[reference:28] |
role | 指定演员名,支持多个(如“刘德华,成龙”)[reference:29] |
name | 指定角色名,支持多个[reference:30] |
area | 指定地区[reference:31] |
level | 指定推荐值[reference:32] |
{maccms:role num="10" rid="'.$obj['vod_id'].'" order="asc" by="sort"}
<div>角色名:{$vo.role_name} | 演员:{$vo.role_actor}</div>
{/maccms:role}角色字段(详情页 $obj)
| 标签 | 说明 |
|---|---|
{$obj.role_name} | 角色名[reference:33] |
{$obj.role_actor} | 演员名称[reference:34] |
{$obj.role_pic} | 图片[reference:35] |
{$obj.role_level} | 推荐值[reference:36] |
九、分类标签({maccms:type})
分类标签可以调出后台所有数据分类数据,不限定在某个模板中使用[reference:37]。
{maccms:type num="10" order="asc" by="sort" ids="all"}
<div>分类名称:{$vo.type_name}</div>
{/maccms:type}十、页面独有标签
1. 分类页标签($obj)
在分类页模板中可用以下变量获取当前分类信息[reference:38][reference:39]:
| 标签 | 说明 |
|---|---|
{$obj.type_id} | 分类 ID |
{$obj.type_name} | 分类名称 |
{$obj.type_pid} | 上级分类 ID |
{$obj.parent} | 上级分类对象(二级分类时可用)[reference:40] |
{$obj.type_title} | 分类 SEO 标题 |
{$obj.type_key} | 关键字 |
{$obj.type_des} | 描述信息 |
{:mac_url_type($obj)} | 分类链接 |
2. 视频详情页标签($obj)
在视频详情页(/html/vod/detail.html)可用以下标签[reference:41]:
| 标签 | 说明 |
|---|---|
{$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 提供了一系列实用函数,可大幅简化开发流程[reference:42][reference:43]:
| 函数 | 说明 | 示例 |
|---|---|---|
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 | 将逗号分隔的字符生成搜索链接[reference:44] | {$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} |
十二、数据统计函数
内置数据统计函数,快速获取各模块数据总量[reference:45][reference:46]:
| 函数 | 说明 |
|---|---|
{: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 代表每条数据 -->
<div class="vod-list-item">{$vo.vod_name}</div>
{/maccms:vod}
<!-- 分页导航栏 -->
{include file="public/pagination"}十四、条件判断标签({if})
苹果 CMS 支持 {if} 条件判断标签,语法与 PHP 类似。
{if $obj.vod_hits > 1000}
<span class="hot-label">热门</span>
{elseif $obj.vod_hits > 500}
<span class="warm-label">较热</span>
{else}
<span class="new-label">普通</span>
{/if}十五、最佳实践建议
- 图片地址统一处理:所有图片地址都使用
mac_url_img函数处理,确保地址统一性和可维护性[reference:47]。 - 引入必备 JS:模板开发中应引入系统自带的
home.js,封装了历史记录、顶踩收藏、访问量统计、评论等常用功能[reference:48]。 - 合理使用缓存:通过
cachetime参数设置自定义缓存时间,提升网站访问速度[reference:49]。 - 注意数据排序:使用二分搜索时确保数据已正确排序,否则可能导致错误结果。
- 遵循模板结构:严格遵守标准的目录结构进行模板创建,避免前端访问异常[reference:50]。
- 避免过深嵌套:多级列表一般不超过3-4级,否则影响阅读。
十六、总结
- 苹果 CMS 基于 PHP+MySQL 环境运行,采用 TP5.x 作为核心框架[reference:51]。
- 支持视频、文章、专题、明星、角色、网址导航等八大模块[reference:52]。
- 模板标签完全支持 TP5 语法,使用
{}包裹变量[reference:53]。 - 列表标签由起始和结束标签组成,内部变量以
$vo.开头[reference:54]。 - 提供丰富的数据统计函数和处理函数,大幅简化开发流程[reference:55]。
- 分页、条件判断等标签满足复杂模板需求。
- 建议开发者从视频模块标签开始学习,逐步掌握其他模块的标签用法。
❤️收藏 👍点赞
用户评论
发表评论