Mmaccms.clubDOCS
模板开发

模板语法速查

MacCMS 传统 HTML 模板的变量输出、默认值、条件、循环、嵌套与包含文件示例。

MacCMS V10 · 更新于 · MacCMS Club 编辑部 · 版本与验证范围

本页适用于传统 ThinkPHP 标签模板。先完成第一个模板,再按需求查语法;Twig 或其他独立渲染器不能直接照搬。

变量、默认值和函数

{$maccms.site_name}
{$obj.vod_sub|default='暂无副标题'}
{$obj.vod_time|date='Y-m-d',###}
{:mac_url_vod_detail($obj)}

date 的 ### 表示把前面的时间字段放到该参数位置。变量必须由当前页面提供;默认值不能让一个完全不存在的对象自动出现。

条件判断

{if condition="$obj.vod_isend eq 1"}
  <span>已完结</span>
{else /}
  <span>更新中</span>
{/if}
{notempty name="obj.vod_sub"}<p>{$obj.vod_sub}</p>{/notempty}

常用比较为 eq、neq、gt、egt、lt、elt。判断条件要对应字段类型,不把字符串状态与数值编号混用。

循环与嵌套

{maccms:type mid="1" num="4" order="asc" by="sort" id="category"}
  <h2>{$category.type_name}</h2>
  {maccms:vod num="3" type="'.$category['type_id'].'" order="desc" by="time" id="video"}
    <a href="{:mac_url_vod_detail($video)}">{$video.vod_name}</a>
  {/maccms:vod}
{/maccms:type}

外层与内层使用不同 id。若两层都叫 vo,内层会覆盖你想引用的外层对象。先测试一个分类三条内容,再扩大范围。

foreach 和 volist

{volist name="list" id="row"}
  <!-- 输出这份 list 中实际存在的字段 -->
{/volist}
{maccms:foreach name="obj.vod_play_list" id="source"}
  <p>{$source.from}</p>
{/maccms:foreach}

list 必须已由控制器赋值。模板循环只能遍历已有数据,不会因为写了变量名而自动查询数据库。

包含与赋值

{assign name="sectionTitle" value="最新内容" /}
<h2>{$sectionTitle}</h2>
{include file="public/head" /}

包含文件不自动执行另一个控制器,也不能形成循环包含。修改公共片段后清理本站模板缓存,纯静态页面重新生成。

常见语法错误

缺少右括号、标签没有闭合、在 PHP 块里使用模板点语法,都会导致解析失败。把错误缩小到一个示例,再看 PHP 日志;不要通过关闭错误检查来掩盖错误。

代码依据

让建站与维护更省心

承接 MacCMS 网站搭建、二次开发与一站式维护。欢迎联系我们,聊聊你的项目需求。

本页目录