Magento,如何以编程方式禁用模块?

2023-11-25

我的目标是以编程方式禁用该模块(例如在某些观察者事件期间)。 我发现的最早的观察者是控制器前端初始化之前.

所以我的模块正在监听它,然后执行下一步:

Mage::getConfig()->getModuleConfig('IG_LightBox')->active=(string)'false';

但所选模块在每个页面上仍然处于活动状态。

我也尝试了这种方法(相同但方式不同):

Mage::getConfig()->getNode('modules/IG_LightBox')->active=(string)'false';

我还尝试重新初始化配置并再次加载模块,但这两者都没有帮助。

Mage::getConfig()->loadModules(); // won't help
Mage::getConfig()->reinit(); // won't help

是否可以通过编程方式禁用该模块?

Update 1。 该解决方案非常适合后端。 active=false 确实禁用了该模块,但我也需要它用于前端。所以我继续寻找。

Update 2app/Mage.php 中有 2 个方法,称为 init 和 initSpecified,它们允许仅使用选定数量的模块运行 Magento。但这些方法在默认流程中不会被调用。

Update 3我们可以使用一个观察者事件来动态激活或停用支付模块。它称为 payment_method_is_active。此代码示例使支票汇票付款方式不活动:

public function payment_method_is_active(Varien_Event_Observer $observer)
{
    if($observer->getMethodInstance()->getCode()=='checkmo')
    {
        $observer->getResult()->isAvailable=false;
    }
}

我认为这取决于您要禁用哪种模块。我的文章适用于我想要禁用的模块,但该模块会仔细检查它是否已激活,而大多数模块不会这样做。

Magento 立即加载所有模块配置。不可能创建一个侦听此进程的模块,因为在该进程发生时该模块尚未加载。这就产生了一个悖论。不可能阻止一个模块使用另一个模块加载。

因此,您剩下的唯一选择是:

  1. 编辑核心。
  2. 使用设计更好并明确允许通过配置选项或方法禁用自身的模块。
  3. 编辑/扩展您想要禁用的模块,以便您可以在运行时禁用其功能。

希望这会有所帮助..如果我可以帮助您找到一种方法来禁用您正在处理的模块,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento,如何以编程方式禁用模块? 的相关文章

  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • 在产品页面上显示最近浏览过的产品

    magento 当前的默认功能是在类别页面的右侧显示最近查看的产品 现在我想在产品页面底部显示相同的内容 使用的 phtml 文件在位置命名为 frontend base default template reports product v
  • 使用 Gradle 在多个 Android 应用程序之间共享 Android 库

    我有 Android 应用程序 A 和 B 我想将每个应用程序中的重复代码提取到共享库 L 中 如何使用 Gradle 执行此操作 我之前见过这个问题的一些排列 但答案很少 最接近 最好的已问问题是这个 多个 Android 应用程序依赖于
  • 如何强制magento退出

    我在 magento 社区 1 6 工作 我需要在站点进程的一个阶段清除会话或注销当前用户 我将如何做到这一点 Mage getSingleton customer session gt logout
  • 如何在Python中使用通用代码?

    我目前正在维护两个自己的应用程序 它们都有一些共同的方面 因此也共享一些代码 到目前为止 我刚刚将模块从一个项目复制到另一个项目 但现在它变成了一个维护问题 我宁愿将通用代码放在两个项目之外的一处 以便它们都可以导入 然后 对公共代码的任何
  • 我们可以在 android studio 中拥有没有 app 文件夹的项目,并将所有内容(java/res/etc)放在根目录中吗

    我想知道在 Android studio 中是否可以有没有应用程序模块 应用程序或任何其他名称 的 android 项目 意味着我可以在项目本身的根目录中创建包和资源 而不是使用应用程序模块 编辑 结构看起来像 MyApp idea gra
  • 如何将命名空间与 TypeScript 外部模块一起使用?

    我有一些代码 基本类型 ts export namespace Living Things export class Animal move export class Plant photosynthesize dog ts import
  • K2_内容模块评级

    我一直在category item php 中重建标准K2 评级 以查看评级从显示为星星到显示为数字 我所做的是 我替换了这段代码 div div class itemRatingForm ul class itemRatingList l
  • 多个商店和多个具有不同角色的管理员

    我毫不怀疑magento可以处理多个商店 但我想知道每个商店是否可以处理这样的特定用户 其中他们可以像管理员一样访问他们的目录 销售 库存等 但仅限于他们的特定商店 这是我的示例表示 Magento website gt Store Cat
  • 从 Magento 产品视图中的可配置产品中获取所有简单产品

    如何获取与可配置产品关联的所有简单产品 我找到了如何做相反的事情 从简单的产品获得可配置的产品 但这不是我需要的 我想显示所选产品的库存数量 可配置属性 我最初的想法是打印所有数量的库存并用 jQuery 控制显示 任何想法 使用下面的代码
  • 如何在 Magento 中缓存集合?

    我有一个需要大量时间才能加载的集合 我想要的是缓存它 APC Memcache 无法缓存整个对象 因为它无法反序列化并且超过 1 MB 我认为缓存集合数据 col gt getData 是可行的方法 但我找不到基于此数组重建对象的方法 有什
  • 为所有用户持久安装 PowerShell 模块

    我正在通过以下方式安装 PowerShell 模块八达通部署 http octopusdeploy com 到许多不同的服务器上 出于测试目的 我按照 Microsoft 文档的指导进行了安装PowerShell模块 https learn
  • Pandas datetools模块错误

    我正在尝试从 pandas datetools 调用模块 但收到错误消息 指出 mofule 对象没有我所调用的名称的属性 想知道是否有人可以阐明这个问题 下面是我尝试使用的代码 import blpapi import pandas as
  • 在 config/main.php 中找不到 Yii2 模块(不在 /vendor 文件夹下)类

    我在 api 文件夹下创建了一个模块 它本身与 yii2 高级应用程序中的后端和前端处于同一级别 文件夹结构 api 常见的 控制器 楷模 配置 模块 v1 控制器 楷模 运行 测试 网络 在 api config main php 中 r
  • magento 控制器的动态路由器名称

    我将如何创建一个具有动态操作名称的控制器的自定义模块 从某种意义上说 它可以由用户在管理区域中随意配置并在自定义模块中自动更新 您可以在控制器中重写此方法 public function getActionMethodName action
  • Magento - 当我的订单取消或退款时如何运行代码

    如果订单被取消或退款 我的支付模块需要向支付服务发送通知 我假设订单页面 在管理后端 上的 取消 按钮将取消订单 而 贷项通知单 按钮 创建发票后 将退还订单 如何针对这些事件运行我的代码 我尝试在付款方式模型中使用 cancel 方法 但
  • 检查前端是否管理员登录

    我编写了一个模块 其行为方式应与内联翻译相同 如果我是管理员并且已登录 我可以在前端看到一些特别的东西 但如果我不是管理员 那么我就看不到任何东西 如何让模块知道前端区域管理员已登录 UPDATE 1 为了澄清事情 我想描述一下我的模块行为
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失

随机推荐