Дополняем SetResultCacheKeys стандартного компонента

Достаточно частой задачей является расширение ключей кеширования, чтобы можно было значение этих ключей использовать в файле component_epilog.php шаблона компонента.  Для этого, нужно эти дополнительные ключи явно указать в файле result_modifier.php

Если стоит задача поместить в кеширование часть данных, которые появляеются в результате работы кода в файле result_modifier.php - эти данные нужно поместить в кеш. Для этого, result_modifier.php должен содержать такой код:

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$cp = $this->__component; // объект компонента

if (is_object($cp))
{
   // добавим в arResult компонента два поля - MY_TITLE и IS_OBJECT
   $cp->arResult['MY_TITLE'] = 'Мое название';
   $cp->arResult['IS_OBJECT'] = 'Y';
   $cp->SetResultCacheKeys(array('MY_TITLE','IS_OBJECT'));
   // сохраним их в копии arResult, с которой работает шаблон, если модуль main меньше 10.0
   if (!isset($arResult['MY_TITLE']))
   {
      $arResult['MY_TITLE'] = $cp->arResult['MY_TITLE'];
      $arResult['IS_OBJECT'] = $cp->arResult['IS_OBJECT'];
   }
}

В результате, в component_epilog.php будет доступен результат выполнения данного кода:

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if (isset($arResult['MY_TITLE']))
   $APPLICATION->SetTitle($arResult['MY_TITLE']);
Количество показов: 3664
05.04.2020

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.