Меню

Битрикс как вывести разделы инфоблока

Вывести разделы и подразделы инфоблока вместе с элементами

На форуме нашел следующее:

Надо смотреть не массив $arRes, а, например, $arFields, то есть:

еще вопрос: а как вывести значение свойств для каждого элемента,вроде в массиве arFields этого нет ?

Цитата
Владимир Спасенников пишет:
while($ob_res = $res->GetNextElement()) <
Цитата
Владимир Спасенников пишет:
$arProps = $ob_res->GetProperties();
$arFields = $ob_res->GetFields();>

«Не нравится — критикуй, критикуешь — предлагай, предлагаешь — делай, делаешь — отвечай.»

Сергей Павлович Королёв

Цитата
Сергей Остапюк пишет:
Так в цыкле используйте CIBlockElement::GetList с фильтром по SECTION_ID.

вот после таких советов люди жалуются что у них де- сайты ложатся даже на мощных серверах и битрикс «гумно».

если у вас 100 секций, у вас будет 100 ГетЛистов (а если у элементов куча свойств, то это 100 запросов с кучей джойнов, это если ещё без всяких документооборотов и учёта прав групп).

делайте так
сначала собирайте все айдишники секций в отдельный массив,
потом этот массив айдишников передавайте в отдельный GetList где в фильтр по SECTION_ID передавайте полученный массив с айдишниками секций.

В $arSelect укажите чтобы в числе прочего вам вернулся SECTION_ID элемента (таким образом в дальнейшем проще будет привязывать элементы к разделам).

чем лучше этот подход от подхода предложенного Сергеем — мы делаем один лишний GetList, вместо нескольких.

надеюсь достаточно понятно изъяснился ) как отсортировать элементы я думаю уже сами сообразите.

Источник

Битрикс: как узнать список разделов и элементов

Бывают ситуации, когда нужно вывести список элементов или разделов конкретного информационного блока (инфоблока). Воспользуемся CIBlockElement::GetList для элементов и CIBlockSection::GetList для разделов соответственно.

Как вывести список элементов инфоблока в 1С-Битрикс

Для этого создадим тестовую страницу в корне нашего сайта, например test.php . Код нашего файла будет иметь следующий вид:

Как видим, подключается header и footer (заголовок нам не нужен в принципе). Теперь напишем код CIBlockElement::GetList между подключением header и footer.

Код мы написали, теперь давайте посмотрим что мы делаем:

  • подключаем модуль iblock т.к. без него наш код может не работать;
  • задаем переменную, которая равна ID необходимого информационного блока (в моем случае это 14);
  • в переменную записываем CIBlockElement::GetList, иначе не сможем с ним работать;
  • в CIBlockElement::GetList есть массивы с данными:
    Array(«ID» => «ASC») — массив для сортировки, в нашем случае это ID по возрастанию,
    Array(«IBLOCK_ID» => $iblock_id) — массив для фильтрации — мы выбрали только по ID инфоблока,
    false, false — тут можно задать массивы для группировки элементов и выбрать параметры постраничной навигации (как правило, они не нужны, ставим каждому false),
    Array(‘ID’, ‘NAME’, ‘DETAIL_PAGE_URL’) — последний, но не менее важный массив, который вернет выбранные поля. В нашем случае он вернет ID, Имя элемента, полный путь к детальному элементу (его url).
  • выводим по очереди все наши элементы с помощью цикла.

urldecode — я использовал для правильного отображения кириллических урлов (да, их оказывается кто-то еще использует 🙂 ). $ar_fields[‘DETAIL_PAGE_URL’] — выведет вам в каждой строке ссылку на элемент, при желании, вы можете заменить DETAIL_PAGE_URL на ID или NAME и т.д. в зависимости от того, какая перед вами стоит задача.

Важно знать! Если вы не выбираете поля для последнего массива (который обычно называют arSelect), вы рискуете прилично загрузить ваш сервер, ведь он будет тащить для каждого элемента, значения всех его полей. Представьте сколько это запросов к БД.

