Question

J'ai créé un module il y a quelques minutes pour tirer des informations d'un flux RSS et l'afficher dans la boîte de réception et la barre d'outils de notification des panneaux d'administrateur qui est juste en dessous du menu Admin.

Cela fonctionne parfaitement, mais malheureusement, il ne charge pas de nouveaux messages lorsque je rafraîchis.Je dois chasser le cache de Magento, puis rafraîchissez-vous de charger les nouveaux messages.

Je voudrais désactiver le cache pour le module / bloc de notifications, de sorte que tous les nouveaux messages peuvent être chargés chaque fois que la page est chargée.

J'ai fatigué cette ligne de code mais cela ne semble pas fonctionner:

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

Je ne m'attendais pas à ce que cela fonctionne, car ce n'est pas celui qui génère les informations, ne l'affiche que.

Quelqu'un peut-il vous conseiller sur la façon de désactiver le cache de ce module / bloc.

merci.

Était-ce utile?

La solution

Je l'ai compris par moi-même!

Après avoir examiné certains codes, je me rends compte qu'il a une minuterie de fréquence de mise à jour, donc j'ai regardé dans la section système du panneau d'administration et j'ai trouvé un sélecteur de fréquence de mise à jour sous Configuration => Système => Notification .Malheureusement, le moins de temps, il était 1 heure .

J'ai traversé les dossiers de mage et j'ai trouvé ce qui suit qui fournit les temps.

mage / adminhtml / modèle / système / config / source / notification / fréquence.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')
        );
    }
}

J'ai ensuite ajouté le code suivant et a rencontré des tests, qui fonctionnaient!

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

Je ne sais pas si je l'ai fait correctement, mais cela fait exactement ce que j'en ai besoin. Je remplace ensuite cela avec mon module pour le compléter.

J'espère que cela aide les autres!

Autres conseils

Pourquoi voulez-vous que cela se mettra à jour si commun, ne voudriez-vous pas bloquer votre boîte de réception?

Il peut y avoir 2 options pour vous, vous pouvez écrire un observateur d'événement qui efface ce cache.admin_notifications_lastcheck est la balise de cache que je pourrais trouver sur les notifications.

L'autre option consiste à rendre la durée de vie du cache vraiment courte en écrivant une réécriture de la fonction SETLASTUPDATE dans Core / AdminNotification / Modèle / Feder.php Vous pouvez donner à cette fonction un paramètre avec une durée de vie de cache.

Je n'ai pas essayé et je suis pressé, mais comme il n'y a pas de réponses, je pensais que je devrais le partager.Je peux ajouter plus d'informations demain si vous en avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top