- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/composite/engine.php
- Класс: BitrixMainCompositeEngine
- Вызов: Engine::onBeforeEndBufferContent
static function onBeforeEndBufferContent()
{
$params = array();
if (self::getUseAppCache())
{
$manifest = AppCache::getInstance();
$params = $manifest->OnBeforeEndBufferContent();
$params["CACHE_MODE"] = "APPCACHE";
$params["PAGE_URL"] = Context::getCurrent()->getServer()->getRequestUri();
}
elseif (self::getUseHTMLCache())
{
$page = Page::getInstance();
$page->onBeforeEndBufferContent();
if ($page->isCacheable())
{
$params["CACHE_MODE"] = "HTMLCACHE";
if (self::isBannerEnabled())
{
$options = Helper::getOptions();
$params["banner"] = array(
"url" => GetMessage("COMPOSITE_BANNER_URL"),
"text" => GetMessage("COMPOSITE_BANNER_TEXT"),
"bgcolor" => $options["BANNER_BGCOLOR"] ?? "",
"style" => $options["BANNER_STYLE"] ?? ""
);
}
}
else
{
return;
}
}
$params["storageBlocks"] = array();
$params["dynamicBlocks"] = array();
$dynamicAreas = StaticArea::getDynamicAreas();
foreach ($dynamicAreas as $id => $dynamicArea)
{
$stub = $dynamicArea->getStub();
self::replaceSessid($stub);
$params["dynamicBlocks"][$dynamicArea->getId()] = mb_substr(md5($stub), 0, 12);
if ($dynamicArea->getBrowserStorage())
{
$realId = $dynamicArea->getContainerId() !== null ? $dynamicArea->getContainerId() : "bxdynamic_".$id;
$params["storageBlocks"][] = $realId;
}
}
$params["AUTO_UPDATE"] = self::getAutoUpdate();
$params["AUTO_UPDATE_TTL"] = self::getAutoUpdateTTL();
$params["version"] = 2;
Asset::getInstance()->addString(
self::getInjectedJs($params),
false,
AssetLocation::BEFORE_CSS,
self::getUseHTMLCache() ? AssetMode::COMPOSITE : AssetMode::ALL
);
self::$isCompositeInjected = true;
}