Как узнать значения свойств инфоблока в Битриксе

Ну хорошо, мы выводим имя, id и ссылку — казалось бы, зачем весь этот цирк? А вот теперь рассмотрим случай, когда мы с помощью GetList можем узнать свойства инфоблока, конкретного элемента. Заменяем наш arSelect, он же массив с выбором полей на
Array(‘ID’, ‘NAME’, ‘DETAIL_PAGE_URL’, ‘PROREPTY_TITLE’)
где, TITLE — это символьный код вашего свойства (а приписка PROREPTY_ служит как раз для того чтобы это и указать).

Отобразить на экран свойство битрикса можно несколькими способами, в зависимости от его типа — строка это или список. Это может быть как

Если у вас что-то не получается, давайте просто выведем список элементов массива:

Кстати, если у вас много элементов в массиве, то для такой цели лучше вывести всего поля первого элемента (это может быть товар, новость и т.д.). Как это сделать? Либо дописать в GetList строку

либо создать счетчик перед массивом и вывести для 1 элемента, примерно вот так:

ПС — показал где писать nTopCount 🙂

Как вывести список разделов в 1С Битрикс

Описание почти такое же как и в предыдущим примере, но советую все же глянуть описание полей и возможных вариантов в официальной документации.

Если вы заметили, у нас теперь массив с выбором по порядку четвертый а не пятый и добавился параметр » ACTIVE» => «Y» , который выводит только активные «разделы»(это работает и для CIBlockElement, просто в данном скрипте нашими элеменами являются разделы инфоблока). Принцип работы с CIBlockSection::GetList почти такой же, как и с CIBlockElement. В данном скрипте мы выводим символьный код разделов, предварительно преобразовав в читаемую кириллицу.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка \ Загрузка файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое

Источник

Выводим названия разделов инфоблоков в Битриксе

Поддержка и сопровождение сайта, помимо обычного добавления информации (новости, статьи и т.д.) на веб-ресурс, часто подразумевает изменение или добавление какого-либо функционала. Для сайта «Детский МИР (музей истории русской) открытки» возникла потребность разделения новостного раздела на разделы (подкатегории) и последующий вывод названий этих разделов на странице списка всех новостей.

Используем компонент «news.list»

