Magento插件刷新缓存保存
问题描述:
我写了一个简单的Magento插件,它简单地列出了从给定父ID启用的所有子类别。Magento插件刷新缓存保存
用户只需使用我创建的插件选项卡从管理员中选择一个父类别标识。
为了加快速度用下面的代码
$this->addData(array(
'cache_lifetime' => 86400,
'cache_tags' => array(Mage_Catalog_Model_Category::CACHE_TAG)
));
这种运作良好,到目前为止,我已经添加块缓存到插件,就好像一个子类别的启用/禁用缓存废止及被替换。但是,如果我更改管理员中的父类别id,则只有使用system-> cachemanagment刷新整个块缓存时才会看到更改。
我想要做的是有一种方法,当用户点击保存在管理员缓存刷新只是这一块,而不是刷新一切。
我该怎么办呢?我正在考虑adminhtml中的保存事件的某种事件观察员?但我不知道如何做到这一点。
我对其他人可能拥有的建议/建议感兴趣。
非常感谢
伊恩·卡西迪
答
您可以使用事件观察清洁缓存。您可以按照this tutorial设置您的观察员,然后观察catalog_category_save_after
事件。
要清除缓存,请在您的Observer模型中使用Mage::app()->getCacheInstance()->cleanType(Mage_Catalog_Model_Category::CACHE_TAG);
。
PS:也许你必须将<events>
设置为<admin>
或<adminhtml>
而不是<globals>
。
答
您可以使用observer generate在缓存管理中单击刷新操作。之后,您可以通过缓存标记或缓存ID来清除缓存。这是通过缓存ID清除缓存的解决方案。你能看到how to refresh cache in custom cache type
这个拉斐尔的干杯:-) – revolution14 2012-03-14 17:13:46