/** * OnBeforeEndBufferContent handler */ public function onBeforeEndBufferContent() { global $APPLICATION; $frame = self::getInstance(); $params = array(); if ($frame->getUseAppCache()) { $manifest = \Bitrix\Main\Data\AppCacheManifest::getInstance(); $params = $manifest->OnBeforeEndBufferContent(); $params["CACHE_MODE"] = "APPCACHE"; $params["PAGE_URL"] = \Bitrix\Main\Context::getCurrent()->getServer()->getRequestUri(); } elseif ($frame->getUseHTMLCache()) { $staticHTMLCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance(); if ($staticHTMLCache->isCacheable()) { $params["CACHE_MODE"] = "HTMLCACHE"; if (\Bitrix\Main\Config\Option::get("main", "~show_composite_banner", "Y") == "Y") { $options = \CHTMLPagesCache::GetOptions(); $params["banner"] = array("url" => GetMessage("COMPOSITE_BANNER_URL"), "text" => GetMessage("COMPOSITE_BANNER_TEXT"), "bgcolor" => isset($options["BANNER_BGCOLOR"]) ? $options["BANNER_BGCOLOR"] : "", "style" => isset($options["BANNER_STYLE"]) ? $options["BANNER_STYLE"] : ""); } } else { return; } } $params["storageBlocks"] = array(); foreach ($frame->dynamicIDs as $id => $dynamicData) { if ($dynamicData["use_browser_storage"]) { $realId = isset($this->containers[$id]) ? $this->containers[$id] : "bxdynamic_" . $id; $params["storageBlocks"][] = $realId; } } $frame->injectedJS = $frame->getInjectedJs($params); $APPLICATION->AddHeadString($this->injectedJS["start"], false, "BEFORE_CSS"); //When dynamic hit we'll throw spread cookies away if ($frame->getUseHTMLCache() && $staticHTMLCache->isCacheable()) { $APPLICATION->GetSpreadCookieHTML(); \CJSCore::GetCoreMessagesScript(); } }
public function EndBufferContent($content = "") { if ($this->buffer_man) { $this->auto_buffer_cleaned = true; return ""; } Frame::checkAdminPanel(); if (function_exists("getmoduleevents")) { foreach (GetModuleEvents("main", "OnBeforeEndBufferContent", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array()); } } $asset = Asset::getInstance(); if (Frame::getUseAppCache()) { $asset->addString(CJSCore::GetCoreMessagesScript(), false, AssetLocation::AFTER_CSS, AssetMode::ALL); } else { $asset->addString(CJSCore::GetCoreMessagesScript(), false, AssetLocation::AFTER_CSS, AssetMode::STANDARD); $asset->addString(CJSCore::GetCoreMessagesScript(true), false, AssetLocation::AFTER_CSS, AssetMode::COMPOSITE); } $asset->addString($this->GetSpreadCookieHTML(), false, AssetLocation::AFTER_JS, AssetMode::STANDARD); if ($asset->canMoveJsToBody() && \CJSCore::IsCoreLoaded()) { $asset->addString(\CJSCore::GetInlineCoreJs(), false, AssetLocation::BEFORE_CSS, AssetMode::ALL); } if (is_object($GLOBALS["APPLICATION"])) { $cnt = count($this->buffer_content_type); for ($i = 0; $i < $cnt; $i++) { $this->buffer_content[$i * 2 + 1] = call_user_func_array($this->buffer_content_type[$i]["F"], $this->buffer_content_type[$i]["P"]); } } $composite = Frame::getInstance(); $compositeContent = $composite->startBuffering($content); $content = implode("", $this->buffer_content) . $content; if (function_exists("getmoduleevents")) { foreach (GetModuleEvents("main", "OnEndBufferContent", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array(&$content)); } } $wasContentModified = $composite->endBuffering($content, $compositeContent); if (!$wasContentModified && $asset->canMoveJsToBody()) { $asset->moveJsToBody($content); } return $content; }
function EndBufferContent($content = "") { if ($this->buffer_man) { $this->auto_buffer_cleaned = true; return ''; } if (function_exists("getmoduleevents")) { foreach (GetModuleEvents("main", "OnBeforeEndBufferContent", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array()); } } $this->AddLangJS(CJSCore::GetCoreMessagesScript()); $this->AddAdditionalJS($this->GetSpreadCookieHTML()); if (is_object($GLOBALS["APPLICATION"])) { $cnt = count($this->buffer_content_type); for ($i = 0; $i < $cnt; $i++) { $this->buffer_content[$i * 2 + 1] = call_user_func_array($this->buffer_content_type[$i]["F"], $this->buffer_content_type[$i]["P"]); } } $content = implode('', $this->buffer_content) . $content; if (function_exists("getmoduleevents")) { foreach (GetModuleEvents("main", "OnEndBufferContent", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array(&$content)); } } return $content; }