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