Как вывести свойство типа файл

Сейчас возникла необходимость добавить дополнительные картинки к элементу. Делается это через свойство типа «файл». Так как планируется добавлять несколько фотографий, то необходимо сделать его множественным как на примере ниже

Выводить множественное свойство типа файл на странице элемента в Битрикс будем через его API. Так как множественное свойство является массивом, то и выводить мы будем циклом. Foreach будет иметь вид следующий:

<? foreach ($arResult["DISPLAY_PROPERTIES"]['ATT_PHOTO']['FILE_VALUE'] as $pid => $arProperty): ?> <a href="<? echo $arProperty['SRC']; ?>" data-fancybox="gallery_portfolio" title="Скачать <? echo $arProperty['FILE_NAME']; ?>"> <img src="<? echo $arProperty['SRC']; ?>" alt=""> </a> <?endforeach;?>
Code language: PHP (php)

Вам лишь нужно поменять свойство ATT_PHOTO на свое.

Но в таком способе есть подвох. Так как свойство у нас множественное и если будет добавлен всего один файл, то страница может не открыться и выдать 500ю ошибку. С чем я и столкнулся сейчас при разработке шаблона. Но я нашел решение.

Чтобы не было 500й ошибки давайте сделаем проверку на количество элементов в массиве и если будет всего один элемент, то выведем данные немного иначе.

<?if(count($arResult["DISPLAY_PROPERTIES"]["ATT_PHOTO"]["FILE_VALUE"]["SRC"]) == 1):?> <a href="<?echo $arResult["DISPLAY_PROPERTIES"]["ATT_PHOTO"]["FILE_VALUE"]["SRC"]?>" data-fancybox="gallery_portfolio" title="Скачать <?echo $arResult["DISPLAY_PROPERTIES"]["ATT_PHOTO"]["FILE_VALUE"]["FILE_NAME"] ?>"> <img src="<?echo $arResult["DISPLAY_PROPERTIES"]["ATT_PHOTO"]["FILE_VALUE"]["SRC"]?>" alt=""> </a> <?else:?> <? foreach ($arResult["DISPLAY_PROPERTIES"]['ATT_PHOTO']['FILE_VALUE'] as $pid => $arProperty): ?> <a href="<? echo $arProperty['SRC']; ?>" data-fancybox="gallery_portfolio" title="Скачать <? echo $arProperty['FILE_NAME']; ?>"> <img src="<? echo $arProperty['SRC']; ?>" alt=""> </a> <?endforeach;?> <?endif?>
Code language: PHP (php)

Добавить комментарий

Похожие записи

Начните вводить, то что вы ищите выше и нажмите кнопку Enter для поиска. Нажмите кнопку ESC для отмены.

Вернуться наверх