Exemple #1
0
 /**
  * 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();
     }
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 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;
 }