• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/csv_user_import.php
  • Класс: CSVUserImport
  • Вызов: CSVUserImport::__GetIBlockSectionID
function __GetIBlockSectionID(&$arFields)
{
	$sectionID = 0;
	$i = 0;

	while(true)
	{
		$i++;

		$csvSectionCode = "IBLOCK_SECTION_NAME_".$i;
		if (!array_key_exists($csvSectionCode, $arFields))
			break;

		$sectionName = trim($arFields[$csvSectionCode]);
		if (mb_strlen($sectionName) < 1)
			break;

		$cacheID = md5($csvSectionCode."_".$sectionName."_".$sectionID);
		if (array_key_exists($cacheID, $this->arSectionCache))
		{
			$sectionID = $this->arSectionCache[$cacheID];
			continue;
		}

		$dbSection = CIBlockSection::GetList(Array(), Array("IBLOCK_ID" => $this->attachIBlockID, "NAME" => $sectionName, "SECTION_ID" => $sectionID));
		if ($arGroup = $dbSection->Fetch())
		{
			$sectionID = $arGroup["ID"];
			$this->arSectionCache[$cacheID] = $sectionID;
			continue;
		}

		$iblockSection = new CIBlockSection;
		$arSectionFields = Array(
			"ACTIVE" => "Y",
			"IBLOCK_SECTION_ID" => $sectionID,
			"IBLOCK_ID" => $this->attachIBlockID,
			"NAME" => $sectionName,
		);

		$sectionID = (int)$iblockSection->Add($arSectionFields);
		if ($sectionID > 1)
			$this->arSectionCache[$cacheID] = $sectionID;
		else
			return 0;
	}

	return $sectionID;
}