- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/composite/engine.php
- Класс: BitrixMainCompositeEngine
- Вызов: Engine::shouldBeEnabled
static function shouldBeEnabled()
{
if (self::isSelfHostedPortal())
{
return;
}
if (defined("USE_HTML_STATIC_CACHE") && USE_HTML_STATIC_CACHE === true)
{
if (
!defined("BX_SKIP_SESSION_EXPAND") &&
(!defined("ADMIN_SECTION") || (defined("ADMIN_SECTION") && ADMIN_SECTION != "Y"))
)
{
if (self::isInvalidationRequest())
{
$cacheKey = Helper::convertUriToPath(
Helper::getRequestUri(),
Helper::getHttpHost(),
Helper::getRealPrivateKey(Page::getPrivateKey())
);
if (!Locker::lock($cacheKey))
{
die(Engine::getAjaxError("invalidation_request_locked"));
}
}
self::setUseHTMLCache();
$options = Helper::getOptions();
if (isset($options["AUTO_UPDATE"]) && $options["AUTO_UPDATE"] === "N")
{
self::setAutoUpdate(false);
}
if (isset($options["AUTO_UPDATE_TTL"]))
{
self::setAutoUpdateTTL($options["AUTO_UPDATE_TTL"]);
}
define("BX_SKIP_SESSION_EXPAND", true);
}
}
else if (Responder::getLastError() !== null && Logger::isOn())
{
$result = Logger::log(array(
"TYPE" => Responder::getLastError(),
"MESSAGE" => Responder::getLastErrorMessage()
));
//try to update page title on the end of a page execution
if ($result && $result->getId())
{
$recordId = $result->getId();
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler("main", "OnEpilog", function() use($recordId) {
if (is_object($GLOBALS["APPLICATION"]))
{
DebugModelLogTable::update($recordId, array(
"TITLE" => $GLOBALS["APPLICATION"]->getTitle()
));
}
});
}
}
if (
(defined("ENABLE_HTML_STATIC_CACHE_JS") && ENABLE_HTML_STATIC_CACHE_JS === true) &&
(!defined("ADMIN_SECTION") || ADMIN_SECTION !== true)
)
{
CJSCore::init(array("fc")); //to warm up localStorage
}
}