Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Joomla позволяет кешировать отдельные части шаблонов, компонентов, а именно их вывод. Для этого необходимо создать объект кеша с обработчиком "output", так как показано
Создается кеш-объект c обработчиком "output". "com_test" в данном случае - это место хранения кеша: /cache/com_test ( в случае файлового кеша)
Далее выбирается идентификатор кеширования. Он должен зависеть например от внешних условий расширения. Таким образом для разных страниц, с разными Itemid будет создаваться разный кеш и не будет путаницы. В принципе можно подставлять сериализованые массивы с текущими параметрами вызова и прочее. Хорошим вариантом можно считать следующий вариант:
Таким образом обновление произойдет автоматический сброс при изменении элемента администратором сайта.
Внимание: Будте осторожны с выбором идентификатора кеша. Например использование следующих вариантов грозит резким ростом размера кеша, особенно на больших сайтах с высокой посещаемостью. Эффективность кеширования пойдет к нулю, более того в какой-то мере это можно считать дырой в безопасности сайта.
Далее начинаем непосредственный перехват вывода. Если файл кеша отсутствует или истек период его жизни, то функция start() вернет "false", в противном случае функция вернет "true".
В случае просроченного/отсутсвующего кеша - запуститься буферизация вывода. Заканчивается буферизация после выполнения end(). Если start() вернул "true", будет использован тот текст, который хранился с прошлого раза в файлах кеша.
Спасибо очень полезно
Возможно ли как то исключить из кеширования определенный компонент или модуль при включенном стандартном кеше и стандартном плагине Система ->Кеш?
Dear joomla-book.ru webmaster, Thanks for the well-written and informative post!