是否可以保存产品,但我不希望启动事件。 我知道事件不是必需的,因为我做的更新不会影响任何事情。 例如,我只更新自己的属性或其他任何内容。
马吕斯告诉我这件事:Mage::getSingleton('catalog/product_action')->updateAttributes($productIds, $attributes, $storeId);
这很好,所以你甚至不进行保存,但我只是想知道是否有一种方法可以跳过仍然调用save()方法的事件(在某些情况下可能会有帮助)
感谢, 杆
答案 0 :(得分:0)
在保存时禁用事件可能是一种冒险且有害的方法。我不推荐它。
但是如果你坚持,我认为你可以通过在运行时用事件更改配置节点来实现这一点。 Here is how you can change a config node:
在调用$product->save()
之前,您需要做的是从配置中获取包含与产品相关的事件的所有节点:global/events/catalog_product_save_before
,global/events/catalog_product_save_after
...可能还有其他节点并插入其中包含节点<type>disabled</type>
。保存完成后,删除type
节点。
您可以获取此类事件的所有(全局)观察者:
Mage::getConfig()->getNode('global/events/catalog_product_save_before');
循环结果并将类型设置为禁用。
这是一个例子 假设你有这个事件: 一些/ model_here someAction
你需要这样做:
Mage::getConfig()->setNode("global/events/catalog_product_save_before/observers/some_alias/type", 'disabled');
注意:除global
区域外,可以在frontend
和adminhtml
区域找到事件。