Здравствуйте, уважаемые читатели!
Хочу поделиться с вами опытом решения своей проблемы в нашем всеми любимом CMS 1C- Битрикс.
Задача: Необходимостью разместить хлебные крошки внутри кешируемого шаблона.
Условие 1: Сделать алгоритм отложенного вызова, но не такой, какой предусмотрен системой Битрикс. В уже существующем алгоритме есть проблема с кешем. Следующее включение компонента
$APPLIACATION->IncludeComponent("bitrix:breadcrumb", ".default");
включает буферизацию методом AddBufferContent, который в свою очередь вешает событие onEndBufferContent. Это событие обрабатывается после кешированием, поэтому в кеш буферизированные данные попасть не могут. Это приводит к потере части контента. (В моем случае пропадал код шаблона, расположенный до вызова компонента bitrix:breadcrumb.)
Условие 2: Модификация хлебных крошек может производиться после вызова шаблона.