• Модуль: 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;
}