Небольшая доработка системы кэширования MODx 1.0.5

Система кэширования в MODx 1.0 достаточно хорошо справляется со своей работой, если на сайте не слишком много страниц, примерно до пяти тысяч. Решение проблем больших сайтов в данной статье не рассматривается, а всего лишь предлагается пара дополнительных средств, позволяющих улучшить работу с кэшем.

Если страница описана как кэшируемая, кэш будет создаваться при любом ее вызове, в том числе и при просмотре страницы менеджером, работающем в административной части MODx. Однако страницы сайта, генерируемые для менеджеров, могут отличаться от страниц, просматриваемых посетителями. Элементы, доступные только менеджерам, не надо записывать в кэш, и для этого достаточно добавить простейший плагин, отменяющий кэширование страниц, просматриваемых менеджерами. Создайте плагин и поместите в него расположенный ниже код, а также задайте для плагина событие OnLoadWebDocument. Теперь кэширование страниц будет происходить только при их просмотре обычными посетителями.

$e =& $modx->event;

switch ($e->name ) {

  case 'OnLoadWebDocument':

    if ($modx->isFrontend() && isset ($_SESSION['mgrValidated']))

      $modx->documentObject['cacheable'] = 0;

    break ;

  default:

    return ;

}

Порой требуется создать кэш для всех страниц сайта до того, как эти страницы начнут просматривать посетители. Такая задача чаще всего возникает при большой нагрузке на хостинг и существенном различии времени генерации кэшированных и некэшированных страниц. После очистки кэша можно запустить процедуру генерации нового кэша, чтобы посетители просматривали только кэшированные страницы. Для реализации этой задачи можно использовать специальный модуль. Скачайте модуль кэширования и поместите все файлы из архива в папку assets/modules. Далее создайте модуль, поместив в него содержимое файла cacheAllPages.tpl. Если добавить нужные файлы в папку assets/modules до установки MODx, а также добавить файл cacheAllPages.tpl в папку install/assets/modules, модуль будет автоматически установлен вместе с другими компонентами MODx. Следует обратить внимание, что в модуль были внесены незначительные изменения для совместимости с версией MODx 1.0.5.

Для выполнения процедуры кэширования всех страниц сайта следует запустить модуль и нажать кнопку «Создать кэш». Процесс иллюстрируется прогресс-индикатором. В любой момент можно выйти из модуля, нажав кнопку «Закрыть модуль», и в следующий раз кэшировать оставшиеся страницы. Прерывание работы модуля любым способом в любое время не должно нарушить работу сайта. Кэшируются все опубликованные и не удаленные страницы, помеченные как кэшируемые, ранее не кэшированные, не ограниченные к просмотру.

 

Реклама

Поиск на сайте

Введите ваш запрос для начала поиска.