Как вывести множественное свойство файл битрикс

Обновлено: 04.07.2024

И снова свойства, но уже разделов.

Очень часто, делая каталог на 1С-Битриксе, требуется задать свойства и разделам, не только элементам. В стандартном функционале у нас есть только изображение и описание.

Чтобы вывести изображение раздела, нужно в шаблоне catalog.section прописать следующий код:

Код <?php if ($arResult["PICTURE"]["SRC"]) <a onclick="return hs.expand(this)" title="<?=$arResult["NAME"]?>" href="<?=$arResult["PICTURE"]["SRC"]?>">
<img style="width:300px" src="https://devfix.ru/web_studio/blogs/513/<?=$arResult["PICTURE"]["SRC"]?>" title="<?=$arResult["NAME"]?>" />
<?php > else < ?><?php >?>

Чтобы было яснее, у меня идет сначала проверка, есть ли фотография, а потом идет вывод фотографии, там class и onclick - это остатки от галереи, не обращайте на них внимания. Если фотографии нет, то ничего и не выводится.

Чтобы вывести описание раздела, в шаблоне catalog.section прописываем код:

Или для раздела news.list, если параметр выдается в виде массива Array:

Код <?foreach($arResult["SECTION"]["PATH"] as $arSection):?>
<?=$arSection["DESCRIPTION"]?>
<?endforeach;?>

Теперь самая соль.

Чтобы задать дополнительное свойство раздела, нужно использовать Пользовательские поля.
Заходим в свойства раздела, выбираем вкладку "Доп. свойства" и нажимаем на "Добавить пользовательское поле".
Создаете нужное поле требуемого типа и сохраняете. Потом в Свойствах раздела вы заполняете ваше созданное свойство раздела.
Теперь, самое главное, чтобы вывести свойство раздела (пользовательское поле) нужно, всё в том же шаблоне catalog.section прописать следующий код:

Для НЕ МНОЖЕСТВЕННОГО свойства раздела (пользовательского поля):

Код <?
$db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter = Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "ID"=>$arResult["ID"]), true,$arSelect=Array("UF_DOC"));
while($ar_result = $db_list->GetNext()):
?>
<?=CFile::GetPath($ar_result["UF_DOC"]); ?>
<?endwhile?>

Для МНОЖЕСТВЕННОГО свойства раздела (пользовательского поля):

Код <?
$db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter = Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "ID"=>$arResult["ID"]), true,$arSelect=Array("UF_FILE"));
while($ar_result = $db_list->GetNext()):
?>
<?foreach($ar_result["UF_FILE"] as $PHOTO):?>
<?=CFile::GetPath($PHOTO); ?>
<?endforeach?>
<?endwhile?>

В данном случае код используется CFile::GetPath, чтобы вывести ссылку на файл, дальше обработать ее, думаю, не составит труда.

Таким образом для значения типа данных "Файл" используем:

а, чтобы вывести текстовое значение поля типа данных "Строка":

Для вывода пользовательского поля в шаблоне catalog.section.list я использовал следующий кода:

Код <?
$db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter = Array("IBLOCK_ID"=>$arSection["IBLOCK_ID"], "ID"=>$arSection["ID"]), true,$arSelect=Array("UF_ACT"));
while($ar_result = $db_list->GetNext()):
?>
<? if ($ar_result["UF_ACT"]):?>
<font color="red">Акция!</font>
<? endif ?>
<?endwhile?>

Для этого испольузуется следующий код:

<!-- Код отвечет вывод пользовательского свойства типа "Привязка к элементам инф.блока" в разделе инфоблока и размещенн в template.php, который лежит в шаблоне catalog.section.list -->

<?
//Сначала мы получаем ID привязанных элементов к нашему разделу по нужному нам свойству UF_NOV (можно написать UF_*, тогда будут получены все свойства вида UF_), т.е. ID инфоблока, у которого в разделе выводим свойство равен 3. Т.к. значение множественное, то его выводим циклом. Там еще стоит условие, что если заначения нашего свойства пустое, но чтобы ничего не выводил

$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "3", 'ID' => $arResult["SECTION"]["ID"]), true, Array("UF_NOV"));
while ($arResult = $rsResult -> GetNext())
if (!empty($arResult["UF_NOV"])) // условие, что пустые занчения не выводим
$iter = $arResult["UF_NOV"]; //получили наши ID элементов из ИБ id 8, которые привязаны к разделу ИБ id 3
>
>

//Здесь мы начинаем выводить элементы другого инфоблока с ID 8, к которым привязан наш раздел свойством UF_NOV