Для вывода списка новостей используется стандартный компонент «news.list». Шаблон компонента находится по адресу: /bitrix/templates/site-template/components/bitrix/news/news-template/bitrix/news.list/.default/template.php. Соответственно, для реализации задачи нам потребуется его редактирование. Обратимся к интернету. На профильном форуме для разработчиков «1С-Битрикс» находим нужное нам решение «Вывод названия раздела инфоблока» (http://dev.1c-bitrix.ru/support/forum/forum6/topic9567/) и конкретно код:

Далее мы будем использовать переменную

в нужном месте, которая будет выводит нам название раздела, к которому относится элемент инфоблока.

Если элемент входит в несколько разделов

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

На упомянутом выше форуме находим еще одно решение «Список разделов элемента»: http://dev.1c-bitrix.ru/support/forum/forum6/topic34935/. Для вывода списка разделов используется функция CIBlockElement::GetElementGroups. Она возвращает группы, которым принадлежит элемент, по его коду ID:

В нашем случае мы будем использовать следующий код, при этом arResult заменим на arItem:

Готово! Теперь мы умеем узнавать название раздела, в который входит элемент инфоблока (функция, не предусмотренная стандартным функционалом Битрикс) и узнавать все названия разделов, если элемент инфоблока входит в состав более одного из них.

Источник

Вывод названия раздела инфоблока

Есть инфоблок типа новости. Там сделано несколько разделов.

Хочу сделать возможной вывод списка новостей принадлежащих только конкретному разделу. Как это сделать?

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

Так же очень хотелось бы узнать как вывести на странице список всех разделов инфоблока?

Цитата
Хочу сделать возможной вывод списка новостей принадлежащих только конкретному разделу. Как это сделать?
Цитата
Так же очень хотелось бы узнать как вывести на странице список всех разделов инфоблока?

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

Раздел 1

  • Элемент 1
  • Элемент 2

Раздел 2

  • Элемент 1
  • Элемент 2

При этом по нажатии на ссылку элемента должно открываться описание этого элемента.

Сейчас я это сделал так:
Использовал компонент «Структура разделов» для вывода разделов, в его шаблон в цикле вставил вызов компонента список новостей с заданным ID раздела, который ссылается на компонент «Детальное описание».

Хотелось бы знать, не изобрел ли я велосипед, и м.б. есть способ проще. Кроме того, при этом наблюдается непонятный глюк: для вызоваемых в цикле компонентов списка новостей для редакторов даже в режиме просмотра сайта отображаются кнопки включаемых областей, которые, конечно, не функционируют, но вид портят. Для обычного пользователя все нормально.

о как раз почти по теме ответ ищу

вот выводит название раздела нормально, но если одна и таже новость находится скажем в 2ух разделах то оно показывает один
как сделать так чтобы оно показывало все разделы где данная новость находится?

Цитата
globol пишет:
Используйте стандартный компонент Список новостей. Там указываете код раздела, из которого выводятся новости.
Цитата
Вячеслав Кубаев пишет:
Вопрос в продолжение:
А как можно получить древовидный список элементов инфорблока? В моем случае есть описания модулей системы, собранные по подразделам и хотелось бы получить следующий вид:

Элемент 1
Элемент 2
Раздел 2

Элемент 1
Элемент 2

При этом по нажатии на ссылку элемента должно открываться описание этого элемента.

Вопрос актулен. Можно ли реализовать даннную возможность стандартными средствами?

Спасибо, капитаны очевидности!
То что можно вывести в шаблоне типо это понятно всем, но у большинства программистов задачи шире. Как пример, вывести названия разделов и сравнить их с тем что передается, скажем, $_POST запросом. К сожалению, очевидными способами, о которых вы тут говорите этого не сделать.
А теперь о том как сделать:

Код
‘; // смотрим, что у нас собралось в массив, и можно смело пользоваться именами > ?>
Цитата
Алексей Волжин написал:

Куда мне затолкать этот код чтобы вывести имя раздела на страницу.

Цитата
Алексей Волжин написал:
Куда хотите. Разделы будут лежать в массиве $ar_Resu.

Что то не получается может я не так делаю.. У меня на странице компонент новости он выводит содержимое радела инфоблока получая ID инфоблока через ссылку.
Вот эту страницу открываю в режиме редактирования php перед компонентом новости толкаю этот код, в итоге у меня мало того что не выводит название, ну и компонент новости перестает выводить содержимое раздела инфоблока. В этой теме я описал что делаю, думал может хоть просто название раздела на страницу поставить тоже не выходит.

Источник

Битрикс как вывести разделы инфоблока

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

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

Евгений Смолин: Сам кувыркался с непонятками (пока курсы учебные не прочитал и руками не попробовал то, что там написано). Битрикс из тех систем, где изучение «методом тыка» не очень эффективно без предварительного изучения учебных курсов. Уважаемые новички, потратьте немного своего драгоценного времени, пройдите пару-тройку учебных курсов и масса вопросов просто испарится — там есть ответы на множество вопросов.

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы опыта

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

    уроке.

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

    Тесты

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

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

    На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:

    Что дальше?

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

  • Технология Композитный сайт — ускорение работы сайта.
  • Разработка и эксплуатация высоконагруженных проектов — для тех кто делает «тяжёлые» проекты.
  • Бизнес-процессы — настройка и создание бизнес-процессов.
  • Бот платформа Битрикс24 — приложения, основанных на чатах в веб-мессенджере.
  • Маркетплейс Битрикс24 — приложения для коробочной и облачной версий Битрикс24.
  • Маркетплейс 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
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.

Источник

Читайте также:  Стиралка с вещами не стирает