Совсем маленькая заметка-памятка на тему «Как вывести свойство типа файл в шаблоне Битрикс». Данная задача, зачастую, возникает на страницах элементов каталога товаров, например, когда нужно вывести ссылку на инструкцию (или гарантийный талон).
Вся задача, в самом деле, решается в 3 (даже, можно сказать, что в 2.5) небольших шага, которые рассматриваются ниже.
1. Создание свойства типа «файл»
На данном этапе не должно возникнуть сложностей, так как алгоритм стандартный:
А) В настройках инфоблока заводим свойство типа файл:
Б) Сохраняем и переходим к следующему шагу
2. Добавление файла к элементу
Это, собственно, вышеупомянутый шаг 2.5: В соответствующем инфоблоке редактируем элемент детально, находим нужное нам свойство, подгружаем файл. Сохраняем.
3. Вывод свойства в шаблоне
И последний (но самый главный) шаг, ради которого, собственно, и была написана эта заметка — вывод нашего свойства в нужном шаблоне.
Итак, открыв на редактирование файл template.php необходимого шаблона компонента мы, в нужном месте, вводим следующий код:
<? $res = CIBlockElement::GetProperty($arResult['IBLOCK_ID'], $arResult['ID'], "sort", "asc", array("CODE" => "files")); if ($ob = $res->GetNext()) { $INSTRUCTION_VALUE = $ob['VALUE']; $file = CFile::GetFileArray($INSTRUCTION_VALUE); $INSTRUCTION_SRC = $file['SRC']; } ?>
Как видно, нам потребовался метод GetProperty «битриксового» класса CIBlockElement, который возвращает значение свойства для определенного элемента инфоблока.
У файлового массива несколько параметров, но, в данном случае, нас интересует только ссылка на файл. Поэтому, с помощью метода GetFileArray класса CFile извлекаем массив значений данного свойства и, на следующей строке, присваиваем значение ссылки переменной INSTRUCTION_SRC.
И, далее, вызываем переменную в необходимом нам месте. Например:
<a href="<?=$INSTRUCTION_SRC;?>">Инструкция</a>
В общем и целом всё, таким образом можно вывести свойство типа файл в CMS Битрикс. За более подробным описанием классов и методов, использованных в данной заметке, лучше обратиться к официальной документации битрикса.