You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

October CMS中如何检查插件是否处于激活状态?

October CMS检查插件激活状态的方法

当你的插件被禁用后,页面上引用的组件会报错,你可以通过以下几种方式提前检查插件是否处于激活状态:

1. 使用插件管理器类(PHP代码中)

October CMS提供了PluginManager类来管理插件状态,你可以在组件逻辑、页面控制器里直接调用:

use System\Classes\PluginManager;

// 获取插件管理器实例
$pluginManager = PluginManager::instance();
// 替换为你的插件标识,格式是「作者名.插件名」
$pluginIsActive = $pluginManager->isPluginActive('YourAuthor.YourPlugin');

if ($pluginIsActive) {
    // 插件激活时执行正常逻辑,比如加载组件数据
} else {
    // 插件禁用时的处理,比如跳过组件渲染、返回提示信息
}

2. 在自定义组件中提前拦截

如果你是自己开发的组件,可以在组件的onRun方法开头加入检查逻辑,避免后续代码报错:

public function onRun()
{
    $pluginManager = \System\Classes\PluginManager::instance();
    if (!$pluginManager->isPluginActive('YourAuthor.YourPlugin')) {
        // 给模板传递插件禁用的状态变量
        $this->page['isPluginDisabled'] = true;
        // 直接返回,不再执行组件后续逻辑
        return;
    }

    // 组件正常运行的业务逻辑
}

3. 在Twig模板中直接判断

在页面或部分模板里,你可以通过全局的plugins变量直接判断插件状态,决定是否渲染组件:

{% if plugins['YourAuthor.YourPlugin'] is defined and plugins['YourAuthor.YourPlugin'].active %}
    {# 插件激活时渲染组件 #}
    {% component 'yourComponentAlias' %}
{% else %}
    {# 插件禁用时显示提示 #}
    <div class="alert alert-warning">该功能依赖的插件已禁用,请联系管理员开启。</div>
{% endif %}

注意:上面代码中的YourAuthor.YourPlugin需要替换成你实际的插件标识,这个标识对应插件注册时的name配置项。

内容的提问来源于stack exchange,提问作者neralex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:27:04