вывести пользовательское поле битрикс
Как добавить и отобразить свойства у разделов в 1С-Битрикс
Если в вашем инфоблоке богатая структура, а именно — есть и элементы и разделы, то рано или поздно вам захочется вывести свойство, которое привязано к конкретному разделу. Сделать это можно несколькими способами, но мы рассмотрим только вывод через пользовательские свойства.
Как добавить и вывести дополнительные поля и свойства раздела в 1С-Битрикс
Чтобы это сделать, зайдите в админку, на нужном разделе нажмите «Изменить» или кликните по его ID (стоит отметить, если вы кликните по имени раздела, вы перейдете в сам раздел).
Отлично, мы в настройках раздела. На последней вкладке Доп. свойства мы и создадим наше пользовательское свойство, кликаем на Добавить пользовательское свойство (если у вас ее нету, не забудьте сбросить ваши настройки формы — делается это тут же, кликните на синюю шестеренку и отмените настройки).
Теперь нам необходимо создать поле. Самым популярным типом является строка, меняем наш тип (по умолчанию Видео) на Строка. Самое важное задать понятный Код поля — ну, например, это может быть UF_TITLE или UF_SECTION_DESC — этот код нам в дальнейшем пригодится для вывода, поэтому желательно давать осмысленные названия.
Кстати говоря, приставку UF_ рекомендуется оставить, так как другим разработчикам будет более понятней что мы пытаемся вывести, да и вам самим тоже. В самом низу формы создания поля, после того как мы придумали ему имя и задали тип, мы пишем ему название на русском и английском (для админки).
1С-Битрикс как вывести пользовательские поля разделов
Поле мы создали, осталось понять как его вывести на сайте. Для начала заполните на каком-то разделе эти свойства (я создам 3 поля для мета свойств), после чего переходим на этот раздел на нашем сайте. Если нам необходимо выводить эти свойства динамически (ID раздела будет меняться в зависимости от того, на каком разделе мы сейчас находимся), то заходим в наш код компонента (новости это или каталог) и где-нибудь в начале кода или в самом конце пишем:
Кстати, если вы еще не читали про CIBlockSection::GetList, советую глянуть эту статью, возможно вы узнаете для себя много интересного 🙂
О том, как вывести остальные наши 2 свойства и просто работать с мета данными, вы можете прочитать в статье Как задавать мета свойства в 1С-Битрикс.
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое
Вывести дополнительное пользовательское поле, использование полей в фильтрах
Если вам нужно вывести дополнительное пользовательское поле типа «Привязка к разделам инфоблока», данная записка возможно поможет. Опыт использования достаточно узкий, мало где может понадобиться, но. просто оставлю это здесь
Также, в рамках заметки, можно увидеть как вывести название родительского раздела инфоблока, зная ID одного из его потомков (подраздела).
Итак: Предположим, что у нас есть инфоблок с разделами, у которые есть подразделы:
И есть дополнительное пользовательское поле, типа «Привязка к разделам инф. блоков» направленное на этот инфоблок
В профиле пользователя, он может выбрать любой подраздел, любого раздела и самое главное не один. То есть свойство множественное.
И предположим, что пользователь навыбирал какие-то разделы. Нам же нужно вывести выбранные им разделы (названия) где-то на сайте, вообще не важно где
Для начала научимся выводить дополнительные поля пользователя в принципе, любого типа. По сути все просто:
$IBLOCK_ID = 10; // ID нужного инфоблока
//Создаем массив выводимых полей
$arSelect = array(‘ID’, ‘NAME’);
А теперь самое сложное, нам нужно- зная ID тех разделов которые выбрал пользователь, добавить в фильтрацию к методу CIBlockSection::GetTreeList и результатом получим все разделы которые выбрал пользователь
И добавляем фильтр к CIBlockSection::GetTreeList
$IBLOCK_ID = 10; // ID нужного инфоблока
//Создаем массив выводимых полей
$arSelect = array(‘ID’, ‘NAME’);
Все, теперь вы можете выводить названия и ID (ID конечно можно убрать из вывода, если ни к чему их показывать)
Получить Название родителя раздела инфоблока
И в качестве дополнения, способ как вывести родителя, зная ID потомка, раздела инфоблока
Итак, пользователь выбрал разделы «Другая бытовая техника» и «Малая бытовая техника». Нам же нужно вывести родителя этих разделов «Ремонт бытовой техники»
Мы, способом описанным выше, может получить ID всех разделов, но нам достаточно одного, если он имеет родителя то и все остальные. Поэтому просто прерываем while на втором шаге шаге
И просто выводим вот такую конструкцию, в которую подстваили ID одного из известных разделов методом CIBlockSection::GetByID
В общем-то и все. Скорее всего я избыточно использую переменные, в паре мест можно было обойтись без них, но постарался разложить способ на молекулы. Все вопросы, прошу задавать в комментариях
Вывод пользовательских свойств в БИТРИКСЕ
Фильтрация
Пользовательские поля разделов могут принимать участие в фильтрации.
Будут отобраны все разделы, у которых установлено значение свойства UF_ARC_PAGES.
Фильтрация по значению пользовательского свойства:
Сортировка
Сортировать по пользовательским полям разделов:
Получение значений
Получить значение пользовательского поля можно с помощью метода GetList соответствующего класса.
Значение пользовательского поля для пользователя с можно таким образом:
Чтобы получить значение пользовательского поля определенного пользователя, тип поля – строка, необходимо воспользоваться методом GetListкласса CUser. При этом в качестве четвертого аргумента данному методу необходимо передать массив с ключом SELECT, значениями которого являются список кодов пользовательских свойств, которые необходимо получить.
Если тип пользовательского поля список, то для получения значения (или значений, если возможен множественный выбор) нужно воспользоваться методом GetList класса CUserFieldEnum.
Если необходимо получить список всех значений пользовательского поля объекта USER типа список, то следует воспользоваться следующим кодом:
Для выбора значения пользовательского поля у секции информационного блока можно воспользоваться методом CIBlockSection:GetList:
Получение значения пользовательского поля типа файл конкретной секции инфоблока:
Так как пользовательские поля можно использовать не только с разделами информационного блока, но и с любыми другими сущностями, то для выбора значений по идентификатору сущности используется класс CUserTypeManager. Экземпляр данного класса уже находится в глобальной переменной $USER_FIELD_MANAGER.
В результате мы получим массив содержащий в себе всю информацию о поле и его значении для конкретного объекта.
Вывести пользовательское поле битрикс
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
уроке.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
Пользовательские поля
На странице Пользовательские поля (Настройки > Настройки продукта > Пользовательские поля) можно добавлять новые поля, просматривать и изменять существующие, удалять ненужные пользовательские поля. Вывод значений пользовательских полей в публичной части производится с помощью API продукта.
Форма поиска
Форма фильтра используется для выбора из списка пользовательских полей в соответствии с указанными условиями. Нижеследующая таблица описывает параметры, по которым может выполняться поиск.
Параметр | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|
Найти | Позволяет найти пользовательские поля по их основным параметрам: идентификатору или объекту. Чтобы отобрать пользовательские поля по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех пользовательских полей нажмите кнопку Отменить. Контекстная панель
Список пользовательских полейПользовательские комментарииМы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы. Для этого нужно всего лишь авторизоваться на сайте Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь. Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
|