Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/components/bitrix/sender.segment/ |
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/components/bitrix/sender.segment/class.php |
<? use Bitrix\Main\Localization\Loc; use Bitrix\Main\ErrorCollection; use Bitrix\Main\Loader; use Bitrix\Main\Error; use Bitrix\Sender\Preset; use Bitrix\Sender\Security; if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } Loc::loadMessages(__FILE__); class SenderSegmentComponent extends CBitrixComponent { /** @var ErrorCollection $errors */ protected $errors; protected function checkRequiredParams() { if (!Loader::includeModule('sender')) { $this->errors->setError(new Error('Module `sender` is not installed.')); return false; } return true; } protected function initParams() { $this->arParams['SEF_MODE'] = isset($this->arParams['SEF_MODE']) ? $this->arParams['SEF_MODE'] : 'Y'; $this->arParams['SEF_FOLDER'] = isset($this->arParams['SEF_FOLDER']) ? $this->arParams['SEF_FOLDER'] : ''; $this->arParams['ELEMENT_ID'] = isset($this->arParams['ELEMENT_ID']) ? $this->arParams['ELEMENT_ID'] : $this->request->get('id'); $this->arParams['IFRAME'] = isset($this->arParams['IFRAME']) ? $this->arParams['IFRAME'] : true; $this->arResult['NAME_TEMPLATE'] = empty($this->arParams['NAME_TEMPLATE']) ? \CAllSite::GetNameFormat(false) : str_replace(array("#NOBR#","#/NOBR#"), array("",""), $this->arParams["NAME_TEMPLATE"]); $this->arResult['PATH_TO_USER_PROFILE'] = isset($this->arParams['PATH_TO_USER_PROFILE']) ? $this->arParams['PATH_TO_USER_PROFILE'] : '/company/personal/user/#id#/'; $this->arParams['SHOW_CONTACT_SETS'] = isset($this->arParams['SHOW_CONTACT_SETS']) ? $this->arParams['SHOW_CONTACT_SETS'] : false; if (!isset($this->arParams['VARIABLE_ALIASES'])) { $this->arParams['VARIABLE_ALIASES'] = array( "list" => Array(), "edit" => Array(), "result" => Array(), "add" => Array( 'id' => 'ID' ), ); } $arDefaultUrlTemplates404 = array( "list" => "list/", "add" => "add/0/", "result" => "result/", "edit" => "edit/#id#/", ); $componentPage = 'list'; if ($this->arParams['SEF_MODE'] == 'Y') { $arDefaultVariableAliases404 = array(); $arComponentVariables = array('id'); $arVariables = array(); $arUrlTemplates = CComponentEngine::makeComponentUrlTemplates($arDefaultUrlTemplates404, $this->arParams['SEF_URL_TEMPLATES']); $arVariableAliases = CComponentEngine::makeComponentVariableAliases($arDefaultVariableAliases404, $this->arParams['VARIABLE_ALIASES']); $componentPage = CComponentEngine::parseComponentPath($this->arParams['SEF_FOLDER'], $arUrlTemplates, $arVariables); if (!(is_string($componentPage) && isset($componentPage[0]) && isset($arDefaultUrlTemplates404[$componentPage]))) { $componentPage = 'list'; } CComponentEngine::initComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, $arVariables); foreach ($arUrlTemplates as $url => $value) { $key = 'PATH_TO_'.strtoupper($url); $this->arResult[$key] = isset($this->arParams[$key][0]) ? $this->arParams[$key] : $this->arParams['SEF_FOLDER'] . $value; } } else { $arComponentVariables = array( isset($this->arParams['VARIABLE_ALIASES']['id']) ? $this->arParams['VARIABLE_ALIASES']['id'] : 'id' ); $arDefaultVariableAliases = array( 'id' => 'id' ); $arVariables = array(); $arVariableAliases = CComponentEngine::makeComponentVariableAliases($arDefaultVariableAliases, $this->arParams['VARIABLE_ALIASES']); CComponentEngine::initComponentVariables(false, $arComponentVariables, $arVariableAliases, $arVariables); if (isset($_REQUEST['edit'])) { $componentPage = 'edit'; } elseif (isset($_REQUEST['add'])) { $componentPage = 'add'; } elseif (isset($_REQUEST['result'])) { $componentPage = 'result'; } /** @var \CAllMain $APPLICATION */ global $APPLICATION; foreach ($arDefaultUrlTemplates404 as $url => $value) { $key = 'PATH_TO_'.strtoupper($url); $value = substr($value, 0, -1); $value = str_replace('/', '&ID=', $value); $this->arResult[$key] = $APPLICATION->GetCurPage() . "?$value"; } } $componentPage = $componentPage == 'add' ? 'edit' : $componentPage; if (!is_array($this->arResult)) { $this->arResult = array(); } $this->arResult = array_merge( array( 'COMPONENT_PAGE' => $componentPage, 'VARIABLES' => $arVariables, 'ALIASES' => $this->arParams['SEF_MODE'] == 'Y' ? array(): $arVariableAliases, 'ID' => isset($arVariables['id']) ? strval($arVariables['id']) : '', 'PATH_TO_USER_PROFILE' => $this->arParams['PATH_TO_USER_PROFILE'] ), $this->arResult ); } protected function prepareResult() { Preset\Installation\Installer::installNewest(); Security\Agreement::requestFromCurrentUser(); return true; } protected function printErrors() { foreach ($this->errors as $error) { ShowError($error); } } public function executeComponent() { $this->errors = new \Bitrix\Main\ErrorCollection(); $this->initParams(); if (!$this->checkRequiredParams()) { $this->printErrors(); return; } if (!$this->prepareResult()) { $this->printErrors(); return; } $this->includeComponentTemplate($this->arResult['COMPONENT_PAGE']); } }