Bitrix-D7  20.5.0
Класс Platform
Граф наследования:Platform:
Ebay Landing Vk YandexMarket

Открытые члены

 getId ()
 
 addLogRecord ($level, $type, $itemId, $description)
 
 getField ($fieldName)
 
 getRealName ()
 
 isActive ()
 
 setActive ()
 Sets the platform active. Подробнее...
 
 unsetActive ()
 Sets the platform inactive. Подробнее...
 
 getSettings ()
 
 saveSettings (array $settings)
 
 resetSettings ($siteId)
 
 isInstalled ()
 
 install ()
 Installs platform. Подробнее...
 
 uninstall ()
 
 getCode ()
 
 getInfo ()
 
 getExternalLink ($type, Sale\Order $order)
 

Открытые статические члены

static getInstanceByCode ($code)
 
static setShipmentTableOnAfterUpdateEvent ()
 
static onAfterUpdateShipment (\Bitrix\Main\Event $event, array $additional)
 

Поля данных

const LINK_TYPE_PUBLIC_DETAIL_ORDER = 'PUBLIC_DETAIL_ORDER'
 
const TRADING_PLATFORM_CODE = ""
 

Защищенные члены

 __construct ($code)
 Constructor. Подробнее...
 
 __clone ()
 
 isSomebodyUseCatalogSectionsTab ()
 Shows is another platforms using the iblock section edit page, "trading platforms" tab. Подробнее...
 
 setCatalogSectionsTabEvent ()
 
 unSetCatalogSectionsTabEvent ()
 

Защищенные статические члены

static isActiveItemsExist ()
 
static unSetShipmentTableOnAfterUpdateEvent ()
 

Защищенные данные

 $logger
 
 $logLevel = Logger::LOG_LEVEL_ERROR
 
 $code
 
 $isActive = false
 
 $settings = array()
 
 $isInstalled = false
 
 $isNeedCatalogSectionsTab = false
 
 $id
 
 $fields = []
 

Статические защищенные данные

static $instances = array()
 

Подробное описание

См. определение в файле platform.php строка 19

Конструктор(ы)

◆ __construct()

__construct (   $code)
protected

Constructor.

Аргументы
$code

См. определение в файле platform.php строка 44

45  {
46  $this->code = $code;
47 
48  $resPltf = TradingPlatformTable::getList(array(
49  'filter' => array(
50  '=CODE' => $this->code,
51  ),
52  ));
53 
54  if ($platform = $resPltf->fetch())
55  {
56  $this->isActive = $platform["ACTIVE"] == "Y" ? true : false;
57  $this->isNeedCatalogSectionsTab = $platform["CATALOG_SECTION_TAB_CLASS_NAME"] <> '' ? true : false;
58 
59  if (is_array($platform["SETTINGS"]))
60  $this->settings = $platform["SETTINGS"];
61 
62  $this->isInstalled = true;
63  $this->id = $platform["ID"];
64  $this->fields = $platform;
65  }
66 
67  $this->logger = new Logger($this->logLevel);
68  }

Методы

◆ __clone()

__clone ( )
protected

См. определение в файле platform.php строка 70

71  {
72  }

◆ addLogRecord()

addLogRecord (   $level,
  $type,
  $itemId,
  $description 
)
Аргументы
int$levelThe level of event.
string$typeType of event.
string$itemIdItem idenifyer.
string$descriptionDescription of event.
Возвращает
bool Success or not.

См. определение в файле platform.php строка 105

106  {
107  return $this->logger->addRecord($level, $type, $itemId, $description);
108  }

◆ getCode()

getCode ( )
Возвращает
string Platform code.

См. определение в файле platform.php строка 340

341  {
342  return $this->code;
343  }

◆ getExternalLink()

getExternalLink (   $type,
Sale\Order  $order 
)
Аргументы
$type
Sale\Order$order
Возвращает
string

Переопределяется в Landing.

См. определение в файле platform.php строка 363

364  {
365  return '';
366  }

◆ getField()

getField (   $fieldName)

См. определение в файле platform.php строка 110

111  {
112  if(!isset($this->fields[$fieldName]))
113  {
114  return '';
115  }
116 
117  return $this->fields[$fieldName];
118  }

◆ getId()

getId ( )
Возвращает
mixed Id of the current trading platform.

См. определение в файле platform.php строка 93

94  {
95  return $this->id;
96  }

◆ getInfo()

getInfo ( )
Возвращает
array

Переопределяется в Landing.

См. определение в файле platform.php строка 353

354  {
355  return [];
356  }

◆ getInstanceByCode()

