Nikovit <Путешествия и разработка>

Битрикс не выводится свойство Файл

В этой статье я расскажу о способе вывода свойства типа файл в битриксе.

Добавляем новое свойство в настройках инфоблока.

свойство типа файл.png


Если мы сейчас попробуем вывести это свойство в настройках компонента, то этого свойства в окне выбора не будет, поэтому мы прописываем это свойство сами.
выбор свойства.png
Далее открываем файл result_modifier.php нашего компонента(если файла нет создаем) и добавляем следующий код.
$arResult["PHOTO"] = array();
if (isset($arResult["PROPERTIES"]["PHOTO"]["VALUE"]) && is_array($arResult["PROPERTIES"]["PHOTO"]["VALUE"])) {
    foreach ($arResult["PROPERTIES"]["PHOTO"]["VALUE"] as $FILE) {
        $FILE = CFile::GetFileArray($FILE);
        if (is_array($FILE))
            $arResult["PHOTO"][] = $FILE;
    }
}

А в шаблоне компонента() прописываем следующие.
<?
$LINE_ELEMENT_COUNT = 2; // number of elements in a row
if (count($arResult["PHOTO"]) > 0):?>
    <? foreach ($arResult["PHOTO"] as $PHOTO):?>
        <? $file = CFile::ResizeImageGet($PHOTO, array('height' => 500), BX_RESIZE_IMAGE_EXACT, true); ?>
        <div class="photo-area-item">
            <img border="0" src="<?= $file["src"] ?>" width="<?= $file["width"] ?>"
                 height="<?= $file["height"] ?>" alt="<?= $arResult["NAME"] ?>"
                 title="<?= $arResult["NAME"] ?>"/>
        </div>
    <? endforeach ?>
<? endif ?>