• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/ebay/exportoffer.php
  • Класс: BitrixCatalogEbayExportOffer
  • Вызов: ExportOffer::getAvailGroups
protected function getAvailGroups()
{
	$arAvailGroups = [];

	if (!$this->bAllSections)
	{
		$intSectionsCount = count($this->arSections);
		for ($i = 0; $i < $intSectionsCount; $i++)
		{
			$list = CIBlockSection::GetNavChain(
				$this->iBlockId,
				$this->arSections[$i],
				[
					'ID',
					'IBLOCK_ID',
					'IBLOCK_SECTION_ID',
					'NAME',
					'LEFT_MARGIN',
					'RIGHT_MARGIN',
				],
				true
			);
			$curLEFT_MARGIN = 0;
			$curRIGHT_MARGIN = 0;
			foreach ($list as $ar_res)
			{
				$curLEFT_MARGIN = (int)$ar_res['LEFT_MARGIN'];
				$curRIGHT_MARGIN = (int)$ar_res['RIGHT_MARGIN'];
				$arAvailGroups[$ar_res['ID']] = [
					'ID' => (int)$ar_res['ID'],
					'IBLOCK_SECTION_ID' => (int)$ar_res['IBLOCK_SECTION_ID'],
					'NAME' => $ar_res['NAME'],
				];
			}
			unset($ar_res, $list);

			$filter = [
				'IBLOCK_ID' => $this->iBlockId,
				'>LEFT_MARGIN' => $curLEFT_MARGIN,
				' $curRIGHT_MARGIN,
				'ACTIVE' => 'Y',
				'IBLOCK_ACTIVE' => 'Y',
				'GLOBAL_ACTIVE' => 'Y',
			];
			$db_res = CIBlockSection::GetList(
				['LEFT_MARGIN '=> 'ASC'],
				$filter,
				false,
				[
					'ID',
					'IBLOCK_ID',
					'IBLOCK_SECTION_ID',
					'NAME',
					'LEFT_MARGIN',
				]
			);
			while ($ar_res = $db_res->Fetch())
			{
				$arAvailGroups[$ar_res['ID']] = [
					'ID' => (int)$ar_res['ID'],
					'IBLOCK_SECTION_ID' => (int)$ar_res['IBLOCK_SECTION_ID'],
					'NAME' => $ar_res['NAME'],
				];
			}
			unset($ar_res, $db_res);
		}
	}
	else
	{
		$filter = [
			'IBLOCK_ID' => $this->iBlockId,
			'ACTIVE' => 'Y',
			'IBLOCK_ACTIVE' => 'Y',
			'GLOBAL_ACTIVE' => 'Y',
		];
		$db_res = CIBlockSection::GetList(
			['LEFT_MARGIN' => 'ASC'],
			$filter,
			false,
			[
				'ID',
				'IBLOCK_ID',
				'IBLOCK_SECTION_ID',
				'NAME',
				'LEFT_MARGIN',
			]
		);
		while ($ar_res = $db_res->Fetch())
		{
			$arAvailGroups[$ar_res['ID']] = [
				'ID' => (int)$ar_res['ID'],
				'IBLOCK_SECTION_ID' => (int)$ar_res['IBLOCK_SECTION_ID'],
				'NAME' => $ar_res['NAME'],
			];
		}
		unset($ar_res, $db_res);
	}

	return $arAvailGroups;
}