【发布时间】:2012-04-01 14:42:25
【问题描述】:
我需要获取一个配置变量并仅为会话更改它 我有这个观察者,并且我设法通过 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 框架中执行此操作的方法。你能评论/编辑你想要完成的事情吗?
-
您确定在加载布局之前调用了您的观察者吗?
标签: configuration store config magento