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