• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
  • Класс: CIBlockCMLExport
  • Вызов: CIBlockCMLExport::ExportElements
function ExportElements($PROPERTY_MAP, $SECTION_MAP, $start_time, $INTERVAL, $counter_limit = 0, $arElementFilter = false)
{
	$counter = 0;
	$arSelect = array(
		"ID",
		"IBLOCK_ID",
		"XML_ID",
		"ACTIVE",
		"CODE",
		"NAME",
		"PREVIEW_TEXT",
		"PREVIEW_TEXT_TYPE",
		"ACTIVE_FROM",
		"ACTIVE_TO",
		"SORT",
		"TAGS",
		"DETAIL_TEXT",
		"DETAIL_TEXT_TYPE",
		"PREVIEW_PICTURE",
		"DETAIL_PICTURE",
	);

	if(is_array($arElementFilter))
	{
		$arFilter = $arElementFilter;
	}
	else
	{
		if($arElementFilter === "none")
			return 0;
		$arFilter = array (
			"IBLOCK_ID"=> $this->arIBlock["ID"],
			"ACTIVE" => "Y",
			">ID" => $this->next_step["LAST_ID"],
		);
		if($arElementFilter === "all")
			unset($arFilter["ACTIVE"]);
	}

	$arOrder = array(
		"ID" => "ASC",
	);

	$rsElements = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
	while($arElement = $rsElements->Fetch())
	{
		if($this->next_step["catalog"])
			fwrite($this->fp, "ttt<".GetMessage("IBLOCK_XML2_OFFER").">n");
		else
			fwrite($this->fp, "ttt<".GetMessage("IBLOCK_XML2_POSITION").">n");

		$this->exportElement($arElement, $SECTION_MAP, $PROPERTY_MAP);

		if($this->next_step["catalog"])
			fwrite($this->fp, "tttn");
		else
			fwrite($this->fp, "tttn");

		$this->next_step["LAST_ID"] = $arElement["ID"];
		$counter++;
		if($INTERVAL > 0 && (time()-$start_time) > $INTERVAL)
			break;
		if($counter_limit > 0 && ($counter >= $counter_limit))
			break;
	}
	return $counter;
}