3namespace Sale\Handlers\Delivery;
7 Bitrix\Main\Localization\Loc,
8 Bitrix\Sale\Delivery\Services\Base,
9 Bitrix\Sale\Delivery\Services\Manager;
11Loader::registerAutoLoadClasses(
14 __NAMESPACE__.
'\RestProfile' =>
'handlers/delivery/rest/profile.php',
18Loc::loadMessages(__FILE__);
24final class RestHandler
extends Base
26 private const HANDLER_CODE_PREFIX =
'BITRIX_REST_';
28 protected static $canHasProfiles =
true;
29 protected static $whetherAdminExtraServicesShow =
true;
35 public static function getClassTitle(): string
37 return Loc::getMessage(
'SALE_DELIVERY_REST_HANDLER_NAME');
43 public static function getClassDescription(): string
45 return Loc::getMessage(
'SALE_DELIVERY_REST_HANDLER_DESCRIPTION');
53 public function __construct(
array $initParams)
55 parent::__construct($initParams);
57 if (isset($initParams[
'REST_CODE']) && $initParams[
'REST_CODE'] !==
'')
59 $this->handlerCode = $initParams[
'REST_CODE'];
61 elseif (isset($this->config[
'MAIN'][
'REST_CODE']))
63 $this->handlerCode = $this->config[
'MAIN'][
'REST_CODE'];
66 if ((
int)$this->
id <= 0)
72 $this->description =
$settings[
'DESCRIPTION'];
80 public function getHandlerCode(): string
82 return self::HANDLER_CODE_PREFIX . (string)$this->handlerCode;
85 private function getHandlerSettings(): ?
array
87 $handlerList = \Bitrix\Sale\Delivery\Services\Manager::getRestHandlerList();
88 $code = str_replace(self::HANDLER_CODE_PREFIX,
'', $this->getHandlerCode());
90 return $handlerList[
$code] ??
null;
97 protected function getConfigStructure():
array
101 if (!empty(
$settings[
'SETTINGS'][
'CONFIG']))
108 'TITLE' => Loc::getMessage(
'SALE_DELIVERY_REST_HANDLER_SETTING_TITLE'),
109 'DESCRIPTION' => Loc::getMessage(
'SALE_DELIVERY_REST_HANDLER_SETTING_DESCRIPTION'),
113 $result[
'MAIN'][
'ITEMS'][
'REST_CODE'] = [
115 'NAME' => Loc::getMessage(
'SALE_DELIVERY_REST_HANDLER_SETTING_REST_CODE'),
142 $profiles = $srv->getProfilesListFull();
143 if (is_array($profiles) && !empty($profiles))
145 foreach($profiles as $profileType => $profileFields)
147 $profile = $srv->getProfileDefaultParams($profileType, $profileFields);
148 $res = Manager::add($profile);
159 public function getProfilesListFull():
array
173 $active =
$fields[
'ACTIVE'] ?? ($this->active ?
'Y' :
'N');
174 $sort =
$fields[
'SORT'] ?? $this->sort;
178 'PARENT_ID' => $this->id,
182 'DESCRIPTION' =>
$fields[
'DESCRIPTION'],
183 'CLASS_NAME' =>
'\Sale\Handlers\Delivery\RestProfile',
187 'PROFILE_TYPE' =>
$type,
196 public static function whetherAdminExtraServicesShow(): bool
198 return self::$whetherAdminExtraServicesShow;
204 public static function getChildrenClassNames():
array
207 '\Sale\Handlers\Delivery\RestProfile'
214 public function getProfilesList():
array
218 $profiles = $this->getProfilesListFull();
219 foreach($profiles as $profileType => $profile)
221 $result[$profileType] = $profile[
'NAME'];
230 public static function canHasProfiles(): bool
232 return self::$canHasProfiles;
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)