模板开发文档

MacCMS-Laravel 模板制作指南

本文档详细介绍了 MacCMS-Laravel 的模板开发规范、可用变量、标签语法等内容。

6 次浏览 2026-03-11

目录导航

一、模板目录结构

template/
└── your_template/
    ├── info.json          # 模板信息
    ├── config.json        # 模板配置
    ├── screenshot.png     # 预览图
    └── html/              # 模板文件
        ├── index.blade.php
        ├── layouts/
        │   └── app.blade.php
        └── vod/
            ├── detail.blade.php
            └── play.blade.php

二、公共变量

以下变量在所有模板页面中自动可用:

2.1 网站配置 $siteConfig

变量说明用法示例
$siteConfig['name']网站名称{{ $siteConfig['name'] }}
$siteConfig['url']网站URL{{ $siteConfig['url'] }}
$siteConfig['logo']网站LOGO路径<img src="{{ $siteConfig['logo'] }}">
$siteConfig['keywords']SEO关键词用于meta标签
$siteConfig['description']SEO描述用于meta标签
$siteConfig['icp']ICP备案号京ICP备xxxxx号
$siteConfig['copyright']版权信息© 2026 公司名
$siteConfig['email']联系邮箱admin@example.com
$siteConfig['qq']联系QQ123456789
$siteConfig['statcode']统计代码(HTML){!! $siteConfig['statcode'] !!}

2.2 导航分类 $navTypes

@foreach($navTypes as $type)
    <a href="{{ route('vod.type', $type->type_id) }}">
        {{ $type->type_name }}
    </a>
@endforeach

2.3 模板配置 $__config__

模板自定义配置项,在模板 config.json 中定义,可通过 $__config__['key'] 访问

三、循环标签(用于.html模板)

适用于苹果CMS原生 .html 格式模板

3.1 视频列表 {maccms:vod}

{maccms:vod num="12" order="vod_time" by="desc" type="1"}
<div class="item">
    <a href="{$vod.url}">
        <img src="{$vod.pic}">
        <span>{$vod.name}</span>
        <span>{$vod.remarks}</span>
    </a>
</div>
{/maccms:vod}

可用属性:

  • num - 数量限制
  • order - 排序字段 (vod_time, vod_hits, vod_score等)
  • by - 排序方向 (desc/asc)
  • type - 分类ID

可用变量: {$vod.id}, {$vod.name}, {$vod.pic}, {$vod.blurb}, {$vod.remarks}, {$vod.year}, {$vod.area}, {$vod.lang}, {$vod.score}, {$vod.hits}, {$vod.url}, {$index}

3.2 分类列表 {maccms:type}

{maccms:type pid="0" num="10"}
<a href="{$type.url}">{$type.name}</a>
{/maccms:type}

可用变量: {$type.id}, {$type.name}, {$type.en}, {$type.pic}, {$type.url}, {$index}

3.3 演员列表 {maccms:actor}

{maccms:actor num="20" order="actor_id" by="desc"}
<a href="{$actor.url}">{$actor.name}</a>
{/maccms:actor}

可用变量: {$actor.id}, {$actor.name}, {$actor.pic}, {$actor.url}, {$index}

3.4 文章列表 {maccms:article}

{maccms:article num="10" type="1" order="art_time" by="desc"}
<a href="{$article.url}">{$article.title}</a>
{/maccms:article}

四、Blade模板语法

推荐使用 .blade.php 格式,功能更强大

4.1 布局模板 layouts/app.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>@yield('title', $siteConfig['name'])</title>
    <meta name="keywords" content="{{ $siteConfig['keywords'] }}">
    <meta name="description" content="{{ $siteConfig['description'] }}">
</head>
<body>
    @yield('content')
    
    <footer>
        {{ $siteConfig['copyright'] }}
        <a href="https://beian.miit.gov.cn/">{{ $siteConfig['icp'] }}</a>
        {!! $siteConfig['statcode'] !!}
    </footer>
</body>
</html>

4.2 首页 index.blade.php

@extends('layouts.app')
@section('title', $siteConfig['name'] . ' - 首页')
@section('content')
    <h2>热门视频</h2>
    @foreach($hotVods as $vod)
        <div class="card">
            <img src="{{ $vod->vod_pic }}">
            <h5>{{ $vod->vod_name }}</h5>
            <span>{{ $vod->vod_remarks }}</span>
        </div>
    @endforeach
@endsection

4.3 详情页变量 vod/detail.blade.php

$vod 对象包含以下属性:

  • vod_id - 视频ID
  • vod_name - 视频名称
  • vod_pic - 封面图
  • vod_blurb - 简介
  • vod_content - 详细介绍
  • vod_play_url - 播放地址
  • vod_actor - 演员
  • vod_director - 导演
  • vod_year - 年份
  • vod_area - 地区
  • vod_lang - 语言
  • vod_score - 评分
  • vod_hits - 点击量
  • vod_remarks - 备注(如:更新至第10集)

4.4 播放页变量 vod/play.blade.php

  • $vod - 视频信息对象
  • $playerGroup - 播放器分组
  • $playIndex - 当前播放集数索引
  • $playUrl - 当前播放地址
  • $player - 播放器配置

五、静态资源

<!-- 方式1: 放在 public/template/模板名/ 目录 -->
<link href="/template/your_template/css/style.css" rel="stylesheet">
<script src="/template/your_template/js/main.js"></script>

<!-- 方式2: 使用CDN -->
<link href="https://cdn.example.com/bootstrap.min.css" rel="stylesheet">

六、模板配置文件

6.1 info.json - 模板信息

{
    "name": "模板名称",
    "version": "1.0.0",
    "author": "作者名",
    "description": "模板描述",
    "homepage": "https://example.com"
}

6.2 config.json - 模板配置项

{
    "primary_color": "#007bff",
    "footer_text": "自定义底部文字",
    "show_sidebar": true,
    "ads_enabled": false
}

配置项可通过 $__config__['primary_color'] 在模板中访问

七、常用路由

路由名称说明用法
vod.detail视频详情route('vod.detail', $vod->vod_id)
vod.play视频播放route('vod.play', [$vod->vod_id, $index])
vod.type分类列表route('vod.type', $type_id)
search搜索route('search')
actor.detail演员详情route('actor.detail', $actor_id)
topic.detail专题详情route('topic.detail', $topic_id)

八、注意事项

  • 模板文件支持 .blade.php.html 两种格式,推荐使用前者
  • .html 文件使用 {maccms:xxx} 标签,.blade.php 使用 Laravel Blade 语法
  • 输出HTML内容使用 {!! $var !!},输出纯文本使用 {{ $var }}
  • 建议将公共部分(头部、底部、侧边栏)提取到 layouts/ 目录
  • 修改网站配置后会自动清除模板缓存
  • 开发时可执行 php artisan cache:clear 手动清除缓存
  • 图片懒加载建议使用 loading="lazy" 属性

九、调试技巧

<!-- 查看所有可用变量 -->
@dump($siteConfig)
@dump($navTypes)
@dump($vod)

<!-- 条件判断 -->
@if(!empty($siteConfig['logo']))
    <img src="{{ $siteConfig['logo'] }}">
@endif

<!-- 循环带索引 -->
@foreach($vods as $index => $vod)
    <span>{{ $index + 1 }}.</span> {{ $vod->vod_name }}
@endforeach

专题视频 0

暂无视频

相关专题