Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Добавление своего тега к кешам компонентов
При выполнении инструкций данного урока подразумевается, что у вас включено тегированное кеширование.
Способ 1
В тело компонента добавьте следующий код:
if ($this->StartResultCache(......)) { if (defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER'])) { $GLOBALS['CACHE_MANAGER']->RegisterTag('my_custom_tag'); } // do something $this->IncludeComponentTemplate(); } else { $this->AbortResultCache(); }
Способ 2
В шаблон компонента (в result_modifier.php) добавьте следующий код:
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); if (defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER'])) { $cp =& $this->__component; if (strlen($cp->getCachePath())) { $GLOBALS['CACHE_MANAGER']->RegisterTag('my_custom_tag'); } } ?>
Чтобы сбросить все кеши, помеченные вашим тегом, выполните следующий код:
if (defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER'])) $GLOBALS['CACHE_MANAGER']->ClearByTag('my_custom_tag');
Примечание: один и тот же кеш может быть помечен несколькими тегами. Например, если вы пометите своим тегом кеш компонента bitrix:news.list, то у кеша будет два тега: штатный "iblock_id_XX" и ваш "my_custom_tag". Соответственно, кеш будет сбрасываться и при добавлении/изменении элемента в инфоблоке XX (штатный функционал), и при сбросе кеша вручную через
ClearByTag('my_custom_tag')
.Назад в раздел
Подписаться на новые материалы раздела: