Полезные статьи по разработке сайта на системе управления 1С-Битрикс. Программирование. Верстка.

Вывод множественного свойства типа файл с размером и типом файла

  46
В инфоблоке каталога добавляем множественное свойство типа "файл" отмечаем чекбоксом в настройках - выводить описание свойства. Используем следующий код для вывода в шаблоне /bitrix/templates/шаблон_сайта/components/bitrix/catalog.element/
 <?if($arResult['PROPERTIES']['FILE']['VALUE']):?>
<div class="Files">
	<div class="Items">
		<?foreach ($arResult["PROPERTIES"]['FILE']['VALUE'] as $pid => $arProperty):
			$arFile = CFile::GetFileArray($arProperty);
			/*echo "<pre>"; print_r($arFile); echo "</pre>";*/
			$ext=substr($arFile["SRC"], strrpos($arFile["SRC"], '.') + 1);
		?>
		<div class="Item">
			<div class="Name"><a href="<?=$arFile["SRC"]?>"><?=$arFile["DESCRIPTION"]?></a></div>
			<div class="Info">
				<div class="Format">Формат: <?=$ext?></div>
				<div class="Size">Размер файла: <?=formatFileSize($arFile['FILE_SIZE'])?></div>
			</div>
		</div>
		<?endforeach?>
	</div>
</div>

/*Также в файле шаблона компонента размещаем функцию для правильного отображения размера файла (килобайт, мегабайт, гигабайт)*/
function formatFileSize($bytes) 
{
            if (!is_numeric($bytes) || !$bytes) {
                return '';
            }
            if ($bytes >= 1000000000) {
                return round($bytes / 1000000000,2).' '.GetMessage("GB");
            }
            if ($bytes >= 1000000) {
                return round($bytes / 1000000,2).' '.GetMessage("MB");
            }
            return round($bytes / 1000,2). ' '.GetMessage("KB");
}

/*Добавляем в языковом шаблоне компонента, например, /bitrix/templates/шаблон_сайта/components/bitrix/catalog.element/bootstrap_v4/lang/ru  размещаем перевод для отображения*/
$MESS ['GB'] = "Гб";
$MESS ['MB'] = "Мб";
$MESS ['KB'] = "Кб";
Помощь проекту
Привет, меня зовут Вика! Я являюсь автором сайта Weblim.
Если Вам помогла данная статья, вы можете отблагодраить меня перечислив любую денежную сумму. Заранее спасибо!