Mmaccms.clubDOCS
模板开发

自定义函数与插件开发入门

在 MacCMS 模板中添加简单函数,理解 extra.php、插件与数据库模型的边界,避免修改核心程序。

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

已有标签无法完成需求时,先确定缺的是显示格式还是新的业务行为。简单格式转换可用函数;支付、入库、鉴权等应放到有权限检查的服务端逻辑。

最小自定义函数

在测试主题创建 extra.php:

<?php
if (!function_exists('club_short_title')) {
    function club_short_title($value) {
        return mb_substr((string) $value, 0, 20);
    }
}

在 HTML 模板中显式载入它,再调用。不会因为文件叫 extra.php 就保证自动执行。

{php}require_once ROOT_PATH . 'template/learn/extra.php';{/php}
<p>{$maccms.site_name|club_short_title}</p>

此例的 learn 要换成测试主题名。输出应截到最多20个字符;报 mb_substr 未定义时检查 mbstring。主题禁用 PHP 执行时需采用其支持的扩展方式。

什么时候写插件

需要后台配置、启停或持久化时使用 addons 下的插件结构。先读同版本已有插件的入口类、配置与安装/卸载行为,在副本中启用。不要把含写数据库功能的任意 PHP 文件直接暴露在主题目录供公网调用。

查询与输入

优先使用已有标签或模型方法;有用户输入时使用参数化查询和明确字段白名单。列表应限制条数,不能每次渲染整表读取。不要把口令、支付配置或整份用户对象输出到前台。

验证与回退

先证明默认主题正常,再加一个函数或插件,记录结果;出错时移除调用并恢复模板,保留日志。涉及数据写入先按备份教程准备恢复。

代码依据

让建站与维护更省心

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

本页目录