$arFilter = array('IBLOCK_ID' => 8,'ID' => $iter);//задаем в фильтр чтобы выводил тольк из ИБ id 8 и только нужные нам элемены по ID, которые мы получили выше
$rsItems = CIBlockElement::GetList(array(),$arFilter);
while ($arItem = $rsItems->GetNext())
if (!empty($iter)) // условие, что пустые занчения не выводим
$resizer = $arItem['PREVIEW_PICTURE']; //функция ресайза картинки, если нужно
$file = CFile::ResizeImageGet($resizer, array('width'=>1000, 'height'=>290), BX_RESIZE_IMAGE_PROPORTIONAL , true); //функция ресайза картинки, если нужно
$img = $file['src']; //функция ресайза картинки, если нужно
echo '<img src="'.$img.'" /><br><a href="'.$arItem["DETAIL_PAGE_URL"].'">'.$arItem["NAME"].'</a>';
>
>
?>

Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.

Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте "1С-Битрикс". .

Курс для разработчиков - продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено.

Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:

  • Интерфейс программы - в главе Элементы управления курса Контент-менеджер.
  • Компоненты 2.0 (начальные сведения) в главе Компоненты 2.0 (начальные сведения) курса Контент-менеджер.
  • Информационные блоки - в главе Информационные блоки (начальные сведения) курса Контент-менеджер.
  • Управление доступом к файлам, элементам контента, модулям и другие права доступа в главе Управление доступом курса Администратор. Базовый.
  • Работа с инструментами системы - в главе Работа с инструментами курса Администратор. Базовый.
  • Модуль Поиск - в главе Поиск курса Администратор. Базовый.
  • Вся информация по администрированию модулей размещена в курсах:
      - модули "1С-Битрикс: Управление сайтом" - модули "1С-Битрикс: Управление сайтом", связанные с коммерческой деятельностью в Интернете. - модули "1С-Битрикс: Корпоративный портал"

    Как построен курс

    Общепринятая градация квалификации разработчиков в рамках курса обозначает что:

    • Junior сможет создавать простые сайты работая со штатными компонентами и модифицируя их шаблоны.
    • Middle разработчик может работать с API Bitrix Framework.
    • Senior умеет работать над производительностью и безопасностью сайтов, создавать свои модули и компоненты.
    Примечание: Такое построение удобно для пошагового изучения принципов работы Bitrix Framework. По этому же принципу построены и тесты. Но такая структура не очень удобна для использования содержания курса как постоянного источника информации. Что бы переключить курс в режим Справочника, воспользуйтесь переключателем в верхнем правом углу шапки курса.

    Начальные требования к подготовке

    Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):

    • основами PHP, баз данных;
    • основами HTML, CSS.

    У нас часто спрашивают, сколько нужно заплатить

    Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.

    Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

    Баллы опыта

    В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
    окно подтверждения:


    уроке.

    Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.

    Тесты

    После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.

    Комментарии к статьям

    Что дальше?

    Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:

    Для преподавания оффлайн

    Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).

    Если нет интернета

    iPhone:
    FBReader
    CoolReader
    iBook
    Bookmate

    Windows:
    Calibre
    FBReader
    Icecream Ebook Reader
    Плагины для браузеров:
    EpuBReader – для Firefox
    Readium – для Google Chrome

    iOS
    Marvin for iOS
    ShortBook
    обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.

    Как красиво вывести множественное свойство типа файл в инфоблоке 1С-Битрикс. С показом оригинального названия файла, его транслитированной версии, размера файла в килобайтах и, само собой, ссылкой на скачивание.

    Исходные данные для вывода файлов

    Итак, в инфоблоке каталога сайта имеем стандартное, множественное свойство "типа файл" с кодом "FILES".

    Свойство файл битрикс

    Если мы его выведем, штатным способом, через вывод свойств- как оно задумано в Битрикс изначально. Выглядеть это будет не казисто и не интересно

    Свойство файл битрикс

    Абсолютно не интересно и самое главное не информативно. В моем случае, в данное свойство загружаются документы. Причем они в разных форматах и разного размера. Пользователь должен видеть и название документа и его размер с форматом. Например вот так:

    Свойство файл битрикс

    Выводим свойство файл через API Битрикс- получая все данные о файлах

    Все достаточно просто, так как множественные свойства это обычные массивы. Мы можем получить все данные о каждом файле, просто зная код свойства, в моем случае "FILES". Выглядеть foreach будет следующим образом.

    Расскоментировав строку
    // echo '<pre>';print_r($arProperty);echo '</pre>';
    Вы сможете увидеть все данные о каждом файле, доступные для вывода. По мимо основных, там есть и дата загрузки и тип файла.

    В принципе и все. Конкретно в моем случае, в примере выше, результат вывода выглядет следующим образом:

    Несколько полезных моментов

    Байты в килобаты (размер файла), я привратил, обычной php функцией округления в большую сторону round. Предварительно приведя байты в килобаты. просто разделив $arProperty['FILE_SIZE'] на 1024 (смотри в коде выше).

    Иконки для разных типов файлов, назначил через CSS - тут простая стилизация. Зная расширение файла, а точнее расширенеие на которое заканчивается ссылка, просто прописал background для каждой разновидности ссылки. Вот так:

    Читайте также: