magento:没有事件保存产品?

时间:2013-11-01 09:59:48

标签: magento

是否可以保存产品,但我不希望启动事件。 我知道事件不是必需的,因为我做的更新不会影响任何事情。 例如,我只更新自己的属性或其他任何内容。

马吕斯告诉我这件事:

Mage::getSingleton('catalog/product_action')->updateAttributes($productIds, $attributes, $storeId);

这很好,所以你甚至不进行保存,但我只是想知道是否有一种方法可以跳过仍然调用save()方法的事件(在某些情况下可能会有帮助)

感谢, 杆

1 个答案:

答案 0 :(得分:0)

在保存时禁用事件可能是一种冒险且有害的方法。我不推荐它。
但是如果你坚持,我认为你可以通过在运行时用事件更改配置节点来实现这一点。 Here is how you can change a config node

在调用$product->save()之前,您需要做的是从配置中获取包含与产品相关的事件的所有节点:global/events/catalog_product_save_beforeglobal/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区域外,可以在frontendadminhtml区域找到事件。