• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/manager.php
  • Класс: BitrixSalePaySystemManager
  • Вызов: Manager::getHandlerDescription
static function getHandlerDescription($handler, $psMode = null)
{
	$service = new Service(array('ACTION_FILE' => $handler, 'PS_MODE' => $psMode));
	$data = $service->getHandlerDescription();

	$eventParams = array('handler' => $handler);
	$event = new Event('sale', self::EVENT_ON_GET_HANDLER_DESC, $eventParams);
	$event->send();
	foreach ($event->getResults() as $eventResult)
	{
		if ($eventResult->getType() !== EventResult::ERROR)
		{
			$codes = $eventResult->getParameters();
			if ($codes && is_array($codes))
			{
				if (!isset($data['CODES']) || !is_array($data['CODES']))
				{
					$data['CODES'] = [];
				}

				$data['CODES'] = array_merge($data['CODES'], $codes);
			}
		}
	}

	if (isset($data['CODES']) && is_array($data['CODES']))
	{
		uasort(
			$data['CODES'],
			function ($a, $b)
			{
				$sortA = $a['SORT'] ?? 0;
				$sortB = $b['SORT'] ?? 0;

				return ($sortA < $sortB) ? -1 : 1;
			}
		);
	}

	return $data;
}