1C-Битрикс: правильно выводим свойства элемента инфоблока

    Инфоблоки — это, наверное, самый используемый модуль. Ни один сайт на этой CMS не обходится без него. Это очень гибкий инструмент, но чтобы воспользоваться всей этой гибкостью, придётся хорошенько изучить API Битрикса. Но официальная документация, как мы знаем, описывает не всё моменты ;)

    И так, задача, которая встаёт перед каждым разработчиком, который использует информационные блоки — выбрать свойство(-а) элемента инфоблока и вывести его на экран. Первая половина дела банальна: метода класса CIBlockElement подробно описаны в документации. А вот со второй половиной (особенно, если свойство сложного типа) уже интереснее :)

    Возьмём свойство типа «HTML\текст». Для этого свойства нельзя просто вывести его значение (ключ «VALUE»), т.к. это — массив, содержащий,«сырое» значений и его тип (HTML или текст). Нет, мы может, конечно, сами отформатировать «сырое» значение в соответствии с его типом, но в голову закрадывается сомнение — неужели это не реализовано в самой CMS? Как же работает с произвольными свойствами компонент bitrix:news?

    Собственно, из кода этого самого bitrix:news мы и сможем узнать, как же он так хитро работает :) А ничего хитрого-то, оказывается, и нет! Всего один вызов метода GetDisplayValue класса CIBlockFormatProperties:

    $arResult[«DISPLAY_PROPERTIES»][$pid] =
        
    CIBlockFormatProperties::GetDisplayValue($arResult$prop«news_out»);


    И всё! Теперь в шаблоне мы можем писать так:

    echo $element['PROPERTY_CODE']['DISPLAY_VALUE'];


    И любое свойство, тип которого предполагает форматирование значения перед выводом, будет соответствующим образом преобразовано!

    Удачного изучение недокументированных функций системы ;)

    P.S. Оригинал статьи — у меня.
    • +1
    • 26,8k
    • 7
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 7

      +1
      Хабр не любит битрикс?
        +1
        да
          0
          многие не любят битрикс, не только хабр :)
          0
          Битрикс, наверное, не та вещь, о которой стоит писать на хабре. Как, впрочем, и о других коммерческих CMS.
            +1
            Специфичная тема, не все её понимают. А кому-то с ней приходится работать :) Вот и всё.
            +1
            Мне честно говоря не нравиться битрикс - очень уж пафоса много, хотя тему не минусовал, все-таки информация продукт автора, а не копи паст :)
              0
              на хабре определенно не любят битрикс. Хабр — последнее место, куда можно написать о битрикс… :)

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое