Дано:
1. стандартный bitrix:catalog,
2. инфоблок, где элементы есть только у разделов последнего уровня, т.е.:
Уровень 1
Подуровень 1-1
Еще подуровень 1-1-1
Элементы инфоблока
Еще подуровень 1-1-2
3. необходимо на каждом уровне выводить подуровни и элементы, непосредственно относящиеся к текущему уровню (без вложенных).
Идем в настройки компонента и:
1. убираем галочку "Выводить топ элементов"
2. убираем галочку "Показывать элементы подразделов раздела"
3. убираем галочку "Выводить всегда" в настройках постраничной навигации
Смотрим результат. Все вроде хорошо, но выводится 2 уровня вложенности разделов. Непорядок.
Копируем шаблон компонента и делаем следующее:
1. Создаем параметр шаблона (НЕ компонента) типа "string". Назовем его MAX_LEVEL (например). Как копировать шаблоны и добавлять к ним параметры - описано в документации.
2. В шаблоне находим файлы sections.php и section.php Первый файл отвечает за показ корневого раздела, второй - всех остальных. Находим в этих файлах вызовы компонента bitrix:catalog.section.list:
В массив параметров компонента добавляем строчку
Сохраняем. Вызываем настройки bitrix:catalog и ставим нашему парамету значение 1. Сохраняем, смотрим, наслаждаемся жизнью.
UPD. C 12-й версии копировать шаблон и добавлять параметр будет уже не нужно.
1. стандартный bitrix:catalog,
2. инфоблок, где элементы есть только у разделов последнего уровня, т.е.:
Уровень 1
Подуровень 1-1
Еще подуровень 1-1-1
Элементы инфоблока
Еще подуровень 1-1-2
3. необходимо на каждом уровне выводить подуровни и элементы, непосредственно относящиеся к текущему уровню (без вложенных).
Идем в настройки компонента и:
1. убираем галочку "Выводить топ элементов"
2. убираем галочку "Показывать элементы подразделов раздела"
3. убираем галочку "Выводить всегда" в настройках постраничной навигации
Смотрим результат. Все вроде хорошо, но выводится 2 уровня вложенности разделов. Непорядок.
Копируем шаблон компонента и делаем следующее:
1. Создаем параметр шаблона (НЕ компонента) типа "string". Назовем его MAX_LEVEL (например). Как копировать шаблоны и добавлять к ним параметры - описано в документации.
2. В шаблоне находим файлы sections.php и section.php Первый файл отвечает за показ корневого раздела, второй - всех остальных. Находим в этих файлах вызовы компонента bitrix:catalog.section.list:
$APPLICATION->IncludeComponent( "bitrix:catalog.section.list", "", Array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], ... |
"TOP_DEPTH" => $arParams["MAX_LEVEL"] |
Сохраняем. Вызываем настройки bitrix:catalog и ставим нашему парамету значение 1. Сохраняем, смотрим, наслаждаемся жизнью.
UPD. C 12-й версии копировать шаблон и добавлять параметр будет уже не нужно.
Дело в том, что при переходе на нижеследующий подраздел вверху отображаются подразделы текущего раздела, но без картинок, не смотря на то, что в корневом разделе catalog.section.list отображает список подразделов с картинками. Подозрения у меня на то, что опять шаблон откуда-то не оттуда берется, но может быть я и ошибаюсь. Направьте в нужную сторону, пожалуйста
С наилучшими пожеланиями, Илья
В папке bitrix\components\bitrix\catalog\templates\.default среди прочих лежит файл section.php. Это тот самый файл, о котором говорили Вы и который начинается с подключения компонента catalog.section.list.
Я копирую средствами битрикса шаблон комплексного компонента catalog в свой шаблон сайта. После этого иду в папку bitrix\templates\мой_шаблон_сайта\components\bitrix\catalog\мой_шаблон_комопонента и открываю файл section.php. Содержимое этого каталога отличается от вышеназванного сайта в том числе и тем, что в нем нет подключения компонента catalog.section.list, а кроме других есть только подключение компонента catalog.section.
Как это может быть и откуда берется конкретно этот файл section.php в скопированном шаблоне?
Первый принтскрин - это родительский раздел компонента. Второй принтскрин - это, дочерний раздел компонента в котором подразделы отображаются уже как childs. Пытаюсь сделать так, чтоб все нижестоящие разделы (дочерние) выглядели как родительский. Я так понимаю, что у вас именно так? Или мы все таки о разных вещах говорим?