Задача относительно проста:
Сайт Drupal отображает список статей с миниатюрами. Некоторые посетители хотели бы просмотреть его без изображений, нажав на кнопку / ссылку и сохранив это предпочтение.
например. http://patterntap.com/collections/index/
Проблема в том, что все посетители являются анонимными и имеют определенный трафик, кеш страниц включен.
Моя идея заключалась в том, чтобы использовать простой JavaScript для установки cookie, обновления страницы и в зависимости от значений cookie (или их наличия / отсутствия) отображать или скрывать изображения.
За исключением того, что Drupal обслуживает кэшированные страницы довольно рано, и единственный быстрый способ изменить кэшированную версию, которую я смог найти, - это взломать include / bootstrap.inc и добавить собственный класс в классы тела, а затем скрыть изображения с помощью css.
Очень неправильный подход, я знаю. Но мне интересно, есть ли способ сохранить разные версии страницы и предоставить правильную версию?
Edit:
- нужно сохранить тот же URI
- JS, чтобы показать / скрыть изображения без перезагрузки и установить cookie, уже на месте
hook_boot()
на самом деле не вызывается для кэшированных страниц, поэтому не может сделать это через пользовательский модуль
- .htaccess модов?
Редактировать / решение:
В конце концов пошел с предложением Римиана. Но выполнить задачу можно с помощью нашей собственной реализации cache.inc, как показано в модуле Mobile Tools . В частности, путем расширения cache.inc и обновления settings.php для включения
$conf['page_cache_fastpath'] = FALSE;
$conf['cache_inc'] = 'path/to/my/module/my_module_cache.inc';