- Модуль: 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;
}