• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/extra_services/manager.php
  • Класс: BitrixSaleDeliveryExtraServicesManager
  • Вызов: Manager::initClassesList
static function initClassesList()
{
	if(static::$classes !== null)
		return true;

	$classes = array(
		'BitrixSaleDeliveryExtraServicesEnum' => 'lib/delivery/extra_services/enum.php',
		'BitrixSaleDeliveryExtraServicesStore' => 'lib/delivery/extra_services/store.php',
		'BitrixSaleDeliveryExtraServicesQuantity' => 'lib/delivery/extra_services/quantity.php',
		'BitrixSaleDeliveryExtraServicesCheckbox' => 'lib/delivery/extra_services/checkbox.php'
	);

	BitrixMainLoader::registerAutoLoadClasses('sale', $classes);
	ServicesManager::getHandlersList();
	unset($classes['BitrixSaleDeliveryExtraServicesStore']);
	$event = new Event('sale', 'onSaleDeliveryExtraServicesClassNamesBuildList');
	$event->send();
	$resultList = $event->getResults();

	if (is_array($resultList) && !empty($resultList))
	{
		$customClasses = array();

		foreach ($resultList as $eventResult)
		{
			/** @var  EventResult $eventResult*/
			if ($eventResult->getType() != EventResult::SUCCESS)
				continue;

			$params = $eventResult->getParameters();

			if(!empty($params) && is_array($params))
				$customClasses = array_merge($customClasses, $params);
		}

		if(!empty($customClasses))
		{
			BitrixMainLoader::registerAutoLoadClasses(null, $customClasses);
			$classes = array_merge($customClasses, $classes);
		}
	}

	static::$classes = array_merge(array_keys($classes));

	return static::$classes;
}