Чтение / запись данных с блоками на Boost-кэшированных страницах - PullRequest
0 голосов
/ 15 ноября 2010

У меня есть модуль, который поставляет блок.Блок имеет значение BLOCK_NO_CACHE, а его содержимое извлекается из функции.Это позволяет администратору сайта создать «сообщение» для отображения на сайте, вроде CNN, где в верхней части отображается последнее обновление, а пользователь может закрыть его, нажав X. Когда они закрывают его, действие записываетсяи UUID записывается в их cookie, чтобы они больше не видели это сообщение.

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

Как я могу заставить мой модуль работать для людей, использующих Boost?

Я подумал, что возможно hook_boot можетработать, но, опять же, я не уверен, есть ли лучший способ решить эту проблему.

1 Ответ

1 голос
/ 18 ноября 2010

hook_boot не будет этого делать.Как только эта страница находится в кеше, PHP не запускается.Вам необходимо загрузить этот блок через AJAX, поскольку состояние этого блока зависит от файла cookie.http://drupal.org/project/ajaxblocks и http://drupal.org/project/ajaxify_regions - это два проекта, которые легко это делают.

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

...