Вывод пользовательских полей раздела (битрикс) 5


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

Как и про давнишний материал о 404 ошибке, о данной теме есть очень много чего почитать. Чтобы упростить вам жизнь и поиски, привожу рабочий вариант кода.

Я его использовал в файле template.php шаблона catalog.section.list для вывода поля с дополнительным описанием раздела.

Сначала я пробовал просто вывести переменные в массиве $arResult, но в итоге он, видимо, переопределился, и из него пропали все остальные поля. Поэтому внутри этого массива я создал новый — [«SECTION_USER_FIELDS»], — и уже в него поместил значения пользовательских полей.

Полезную информацию о выводе разделов можно почерпнуть в документации: http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getlist.php

Поделитесь полезной информацией с друзьями или подпишитесь на рассылку новых статей:

рассылка на почту всех новых статей сайта romapad.ru не чаще одного раза в неделю ->

Помогла статья или комментарий автора? Отблагодарите автора:


Про Роман Моренец

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


Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5 мыслей про “Вывод пользовательских полей раздела (битрикс)

  • Сергей

    Большое спасибо за статью, очень полезный код. Единственное не могу разобраться как его модифицировать, может подскажите. Сейчас UF_RAZDEL_TITLE и UF_RAZDEL_DESC выводятся для выбранного раздела, также как стандартное поле DESCRIPTION, а я пытаюсь вывести UF_RAZDEL_DES для каждого раздела из ul списка подразделов.

    • Роман Моренец От автора

      Сергей, здравствуйте! Спасибо за ваш вопрос! Используйте код приведенный в статье. Там в комментах указана функция print_r($arResult); через нее вы можете получить текущий вывод всех данных в конкретном разделе и выбрать оттуда данные о родительском и дочерних разделах. И на основе этих данных модифицировать код

      • Сергей

        Спасибо за совет. Попробую на днях. Хотя для своей задачи нашел уже готовое решение через файл result_modifier.php.
        В него вставил код:

        $arSection){
        // получаем значение пользовательского поля у каждого раздела
        $arUF = $GLOBALS[«USER_FIELD_MANAGER»]->GetUserFields(«IBLOCK_3_SECTION»,$arSection[‘ID’],»UF_MY_FIELD»);
        if($arUF[«UF_MY_FIELD»][«VALUE»] != «»){
        $arResult[«SECTIONS»][$key][«UF_MY_FIELD»] = $arUF[«UF_MY_FIELD»][«VALUE»];
        }
        }
        ?>

        и для вывода в шаблоне:

        <li id="GetEditAreaId($arSection[‘ID’]);?>»>
        <a href="/»><?=$arSection["NAME"]." «.$arSection[«UF_MY_FIELD»].»«?> ()

  • Степан

    Дякую за статтю.
    З Бітрікс знайомий 2 дні. Потрібно було вивести дані додаткових полів розділів інфоблока. ID розділа відповідно міняється динамічно, як його визначити не знав. Ці два рядки все розтавили на свої місця. А саме те що масив $arResult, як я зрозумів заповнюється, можна сказати автоматично. І його можна вивести через print_r.
    // $arParams[«IBLOCK_ID»] — у вас может быть получением ID инфоблока другим способом
    // $arResult[«SECTION»][«ID»] — и ID раздела тоже, проверяйте через print_r($arResult);
    Супер. Дякую.