- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
- Класс: CIBlockCMLImport
- Вызов: CIBlockCMLImport::DeactivateSections
function DeactivateSections($action)
{
if(array_key_exists("bUpdateOnly", $this->next_step) && $this->next_step["bUpdateOnly"])
return;
if(!$this->next_step["XML_SECTIONS_PARENT"])
return;
if($action!="D" && $action!="A")
return;
$bDelete = $action=="D";
//This will protect us from deactivating when next_step is lost
$IBLOCK_ID = intval($this->next_step["IBLOCK_ID"]);
if($IBLOCK_ID < 1)
return;
$arFilter = array(
"IBLOCK_ID" => $IBLOCK_ID,
);
if(!$bDelete)
$arFilter["ACTIVE"] = "Y";
$obSection = new CIBlockSection;
$rsSection = $obSection->GetList(array("ID"=>"asc"), $arFilter, false, ['ID', 'IBLOCK_ID']);
while($arSection = $rsSection->Fetch())
{
$rs = $this->_xml_file->GetList(
array(),
array("PARENT_ID+0" => 0, "LEFT_MARGIN" => $arSection["ID"]),
array("ID")
);
$ar = $rs->Fetch();
if(!$ar)
{
if($bDelete)
{
$obSection->Delete($arSection["ID"]);
}
else
{
$obSection->Update($arSection["ID"], array("ACTIVE"=>"N"));
}
}
else
{
$this->_xml_file->Delete($ar["ID"]);
}
}
return;
}