function GetBySID($SID, $SITE_ID = false) { global $DB; if (!defined('SALE_DH_INITIALIZED')) { CSaleDeliveryHandler::Initialize(); } $arHandlersList = CSaleDeliveryHandler::__getRegisteredHandlers(); $cnt = count($arHandlersList); $arResult = array(); for ($i = 0; $i < $cnt; $i++) { if ($arHandlersList[$i]["SID"] == $SID) { $arResult[] = $arHandlersList[$i]; break; } } if (count($arResult) > 0) { $arResult = CSaleDeliveryHandler::__getHandlersData($arResult, $SITE_ID); } $dbResult = new CDBResult(); reset($arResult); $dbResult->InitFromArray($arResult); return $dbResult; }
function GetBySID($SID, $SITE_ID = false) { if (!defined('SALE_DH_INITIALIZED')) CSaleDeliveryHandler::Initialize(); static $cache = array(); if (!isset($cache[$SITE_ID])) $cache[$SITE_ID] = array(); if (!isset($cache[$SITE_ID][$SID])) { $cache[$SITE_ID][$SID] = array(); $arHandlersList = CSaleDeliveryHandler::__getRegisteredHandlers(); foreach ($arHandlersList as $handler) { if ($handler["SID"] == $SID) { $cache[$SITE_ID][$SID][] = $handler; break; } } if ($cache[$SITE_ID][$SID]) { $cache[$SITE_ID][$SID] = CSaleDeliveryHandler::__getHandlersData($cache[$SITE_ID][$SID], $SITE_ID); } } $dbResult = new CDBResult(); $dbResult->InitFromArray($cache[$SITE_ID][$SID]); return $dbResult; }