static getInstanceByCode (   $code)
static
Аргументы
$code
Возвращает
\Bitrix\Sale\TradingPlatform\Platform
Исключения
ArgumentNullException

См. определение в файле platform.php строка 79

80  {
81  if ($code == '')
82  throw new ArgumentNullException("code");
83 
84  if (!isset(self::$instances[$code]))
85  self::$instances[$code] = new static($code);
86 
87  return self::$instances[$code];
88  }

◆ getRealName()

getRealName ( )

Переопределяется в Landing.

См. определение в файле platform.php строка 120

121  {
122  return $this->getField('NAME');
123  }

◆ getSettings()

getSettings ( )
Возвращает
array Platform settings.

См. определение в файле platform.php строка 260

261  {
262  return $this->settings;
263  }

◆ install()

install ( )

Installs platform.

Возвращает
int Platform Id.

Переопределяется в Vk, Landing и Ebay.

См. определение в файле platform.php строка 304

305  {
306  $res = TradingPlatformTable::add(array(
307  "CODE" => self::TRADING_PLATFORM_CODE,
308  "ACTIVE" => "N",
309  ));
310 
311  self::$instances[$this->getCode()] = new static($this->getCode());
312 
313  return $res->getId();
314  }

◆ isActive()

isActive ( )
Возвращает
bool Is the platfor active?.

См. определение в файле platform.php строка 128

129  {
130  return $this->isActive;
131  }

◆ isActiveItemsExist()

static isActiveItemsExist ( )
staticprotected

См. определение в файле platform.php строка 176

177  {
178  $dbRes = TradingPlatformTable::getList(array(
179  'filter' => array(
180  'ACTIVE' => 'Y',
181  ),
182  'select' => array('ID'),
183  ));
184 
185  if ($platform = $dbRes->fetch())
186  $result = true;
187  else
188  $result = false;
189 
190  return $result;
191  }

◆ isInstalled()

isInstalled ( )
Возвращает
bool Is platfom installed?.

См. определение в файле platform.php строка 295

296  {
297  return $this->isInstalled;
298  }

◆ isSomebodyUseCatalogSectionsTab()

isSomebodyUseCatalogSectionsTab ( )
protected

Shows is another platforms using the iblock section edit page, "trading platforms" tab.

Возвращает
bool

См. определение в файле platform.php строка 221

222  {
223  $result = false;
224 
225  $res = TradingPlatformTable::getList(array(
226  'select' => array("ID", "CATALOG_SECTION_TAB_CLASS_NAME"),
227  'filter' => array(
228  '!=CODE' => $this->code,
229  '=ACTIVE' => 'Y',
230  ),
231  ));
232 
233  while ($arRes = $res->fetch())
234  {
235  if ($arRes["CATALOG_SECTIONS_TAB_CLASS_NAME"] <> '')
236  {
237  $result = true;
238  break;
239  }
240  }
241 
242  return $result;
243  }

◆ onAfterUpdateShipment()

static onAfterUpdateShipment ( \Bitrix\Main\Event  $event,
array  $additional 
)
static

Переопределяется в Ebay.

См. определение в файле platform.php строка 345

346  {
347  return new EventResult();
348  }

◆ resetSettings()

resetSettings (   $siteId)

См. определение в файле platform.php строка 278

279  {
280  $settings = $this->getSettings();
281  if (isset($settings[$siteId]) && is_array($settings[$siteId]))
282  {
283  unset($settings[$siteId]);
284  }
285 
286  if (empty($settings))
287  $this->unsetActive();
288 
289  return $this->saveSettings($settings);
290  }
unsetActive()
Sets the platform inactive.
Definition: platform.php:160

◆ saveSettings()

saveSettings ( array  $settings)
Аргументы
array$settingsPlatform settings.
Возвращает
bool Is success?.

Переопределяется в Vk.

См. определение в файле platform.php строка 269

270  {
271  $this->settings = $settings;
272  $result = TradingPlatformTable::update($this->id, array("SETTINGS" => $settings));
273 
274  return $result->isSuccess() && $result->getAffectedRowsCount();
275  }

◆ setActive()

setActive ( )

Sets the platform active.

Возвращает
bool

Переопределяется в Vk и Ebay.

См. определение в файле platform.php строка 137

138  {
139  if ($this->isActive())
140  return true;
141 
142  $this->isActive = true;
143 
144  if ($this->isNeedCatalogSectionsTab && !$this->isSomebodyUseCatalogSectionsTab())
146 
147  // if we are the first, let's switch on the event to notify about the track numbers changings
148  if (!$this->isActiveItemsExist())
150 
151  $res = TradingPlatformTable::update($this->id, array("ACTIVE" => "Y"));
152 
153  return $res->isSuccess();
154  }
isSomebodyUseCatalogSectionsTab()
Shows is another platforms using the iblock section edit page, "trading platforms" tab.
Definition: platform.php:221

