Разделы инфоблока - вывод дерева и адреса разделов
Разделы - подтема на 11 вопросов из собранных. Здесь собраны решения по выводу дерева разделов и по их адресам.
Что общего у этих задач
Разделы и элементы выводят разные компоненты. Список товаров ничего не знает о подразделах, а список разделов - о товарах внутри них. Раздел, в котором лежат только подразделы, выглядит пустой страницей до тех пор, пока второй компонент не поставлен рядом.
Дерево разделов не выводится целиком по умолчанию. Компонент показывает уровень текущего раздела, а глубина задаётся отдельным параметром. Отсюда постоянное «выводятся только категории первого уровня».
Адрес раздела собирается по шаблону из настроек инфоблока. Он не связан с физической структурой папок сайта: одна и та же страница обслуживает все разделы, разбирая адрес по правилу.
Разделы почти всегда приезжают из учётной системы. Значит, структуру правят на её стороне, а на сайте следят за адресами, картинками и порядком сортировки после каждого обмена.
С чего начать
Начинают с того, что должен увидеть посетитель в разделе с подразделами. Список подразделов, список товаров или оба списка сразу - от ответа зависит набор компонентов на странице.
Дальше проверяют глубину вывода дерева и правило адресов. Оба параметра задаются явно, и «выводится только первый уровень» почти всегда объясняется настройкой, а не ошибкой платформы.
Последним смотрят на скорость. Дерево на сотню разделов со счётчиками товаров собирается заметно дольше, чем кажется, и его почти всегда стоит кэшировать.
Решения подтемы
-
Вывод разделов: дерево, подразделы, адреса - список разделов и подразделов, глубина, шаблоны адресов.
-
Правка структуры разделов: перенос, слияние, удаление - переезд ветки, перенос товаров, адреса после правки.
-
Раздел не выводится: разбор причин - активность родителя, пустой раздел, права, дерево, кэш.
-
Количество товаров в разделе: подсчёт, вложенность, кэш - штатный счётчик, ветка с подразделами, наличие, кэш и пересчёт.
-
Разделы изнутри: дерево, ключи, привязки элементов - ключи вложенности, глобальная активность, привязки, пересчёт.
Частые вопросы
Почему в разделе не видно подразделов?
На странице стоит только компонент списка элементов. Подразделы выводит отдельный компонент, и его добавляют явно.
Как вывести всё дерево разделов сразу?
Параметром глубины вывода у компонента списка разделов. По умолчанию показывается только текущий уровень.
Откуда берётся адрес раздела?
Из шаблона адреса в настройках инфоблока: платформа подставляет в него код раздела и путь его родителей. Физических папок под разделы не создаётся.
Можно ли задать своё правило адресов для части разделов?
Штатно шаблон один на инфоблок. Отдельные адреса делают своим правилом обработки адресов, разбирающим путь до нужного раздела.
Связанные темы
- Инфоблоки - устройство хранилища целиком
- Выборки из инфоблоков - как выбрать разделы из кода
- Витрина каталога: список раздела, сортировка, фильтр - разделы на витрине магазина
- Раздел Инфоблоки и данные