Обновление кэша Magento при сохранении плагина

Я написал простой плагин Magento, который просто перечисляет все подкатегории, которые включены из данного родительского идентификатора.

Пользователь просто выбирает идентификатор родительской категории из администратора, используя вкладку плагина, которую я создал.

Чтобы ускорить работу, я добавил кэширование блоков в плагин, используя следующий код

$this->addData(array( 'cache_lifetime' => 86400, 'cache_tags' => array(Mage_Catalog_Model_Category::CACHE_TAG) )); 

До сих пор это хорошо работает, как если бы подкатегория была включена / отключена, кеш недействителен и заменяется. Однако, если я изменяю идентификатор родительской категории в администраторах, изменения не видны до тех пор, пока весь кеш блока не будет обновлен с помощью system-> cache management.

То, что я хотел бы сделать, – это иметь способ, когда, когда пользователь нажимает на сохранение в админе, кеш очищается только для этого блока, а не обновляет все.

Как я могу это сделать? Я думаю, какой-то наблюдатель событий в событии сохранения в adminhtml? однако я бы не знал, как это сделать.

Меня интересует то, что, возможно, есть у других людей.

Большое спасибо

Ян Кэссиди

Вы можете использовать Event Observer для очистки кеша. Вы можете следовать этому руководству, чтобы настроить своих наблюдателей, а затем наблюдать за событием catalog_category_save_after .

Чтобы очистить кеш, используйте Mage::app()->getCacheInstance()->cleanType(Mage_Catalog_Model_Category::CACHE_TAG); в вашей модели наблюдателей.

PS: возможно, вам нужно настроить свои <events> на <admin> или <adminhtml> вместо <globals> .

вы можете использовать генератор наблюдателя, когда нажимаете кнопку «Обновить» в управлении кешем. после этого вы можете очистить кеш с помощью тега кэша или идентификатора кэша. Это решение для очистки кэша с помощью идентификатора кеша. вы можете увидеть, как обновить кеш в пользовательском типе кеша