• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/helper.php
  • Класс: BitrixSaleTradingPlatformHelper
  • Вызов: Helper::getIblocksIds
static function getIblocksIds($withSku = false)
{
	if (!BitrixMainLoader::includeModule('catalog'))
		throw new SystemException('Module catalog is not installed');

//		save result in STATIC - for multiple used
	if (!isset(self::$arIBlockIDs))
	{
		self::$arIBlockIDs = array();

//			get CATALOG IBLOCKS from SKU iblocks
		$rsCatalogs = CCatalog::GetList(
			array(),
			array('!PRODUCT_IBLOCK_ID' => 0),
			false,
			false,
			array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'NAME')
		);
		while ($arCatalog = $rsCatalogs->Fetch())
		{
			$arCatalog['PRODUCT_IBLOCK_ID'] = intval($arCatalog['PRODUCT_IBLOCK_ID']);
			if (0 < $arCatalog['PRODUCT_IBLOCK_ID'])
				self::$arIBlockIDs[$arCatalog['PRODUCT_IBLOCK_ID']] = array(
					"IBLOCK_ID" => $arCatalog['PRODUCT_IBLOCK_ID'],
					"NAME" => '',
				);

//				get SKU IBLOCKS if needed
			if ($withSku)
			{
				$arCatalog['IBLOCK_ID'] = intval($arCatalog['IBLOCK_ID']);
				if (0 < $arCatalog['IBLOCK_ID'])
					self::$arIBlockIDs[$arCatalog['IBLOCK_ID']] = array(
						"IBLOCK_ID" => $arCatalog['IBLOCK_ID'],
						"NAME" => $arCatalog['NAME'],
					);
			}
		}

//			get CATALOG IBLOCKS
		$rsCatalogs = CCatalog::GetList(
			array(),
			array('PRODUCT_IBLOCK_ID' => 0),
			false,
			false,
			array('IBLOCK_ID', 'NAME')
		);
		while ($arCatalog = $rsCatalogs->Fetch())
		{
			$arCatalog['IBLOCK_ID'] = intval($arCatalog['IBLOCK_ID']);
			if (0 < $arCatalog['IBLOCK_ID'])
				self::$arIBlockIDs[$arCatalog['IBLOCK_ID']] = array(
					"IBLOCK_ID" => $arCatalog['IBLOCK_ID'],
					"NAME" => $arCatalog['NAME'],
				);
		}

		if (empty(self::$arIBlockIDs))
			self::$arIBlockIDs[-1] = true;
	}

	return self::$arIBlockIDs;
}