Question

J'ai un module qui fournit un bloc. Le bloc est réglé sur BLOCK_NO_CACHE, et son contenu est tiré d'une fonction. Il permet à un administrateur du site 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 appuyant sur X. Quand ils ferment, l'action est écrit et UUID écrit à leur cookie afin qu'ils ne voient pas encore ce message.

Je reçois des rapports des utilisateurs Boost que lorsque quelqu'un ferme un message, il se ferme pour tout le monde. Je suppose que cela est dû au fait Boost est la mise en cache de la page et au service d'une page en cache après que quelqu'un a fermé le message.

Comment puis-je faire mon travail du module pour les personnes utilisant Boost?

Je pensais que le travail de force peut-être hook_boot, mais, là encore je ne sais pas s'il y a une meilleure façon d'aborder cette question.

Était-ce utile?

La solution

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

En outre, il serait difficile d'obtenir des mises à jour de rupture si la page est mise en mémoire cache. Vous aurez des problèmes similaires pour les utilisateurs de vernis ainsi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top