%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/ui/install/components/bitrix/ui.sidepanel.wrapper/ |
Current File : /home/bitrix/www/bitrix/modules/ui/install/components/bitrix/ui.sidepanel.wrapper/class.php |
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die(); /** * Class UIPageSliderWrapperComponent */ class UIPageSliderWrapperComponent extends \CBitrixComponent { /** @var bool $isWrapperCalled */ protected static $isWrapperCalled = false; /** * Is page slider context. */ protected function isPageSliderContext() { return $this->request->get('IFRAME') === 'Y'/* && $this->request->get('IFRAME_TYPE') === 'SIDE_SLIDER'*/; } /** * Execute component. */ public function executeComponent() { if (!isset($this->arParams['POPUP_COMPONENT_PARAMS']) || !is_array($this->arParams['POPUP_COMPONENT_PARAMS'])) { $this->arParams['POPUP_COMPONENT_PARAMS'] = []; } $this->arParams['POPUP_COMPONENT_PARAMS']['IFRAME'] = true; if (empty($this->arParams['EDITABLE_TITLE_DEFAULT'])) { $this->arParams['EDITABLE_TITLE_DEFAULT'] = 'Default name'; } if (empty($this->arParams['EDITABLE_TITLE_SELECTOR'])) { $this->arParams['EDITABLE_TITLE_SELECTOR'] = null; } $notification = [ 'content' => null, 'autoHideDelay' => 5000, ]; if (isset($this->arParams['NOTIFICATION'])) { if (is_string($this->arParams['NOTIFICATION']) && !empty($this->arParams['~NOTIFICATION'])) { $notification['content'] = $this->arParams['~NOTIFICATION']; } elseif(is_array($this->arParams['NOTIFICATION'])) { $notifyOptions = $this->arParams['NOTIFICATION']; foreach ($notification as $key => $defaultValue) { $notification[$key] = isset($notifyOptions[$key]) ? $notifyOptions[$key] : $defaultValue; } } } $this->arParams['NOTIFICATION'] = $notification; $this->arParams['USE_LINK_TARGETS_REPLACING'] = isset($this->arParams['USE_LINK_TARGETS_REPLACING']) ? (bool) $this->arParams['USE_LINK_TARGETS_REPLACING'] : false; $this->arParams['PLAIN_VIEW'] = isset($this->arParams['PLAIN_VIEW']) ? (bool) $this->arParams['PLAIN_VIEW'] : false; $this->arParams['USE_PADDING'] = isset($this->arParams['USE_PADDING']) ? (bool) $this->arParams['USE_PADDING'] : true; $this->arParams['BUTTONS'] = isset($this->arParams['BUTTONS']) ? $this->arParams['BUTTONS'] : []; $this->arParams['PAGE_MODE'] = isset($this->arParams['PAGE_MODE']) ? (bool) $this->arParams['PAGE_MODE'] : true; $this->arParams['PAGE_MODE_OFF_BACK_URL'] = isset($this->arParams['PAGE_MODE_OFF_BACK_URL']) ? $this->arParams['PAGE_MODE_OFF_BACK_URL'] : '/'; $this->arParams['CLOSE_AFTER_SAVE'] = isset($this->arParams['CLOSE_AFTER_SAVE']) ? (bool) $this->arParams['CLOSE_AFTER_SAVE'] : false; $this->arParams['RELOAD_PAGE_AFTER_SAVE'] = isset($this->arParams['RELOAD_PAGE_AFTER_SAVE']) ? (bool) $this->arParams['RELOAD_PAGE_AFTER_SAVE'] : false; $this->arParams['RELOAD_GRID_AFTER_SAVE'] = isset($this->arParams['RELOAD_GRID_AFTER_SAVE']) ? is_string($this->arParams['RELOAD_GRID_AFTER_SAVE']) ? $this->arParams['RELOAD_GRID_AFTER_SAVE'] : (bool) $this->arParams['RELOAD_GRID_AFTER_SAVE'] : false; if ($this->request->isPost()) { $this->arParams['CLOSE_AFTER_SAVE'] = false; $this->arParams['RELOAD_GRID_AFTER_SAVE'] = false; $this->arParams['RELOAD_PAGE_AFTER_SAVE'] = false; } if ($this->isPageSliderContext() && !self::$isWrapperCalled) { self::$isWrapperCalled = true; /** @var \CAllMain $APPLICATION */ global $APPLICATION; $APPLICATION->RestartBuffer(); $this->includeComponentTemplate(); \CAllMain::FinalActions(); exit; } elseif ($this->arParams['PAGE_MODE'] || self::$isWrapperCalled) { $this->includeComponentTemplate('content'); } elseif (!$this->arParams['PAGE_MODE']) { $this->includeComponentTemplate('loader'); } } }