• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/import.php
  • Класс: CCourseImport
  • Вызов: CCourseImport::_MakeFields
protected function _MakeFields(&$arFields, $itemType = null)
{
	$arRes = Array();
	$upload_dir = COption::GetOptionString("main", "upload_dir", "upload");

	$arStopList = array();
	foreach($arFields["#"] as $field => $arValue)
	{
		if (in_array($field, $arStopList))
			continue;

		if (in_array($field, $this->arUnsetFields) && ($itemType !== 'TMK') && ($itemType !== 'QUE'))
		{
			if ( ! ($itemType === 'TES' && in_array($field, $this->arPreventUnsetFieldsForTest)) )
				continue;
		}

		if (in_array($field, $this->arDraftFields) && ($itemType !== 'TMK'))
		{
			if (is_set($arValue[0]["#"], "cdata-section"))
			{
				$arRes[mb_strtoupper($field)] = preg_replace(
					"~(["'])(cid:resources/(.+?))(\1)~is", 
					"\1/".$upload_dir."/learning/".$this->COURSE_ID."/\3\1",
					$arValue[0]["#"]["cdata-section"][0]["#"]);
				continue;
			}
			elseif (isset($arValue[0]["#"]))
			{
				$arRes[mb_strtoupper($field)] = preg_replace(
					"~(["'])(cid:resources/(.+?))(\1)~is", 
					"\1/".$upload_dir."/learning/".$this->COURSE_ID."/\3\1",
					$arValue[0]["#"]);
				continue;
			}
		}

		if (in_array($field, $this->arDate) && $arValue[0]["#"] <> '')
		{
			$time = date("His", $arValue[0]["#"]);
			$arRes[mb_strtoupper($field)] = ConvertTimeStamp($arValue[0]["#"], $time == "000000" ? "SHORT" : "FULL");
			continue;
		}

		if (in_array($field, $this->arPicture) && intval($arValue[0]["#"]) > 0)
		{
			$file = $this->package_dir."/dbresources/".$arValue[0]["#"];

			if (method_exists('CFile', 'GetImageSize'))
			{
				$aImage = @CFile::GetImageSize($file);
				if($aImage === false)
						continue;

				if (function_exists("image_type_to_mime_type"))
					$image_type_to_mime_type = image_type_to_mime_type($aImage[2]);
				else
					$image_type_to_mime_type = CCourseImport::ImageTypeToMimeType($aImage[2]);
			}
			else
				$image_type_to_mime_type = self::ImageTypeToMimeTypeByFileName($file);

			$arRes[mb_strtoupper($field)] = array(
				"MODULE_ID" => "learning",
				"name" =>$arValue[0]["#"],
				"tmp_name" => $file,
				"size" =>@filesize($file),
				"type" => $image_type_to_mime_type
			);

			if (isset($arFields["#"][$field . '_description'][0]['#']))
			{
				$arRes[mb_strtoupper($field)]['description'] = $arFields["#"][$field . '_description'][0]['#'];
				$arStopList[] = $field . '_description';
			}

			continue;
		}

		$arRes[mb_strtoupper($field)] = $arValue[0]["#"];
	}
	unset($arFields);
	return $arRes;
}