2010-11-15 6 views
0

J'ai un module qui fournit un bloc. Le bloc est défini sur BLOCK_NO_CACHE et son contenu est extrait d'une fonction. Il permet à un administrateur de site de créer un "message" à afficher sur le site, un peu comme CNN, où une mise à jour de rupture est affichée en haut, et un utilisateur peut fermer en frappant X. Quand ils le ferment, l'action est écrite et UUID écrit à leur cookie afin qu'ils ne voient plus ce message.Lire/écrire des données avec des blocs sur des pages mises en cache Boost

Je reçois des rapports d'utilisateurs Boost que lorsque quelqu'un ferme un message, il le ferme pour tout le monde. Je suppose que c'est parce que Boost cache la page et sert une page en cache après que quelqu'un a fermé le message.

Comment puis-je faire fonctionner mon module pour les utilisateurs de Boost?

Je pensais que peut-être que hook_boot pourrait fonctionner, mais, encore une fois, je ne suis pas sûr s'il y a une meilleure façon de résoudre ce problème.

Répondre

1

hook_boot ne le fera pas. Une fois que cette page est dans le cache, PHP n'est pas exécuté. Vous devez charger ce bloc via AJAX car l'état de ce bloc dépend d'un cookie. http://drupal.org/project/ajaxblocks et http://drupal.org/project/ajaxify_regions sont 2 projets qui le font facilement.

Il serait également difficile d'obtenir des mises à jour de rupture si la page est mise en cache. Vous aurez également des problèmes similaires pour les utilisateurs de vernis.

+0

Merci. Je me demandais cela depuis un moment maintenant. – Kevin

Questions connexes