Pergunta

Criei um módulo há alguns minutos para extrair informações de um feed RSS e exibi-las na caixa de entrada de notificação do painel de administração e na barra de ferramentas logo abaixo do menu de administração.

Isso funciona perfeitamente, mas infelizmente não carrega novas mensagens quando atualizo.Eu tenho que liberar o cache do magento e depois atualizar para carregar as novas mensagens.

Gostaria de desabilitar o cache do módulo/bloco de notificações, para que todas as novas mensagens possam ser carregadas sempre que a página for carregada.

cansei esta linha de código, mas não pareceu funcionar:

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

Não esperava que funcionasse, pois não é quem gera a informação, apenas a exibe.

Alguém pode me aconselhar sobre como desabilitar o cache deste módulo/bloco.

obrigado.

Foi útil?

Solução

Eu descobri sozinho!

depois de examinar alguns códigos, percebi que ele tem um temporizador de frequência de atualização, então procurei na seção de sistema do painel de administração e encontrei um seletor de frequência de atualização em configuração => sistema => notificação.Infelizmente o menos tempo que teve foi 1 hora.

Examinei as pastas do mago e encontrei o seguinte que fornece os horários.

Mage/Adminhtml/Model/System/Config/Source/Notification/Frequency.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')
        );
    }
}

Em seguida, adicionei o código a seguir e executei alguns testes, que funcionaram!

0 => Mage::helper('adminhtml')->__('0 Minute'),

Não tenho certeza se fiz isso corretamente, mas faz exatamente o que preciso.em seguida, substituo isso pelo meu módulo para concluí-lo.

Espero que ajude outras pessoas!

Outras dicas

por que você quer que isso seja atualizado tão comum, não iria encher sua caixa de entrada?

Pode haver 2 opções para você: você pode escrever um observador de eventos que limpe esse cache.admin_notifications_lastcheck é a tag de cache que encontrei sobre as notificações.

A outra opção é tornar o tempo de vida do cache realmente curto, reescrevendo a função setLastUpdate em core/AdminNotification/model/feed.php. Você pode atribuir a esta função um parâmetro com um tempo de vida do cache.

Não tentei e estou com pressa, mas como não há respostas achei que deveria compartilhar.Posso adicionar mais informações amanhã se você precisar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top