Вывод множественного свойства типа файл с размером и типом файла
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.
Если Вам помогла данная статья, вы можете отблагодраить меня перечислив любую денежную сумму. Заранее спасибо! |
Последние записи
|