- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
- Класс: CIBlockCMLImport
- Вызов: CIBlockCMLImport::ImportSectionProperties
function ImportSectionProperties($XML_SECTION_PROPERTIES, $IBLOCK_ID, $SECTION_ID = 0)
{
if($SECTION_ID == 0)
{
CIBlockSectionPropertyLink::DeleteByIBlock($IBLOCK_ID);
$ib = new CIBlock;
$ib->Update($IBLOCK_ID, array("SECTION_PROPERTY" => "Y"));
}
$rs = $this->_xml_file->GetList(
array("ID" => "asc"),
array("PARENT_ID" => $XML_SECTION_PROPERTIES),
array("ID")
);
while($ar = $rs->Fetch())
{
$iblockId = 0;
$sectionId = 0;
$arLink = array(
);
$rsP = $this->_xml_file->GetList(
array("ID" => "asc"),
array("PARENT_ID" => $ar["ID"])
);
while($arP = $rsP->Fetch())
{
if($arP["NAME"]==$this->mess["IBLOCK_XML2_ID"])
$arLink["XML_ID"] = $arP["VALUE"];
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_SMART_FILTER"])
$arLink["SMART_FILTER"] = ($arP["VALUE"]=="true") || intval($arP["VALUE"])? "Y": "N";
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_SMART_FILTER_DISPLAY_TYPE"])
$arLink["DISPLAY_TYPE"] = $arP["VALUE"];
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_SMART_FILTER_DISPLAY_EXPANDED"])
$arLink["DISPLAY_EXPANDED"] = ($arP["VALUE"]=="true") || intval($arP["VALUE"])? "Y": "N";
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_SMART_FILTER_HINT"])
$arLink["FILTER_HINT"] = $arP["VALUE"];
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_BX_LINKED_IBLOCK"])
$iblockId = $this->GetIBlockByXML_ID($arP["VALUE"]);
elseif($arP["NAME"]==$this->mess["IBLOCK_XML2_GROUP"] && $iblockId > 0)
$sectionId = $this->GetSectionByXML_ID($iblockId, $arP["VALUE"]);
}
if ($iblockId > 0)
$arLink["IBLOCK_ID"] = $iblockId;
$rsProperty = CIBlockProperty::GetList(array(), array(
"IBLOCK_ID" => $IBLOCK_ID,
"XML_ID" => $arLink["XML_ID"],
"CHECK_PERMISSIONS" => "N",
));
if($arDBProperty = $rsProperty->Fetch())
{
CIBlockSectionPropertyLink::Add($sectionId? $sectionId: $SECTION_ID, $arDBProperty["ID"], $arLink);
}
}
return true;
}