static function getUFForPostForm($arParams)
{
$arFileData = array();
$arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields($arParams["ENTITY_TYPE"], $arParams["ENTITY_ID"], LANGUAGE_ID);
$ufCode = $arParams["UF_CODE"];
$previewImageSize = (isset($arParams['PREVIEW_IMAGE_SIZE']) && (int)$arParams['PREVIEW_IMAGE_SIZE'] > 0 ? (int)$arParams['PREVIEW_IMAGE_SIZE'] : 144);
if (
!empty($arUF[$ufCode])
&& !empty($arUF[$ufCode]["VALUE"])
)
{
if ($arParams["IS_DISK_OR_WEBDAV_INSTALLED"])
{
if (
BitrixMainConfigOption::get('disk', 'successfully_converted', false)
&& CModule::IncludeModule('disk')
)
{
$userFieldManager = BitrixDiskDriver::getInstance()->getUserFieldManager();
$userFieldManager->loadBatchAttachedObject($arUF[$ufCode]["VALUE"]);
foreach($arUF[$ufCode]["VALUE"] as $attachedId)
{
$attachedObject = $userFieldManager->getAttachedObjectById($attachedId);
if($attachedObject)
{
$file = $attachedObject->getObject();
if (!$file)
{
continue;
}
$fileName = $file->getName();
$fileUrl = BitrixDiskUrlManager::getUrlUfController('download', array('attachedId' => $attachedId));
$fileUrl = str_replace("/bitrix/tools/disk/uf.php", SITE_DIR."mobile/ajax.php", $fileUrl);
$fileUrl = $fileUrl.(mb_strpos($fileUrl, "?") === false ? "?" : "&")."mobile_action=disk_uf_view&filename=".$fileName;
if (
BitrixDiskTypeFile::isImage($file)
&& ($realFile = $file->getFile())
)
{
$previewImageUrl = BitrixDiskUrlManager::getUrlUfController(
'show',
array(
'attachedId' => $attachedId,
'width' => $previewImageSize,
'height' => $previewImageSize,
'exact' => 'Y',
'signature' => BitrixDiskSecurityParameterSigner::getImageSignature($attachedId, $previewImageSize, $previewImageSize)
)
);
}
else
{
$previewImageUrl = false;
}
$icon = CMobileHelper::mobileDiskGetIconByFilename($fileName);
$iconUrl = CComponentEngine::makePathFromTemplate('/bitrix/components/bitrix/mobile.disk.file.detail/images/'.$icon);
$fileFata = array(
'type' => $file->getExtension(),
'ufCode' => $ufCode,
'id' => $attachedId,
'objectId' => BitrixDiskUfFileUserType::NEW_FILE_PREFIX.$file->GetId(),
'extension' => $file->getExtension(),
'name' => $fileName,
'url' => $fileUrl,
'iconUrl' => $iconUrl
);
if ($previewImageUrl)
{
$fileFata['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
}
$arFileData[] = $fileFata;
}
}
}
else // webdav
{
$data = CWebDavIblock::getRootSectionDataForUser($GLOBALS["USER"]->GetID());
if (is_array($data))
{
$ibe = new CIBlockElement();
$dbWDFile = $ibe->GetList(
array(),
array(
'ID' => $arUF[$ufCode]["VALUE"],
'IBLOCK_ID' => $data["IBLOCK_ID"]
),
false,
false,
array('ID', 'IBLOCK_ID', 'PROPERTY_FILE')
);
while ($arWDFile = $dbWDFile->Fetch())
{
if ($arFile = CFile::GetFileArray($arWDFile["PROPERTY_FILE_VALUE"]))
{
if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]))
{
$imageResized = CFile::ResizeImageGet(
$arFile["ID"],
array(
"width" => $previewImageSize,
"height" => $previewImageSize
),
BX_RESIZE_IMAGE_EXACT,
false,
true
);
$previewImageUrl = $imageResized["src"];
}
else
{
$previewImageUrl = false;
}
$fileExtension = GetFileExtension($arFile["FILE_NAME"]);
$fileData = array(
'type' => $fileExtension,
'ufCode' => $ufCode,
'id' => $arWDFile["ID"],
'extension' => $fileExtension,
'name' => $arFile["FILE_NAME"],
'url' => $arFile["SRC"],
);
if ($previewImageUrl)
{
$fileData['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
}
$arFileData[] = $fileData;
}
}
}
}
}
else // get just files
{
$dbRes = CFile::GetList(
array(),
array(
"@ID" => implode(",", $arUF[$ufCode]["VALUE"])
)
);
while ($arFile = $dbRes->GetNext())
{
if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]))
{
$imageResized = CFile::ResizeImageGet(
$arFile["ID"],
array(
"width" => $previewImageSize,
"height" => $previewImageSize
),
BX_RESIZE_IMAGE_EXACT,
false,
true
);
$previewImageUrl = $imageResized["src"];
}
else
{
$previewImageUrl = false;
}
$fileExtension = GetFileExtension($arFile["FILE_NAME"]);
$fileData = array(
'type' => $fileExtension,
'ufCode' => $ufCode,
'id' => $arFile["ID"],
'extension' => $fileExtension,
'name' => $arFile["FILE_NAME"],
'downloadUrl' => $arFile["SRC"],
);
if ($previewImageUrl)
{
$fileData['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
}
$arFileData[] = $fileData;
}
}
}
return $arFileData;
}