◆ setCatalogSectionsTabEvent()

setCatalogSectionsTabEvent ( )
protected

Переопределяется в Landing.

См. определение в файле platform.php строка 245

246  {
247  $eventManager = EventManager::getInstance();
248  $eventManager->registerEventHandlerCompatible("main", "OnAdminIBlockSectionEdit", "sale", "\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "OnInit");
249  }

◆ setShipmentTableOnAfterUpdateEvent()

static setShipmentTableOnAfterUpdateEvent ( )
static

Переопределяется в Landing.

См. определение в файле platform.php строка 193

194  {
195  $eventManager = EventManager::getInstance();
196  $eventManager->registerEventHandler(
197  'sale',
198  'ShipmentOnAfterUpdate',
199  'sale',
200  '\Bitrix\Sale\TradingPlatform\Helper',
201  'onAfterUpdateShipment'
202  );
203  }

◆ uninstall()

uninstall ( )
Возвращает
bool Is deletion successful?.

Переопределяется в Vk.

См. определение в файле platform.php строка 319

320  {
321  if ($this->isInstalled())
322  {
323  $this->unsetActive();
324  $res = TradingPlatformTable::delete($this->getId());
325  }
326  else
327  {
328  $res = new Result();
329  }
330 
331  unset(self::$instances[$this->getCode()]);
332  $this->isInstalled = false;
333 
334  return $res->isSuccess();
335  }

◆ unsetActive()

unsetActive ( )

Sets the platform inactive.

Возвращает
bool

Переопределяется в Vk и Ebay.

См. определение в файле platform.php строка 160

161  {
162  $this->isActive = false;
163 
164  if ($this->isNeedCatalogSectionsTab && !$this->isSomebodyUseCatalogSectionsTab())
166 
167  $res = TradingPlatformTable::update($this->id, array("ACTIVE" => "N"));
168 
169  //If we are last let's switch off unused event about track numbers changing
170  if (!$this->isActiveItemsExist())
172 
173  return $res->isSuccess();
174  }

◆ unSetCatalogSectionsTabEvent()

unSetCatalogSectionsTabEvent ( )
protected

Переопределяется в Landing.

См. определение в файле platform.php строка 251

252  {
253  $eventManager = EventManager::getInstance();
254  $eventManager->unRegisterEventHandler("main", "OnAdminIBlockSectionEdit", "sale", "\\Bitrix\\Sale\\TradingPlatform\\CatalogSectionTab", "OnInit");
255  }

◆ unSetShipmentTableOnAfterUpdateEvent()

static unSetShipmentTableOnAfterUpdateEvent ( )
staticprotected

Переопределяется в Landing.

См. определение в файле platform.php строка 205

206  {
207  $eventManager = EventManager::getInstance();
208  $eventManager->unRegisterEventHandler(
209  'sale',
210  'ShipmentOnAfterUpdate',
211  'sale',
212  '\Bitrix\Sale\TradingPlatform\Helper',
213  'onAfterUpdateShipment'
214  );
215  }

Поля

◆ $code

$code
protected

См. определение в файле platform.php строка 26

◆ $fields

$fields = []
protected

См. определение в файле platform.php строка 34

◆ $id

$id
protected

См. определение в файле platform.php строка 33

◆ $instances

$instances = array()
staticprotected

См. определение в файле platform.php строка 36

◆ $isActive

$isActive = false
protected

См. определение в файле platform.php строка 27

◆ $isInstalled

$isInstalled = false
protected

См. определение в файле platform.php строка 30

◆ $isNeedCatalogSectionsTab

$isNeedCatalogSectionsTab = false
protected

См. определение в файле platform.php строка 31

◆ $logger

$logger
protected

См. определение в файле platform.php строка 23

◆ $logLevel

$logLevel = Logger::LOG_LEVEL_ERROR
protected

См. определение в файле platform.php строка 24

◆ $settings

$settings = array()
protected

См. определение в файле platform.php строка 28

◆ LINK_TYPE_PUBLIC_DETAIL_ORDER

const LINK_TYPE_PUBLIC_DETAIL_ORDER = 'PUBLIC_DETAIL_ORDER'

См. определение в файле platform.php строка 21

◆ TRADING_PLATFORM_CODE

const TRADING_PLATFORM_CODE = ""

См. определение в файле platform.php строка 38


Объявления и описания членов класса находятся в файле: