我需要獲取配置變量並將其更改爲僅會話 我有此Observer,並且設法通過setNode更改變量。如果在下一行中使用getNode()驗證其值,則值已正確更改。 然而,在後來的其他視圖中,我檢查了Mage :: getStoreConfig('oi_options/messages/active'),它似乎又有0了。正如你所看到的,我把cleanCache()和reinit()。我已經嘗試過他們兩個人和他們每個人的孤立。 另外,我在xml佈局中使用了一些ifconfig語句來檢查這個變量,以便確定是否顯示幾個塊並且它也不起作用。 有什麼建議嗎?如何僅在會話期間更改配置變量
class Oi_Vendedor_Model_Observer {
const RETAILER = 3;
public function checkVendedor(Varien_Event_Observer $observer) {
$customerGroup = Mage::getSingleton('customer/session')->getCustomerGroupId();
if(($customerGroup == self::RETAILER) && (Mage::getStoreConfig('oi_options/messages/active') == 0))
{
Mage::getConfig()->setNode('default/oi_options/messages/active',1);
Mage::getConfig()->cleanCache();
Mage::getConfig()->reinit();
}
return $this;
}
}
在此先感謝
看起來你正在嘗試做某種狀態持久性。這不是在Magento框架中這樣做的方法。你能評論/編輯你想完成的事情嗎? – benmarks 2012-03-16 02:52:01
你確定你的觀察者是在佈局加載之前調用的嗎? – Zyava 2012-03-18 00:34:39