Как отключить / сократить время кэши из блока уведомления?

magento.stackexchange https://magento.stackexchange.com//questions/79571

Вопрос

Я создал модуль несколько минут назад, чтобы вытащить информацию из RSS-подачи и отобразить его в пансионатах администратора Входящие и панель инструментов, входящих прямо под меню администратора.

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

Я хотел бы отключить кэш для модуля / блока / блока уведомлений, поэтому все новые сообщения могут быть загружены каждый раз, когда страница загружается.

Я устал эту линию кода, но это, казалось, не работал:

<reference name="notification_toolbar">
<action method="setCacheLifetime"><s>0</s></action>
</reference>
.

Я не ожидал этого работать, так как это не тот, который генерирует информацию, только это отображает.

Может кто-нибудь, пожалуйста, посоветуйте мне, как отключить кэш из этого модуля / блока.

спасибо.

Это было полезно?

Решение

Я разобрался на сам!

После просматривать некоторые коды, я понимаю, что у него есть таймер частоты обновления, поэтому я посмотрел в раздел системы панели администратора и нашел селектор частоты обновления в разделе CONFIGNAFIC/ strong>=> <сильное> уведомление .К сожалению, наименьшее время, это было <крепко> 1 час .

Я прошел через папки мага и нашел следующее, что обеспечивает время.

mage / adminhtml / model / system / config / source / notification / phange.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 - это тег кэширования, которую я мог найти о уведомлениях.

Другой вариант - сделать время жизни кэша действительно коротко, написав перезапись функции setLastupdate в Core / adminnotification / model / feed.php, вы можете придать эту функцию параметр с течением времени кэша.

Я не пробовал, и я спешу, но поскольку нет ответов, которые я думал, я должен поделиться этим.Завтра добавить больше информации, если вам нужна.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top