如何从通知块中禁用/缩小缓存时间?
-
13-12-2019 - |
题
我几分钟前创建了一个模块,以从RSS进料中提取信息,并在管理面板通知收件箱和工具栏中显示,它就在管理员菜单下方。
这是完美的,但遗憾的是,当我刷新时它不会加载新消息。我必须刷新Magento的缓存,然后刷新它以加载新消息。
我想禁用通知模块/块的缓存,因此每次加载页面时都可以加载所有新消息。
我厌倦了这一代码行,但它似乎没有工作:
<reference name="notification_toolbar">
<action method="setCacheLifetime"><s>0</s></action>
</reference>
.
我没想到这一点,因为它不是那个生成信息的,只能显示它。
可以有人请告诉我如何从此模块/块禁用缓存。
谢谢。
解决方案
我用自己想出来了!
浏览某些代码后,我意识到它具有更新频率计时器,因此我在管理面板的系统部分中查看,找到了配置下的更新频率选择器=> 系统=> 通知。不幸的是,它最少的时间是 1小时。我经过法师文件夹,发现以下提供时间。
mage / adminhtml / model / system / config / source / notification / suranfify.php
class Mage_Adminhtml_Model_System_Config_Source_Notification_Frequency
{
public function toOptionArray()
{
return array(
1 => Mage::helper('adminhtml')->__('1 Hour'),
2 => Mage::helper('adminhtml')->__('2 Hours'),
6 => Mage::helper('adminhtml')->__('6 Hours'),
12 => Mage::helper('adminhtml')->__('12 Hours'),
24 => Mage::helper('adminhtml')->__('24 Hours')
);
}
}
.
我然后添加了以下代码并运行了一些测试,这是一个工作!
0 => Mage::helper('adminhtml')->__('0 Minute'),
.
不确定我是否正确完成,但它确实确实是我需要的。 然后我用模块覆盖它来完成它。
希望它有助于他人!
其他提示
为什么你想要这个更新如此常见,不会涂上你的收件箱?
您可能有2个选项,您可以写一个清除此缓存的事件观察者。admin_notifications_lastcheck是我可以找到关于通知的缓存标记。
另一个选项是通过在核心/ adminnotification / model/feed.php中编写setLastupdate函数的重写来使缓存生命周期非常短,您可以为此功能提供缓存生命周期的参数。
我没有尝试,我匆忙但是因为没有答案,我以为我应该分享它。如果您需要它,我可以在明天添加更多信息。