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