- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/field.php
- Класс: BitrixListsField
- Вызов: Field::renderFieldByTypeF
static function renderFieldByTypeF(array $field)
{
if((empty($field['VALUE']) || !empty($field['DEFAULT'])) && !self::$renderForForm)
return '';
$iblockId = !empty($field['IBLOCK_ID']) ? intval($field['IBLOCK_ID']) : 0;
$sectionId = !empty($field['SECTION_ID']) ? intval($field['SECTION_ID']) : 0;
$elementId = !empty($field['ELEMENT_ID']) ? intval($field['ELEMENT_ID']) : 0;
$fieldId = !empty($field['FIELD_ID']) ? $field['FIELD_ID'] : '';
$socnetGroupId = !empty($field['SOCNET_GROUP_ID']) ? intval($field['SOCNET_GROUP_ID']) : 0;
$urlTemplate = !empty($field['LIST_FILE_URL']) ? $field['LIST_FILE_URL'] : '';
$downloadUrl = !empty($field['DOWNLOAD_FILE_URL']) ? $field['DOWNLOAD_FILE_URL'] : '';
$params = array(
'max_size' => 2024000,
'max_width' => 100,
'max_height' => 100,
'url_template' => $urlTemplate,
'download_url' => $downloadUrl,
'download_text' => Loc::getMessage('LISTS_FIELD_FILE_DOWNLOAD'),
'show_input' => false
);
if(!empty($field['READ']) && $field['READ'] == 'N')
$params['show_input'] = true;
if($field['MULTIPLE'] == 'Y' && is_array($field['VALUE']))
{
$results = array();
foreach($field['VALUE'] as $key => $value)
{
$file = new CListFile($iblockId, $sectionId, $elementId, $fieldId,
is_array($value) && isset($value['VALUE']) ? $value['VALUE'] : $value);
$file->setSocnetGroup($socnetGroupId);
$fieldControlId = $field['TYPE'] == 'F' && self::$renderForForm ?
$fieldId.'['.$key.'][VALUE]' : $fieldId;
$fileControl = new CListFileControl($file, $fieldControlId);
$results[] = $fileControl->getHTML($params);
}
$result = implode(self::$separator, $results);
}
else
{
if(is_array($field['VALUE']))
{
$results = array();
foreach($field['VALUE'] as $key => $value)
{
$file = new CListFile($iblockId, $sectionId, $elementId, $fieldId,
is_array($value) && isset($value['VALUE']) ? $value['VALUE'] : $value);
$file->setSocnetGroup($socnetGroupId);
$fieldControlId = $field['TYPE'] == 'F' && self::$renderForForm ?
$fieldId.'['.$key.'][VALUE]' : $fieldId;
$fileControl = new CListFileControl($file, $fieldControlId);
$results[] = $fileControl->getHTML($params);
}
$result = implode(self::$separator, $results);
}
else
{
$file = new CListFile($iblockId, $sectionId, $elementId, $fieldId, $field['VALUE']);
$file->setSocnetGroup($socnetGroupId);
$fileControl = new CListFileControl($file, $fieldId);
$result = $fileControl->getHTML($params);
}
}
return $result;
}