2013-11-01 45 views
0

是否可以保存產品,但我不希望事件啓動。 我知道事件不是必需的,因爲我做的更新不會影響任何事情。例如,我只更新自己的屬性或任何其他。magento:無需事件保存產品?

馬呂斯告訴我這件事:

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

這是偉大的,所以你沒有做保存,但我只是想知道是否有跳過事件仍調用保存是指()方法(它可能在某些情況下有用)

感謝, 杆

回答

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區等,事件可以在找到和adminhtml地區。