Справка

Оператор [cache] - Настройки кеширования (вставлять в начале шаблона)

Ссылка на оператор в списке

Аргументы:
- Привязка (одно из предустановленных значений, обязательно к заполнению)
Возможные значения:
  - & : К экземпляру, URL, переменным окружению, значению циклов и cookies;
  - * : К экземпляру модуля;
  - # : К экземпляру модуля, переменным окружения и cookies;
  - % : К экземпляру модуля, переменным окружения, cookies и значению циклов;
  - _ : К значению циклов;
- Не привязывать к авторизации (одно из предустановленных значений, флаг ~)
- Отключить автоудаление (одно из предустановленных значений, флаг @)
- Привязать к текущему host (одно из предустановленных значений, флаг !)
- Время жизни (строка/число)
- Еденицы времени жизни (одно из предустановленных значений)
Возможные значения:
  - : В минутах;
  - $ : В днях;
Устанавливает настройки кеширования для части, блока, либо любого другого элемента управления (тела цикла, секции условия и т.д.)

Важно, чтобы символы настройки располагались в самом начале кешируемого шаблона (или отдельной его секции).

Первый символ, инициализирующий настройку [^] (shift+6 в английской раскладке).

Следующий символ характеризует привязку кеша ([&], [*], [#], [%] и [_] описание см.выше). От привязки будет зависеть количество вариантов кеша для одного и того же кода. Например, кеш, привязанный к значению циклов будет генерироваться для каждого значения цикла отдельно.

Далее идёт опциональный флаг [~] (тильда), наличие которого отвязывает кеш от авторизации. Если знака нет, то для разных авторизованных пользователей (и для гостей сайта отдельно) будет создаваться разный кеш. Если знак есть - кеш будет один для всех. В этом случае, если шаблон содержит код, предназначенный только для администратора (например, некие формы редактирования материала, сообщения администратора или другие секретные данные), то после кеширования они станут доступны всем пользователям.

Далее можно установить флаг [@], отвечающий за автоудаления кеша. Если знак не стоит, автоудаление будет включено. В этом случае при генерации кеша записываются все объекты, таблицы и части, используемые в нём. При их изменении, удалении (и иногда при добавлении) кеш будет автоматически очищен. Если флаг установлен - очистка кеша будет производиться только вручную, через раздел "настройки" в административной панели.

Последний флаг - [!]. Его наличие означает, что кеш жёстко привязан к домену сайта. В случае, если модуль работает на нескольких сайтах, а данный флаг не установлен, для всех сайтов будет сгенерирован одинаковый кеш. Если флаг установлен - кеш будет различаться для каждого домена.

В самом конце настройки можно указать время жизни кеша. Если оно не указано - кеш вечный (за исключения случаев автоудаления кеша, в случае превышения заданной в настройках квоты размера).

Время указывается в обычных круглых скобках. Время указывается в минутах. Если перед временем стоит знак доллара, то время указывается в сутках.

Стоит отметить, что привязка кеша к Cookies пользователя будет работать только для тех cookies-переменных, которые задействованы в кешируемом шаблоне.

Примеры настройки кеширования

^& - кеш привязан ко всему, чему только можно, любое изменение (например, добавления GET переменной в URL) приведёт к генерации нового кеша

^* - кеш привязан только к экземпляру модуля. Прочих настроек нет.

^#@(720) - кеш привязан к модулю, окружающим переменным части и cookies пользователя. Автоудаление кеша выключено, его время жизни составит 720 минут.

^_ - кеш привязан только к значению циклов, в которых он находится

^%~!($30) - кеш привязан к модулю, переменным окружения, cookies-пользователя и значениям циклов. Кроме этого кеш отвязан от авторизации пользователя и строго привязан к домену. Максимальное время жизни кеша составит 30 суток.

Примеры встраивания настроек кеширования в шаблон

Содержимое части:
^&
[if $x==1]^#(10)
  Some code
[/if]
[for 1..10]^_
  some code
[/for]