• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic.php
  • Класс: BitrixSaleDeliveryServicesAutomatic
  • Вызов: Automatic::initHandlers
static function initHandlers()
{
	static $isHandlerInited = false;

	if($isHandlerInited)
		return true;

	$arPathList = array( // list of valid services include files paths (security)
		BitrixMainConfigOption::get('sale', 'delivery_handles_custom_path', BX_PERSONAL_ROOT.'/php_interface/include/sale_delivery/'),
		"/bitrix/modules/sale/delivery/",
	);

	$arLoadedHandlers = array();

	foreach ($arPathList as $basePath)
	{
		if (file_exists($_SERVER["DOCUMENT_ROOT"].$basePath) && is_dir($_SERVER["DOCUMENT_ROOT"].$basePath))
		{
			$handle = @opendir($_SERVER["DOCUMENT_ROOT"].$basePath);
			while(($filename = readdir($handle)) !== false)
			{
				if($filename == "." || $filename == ".." || in_array($filename, $arLoadedHandlers))
					continue;

				if (!is_dir($_SERVER["DOCUMENT_ROOT"].$basePath."/".$filename) && mb_substr($filename, 0, 9) == "delivery_")
				{
					if(BitrixMainIOPath::getExtension($filename) == 'php')
					{
						$arLoadedHandlers[] = $filename;
						require_once($_SERVER["DOCUMENT_ROOT"].$basePath."/".$filename);
					}
				}
			}
			@closedir($handle);
		}
	}

	$isHandlerInited = true;
	return true;
}