- Вывод всего дерева каталога в catalog.section.list
- Форум
- Центр поддержки
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Структура разделов
- Параметры
- Пример вызова
- Структура разделов
- Параметры
- Пример вызова
Вывод всего дерева каталога в catalog.section.list
Вывод всего дерева каталога в catalog.section.list, Как выводить в разделах каталога все дерево подразделов через catalog.section.list?
Сделала меню-аккордеон из catalog.section.list. Вызываю один и тот же компонент из обоих файлов section.php и sections.php — в одном случае с указанием «SECTION_ID», в другом без него (как в исходных компонентах по-сути).
- Как сделать, чтоб при переходе с главного уровня каталога в подраздел отображалось все дерево разделов, а не только текущий?
- Как сделать так, чтоб активный раздел открывался в меню при переходе в этом раздел?
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
то список разделов на странице подраздела перестает корректно работать.
Очень прошу вашей помощи, знаю, что на форуме много умных и не жадных до знаний ребят ))
В «SECTION_ID» поставьте 0, добавьте параметр «CURRENT_SECTION_ID»=> $arResult[«VARIABLES»][«SECTION_ID»].
В шаблоне определяйте активность $arSection[«ID»]==$arParams[«CURRENT_SECTION_ID»]
Евгений Малков, спасибо огромное за подсказку! Не могли бы вы уточнить, добавить параметр «CURRENT_SECTION_ID» — нужно в файле component.php ? И где именно нужно задавать «SECTION_ID» равным 0 — в шаблоне, настройке компонента или там же в component.php ?
Антон Пилецкий, спасибо, но при организации меню через компонент меню есть свои сложности, из-за которых и решено было делать меню через catalog.section.list, в частности:
1) вывод описания и изображений разделов;
2) вывод элементов каталога тут же в меню.
Цитата |
---|
Наталья Семёнова пишет: Евгений Малков , спасибо огромное за подсказку! Не могли бы вы уточнить, добавить параметр «CURRENT_SECTION_ID» — нужно в файле component.php ? И где именно нужно задавать «SECTION_ID» равным 0 — в шаблоне, настройке компонента или там же в component.php ? |
Евгений Малков, такой способ я уже пробовала, но при этом перестают подгружаться подразделы (сделано на основе шаблона tree).. Не подскажете, как можно реализовать это с подрузкой подразделов?
у catalog.section.list параметр TOP_DEPTH (Максимальная отображаемая глубина разделов) указан?
Попробуйте «SECTION_ID» =>»» или вообще убрать
Цитата |
---|
Евгений Малков пишет: у catalog.section.list параметр TOP_DEPTH (Максимальная отображаемая глубина разделов) указан? Попробуйте «SECTION_ID» =>»» или вообще убрать |
В шаблоне TOP_DEPTH задается строкой: $TOP_DEPTH = $arResult[«SECTION»][«DEPTH_LEVEL»];
В вызове компонента catalog.section.list глубина указана: «TOP_DEPTH» => $arParams[«SECTION_TOP_DEPTH»],
Так же в вызове компонента каталога указан параметр: «SECTION_TOP_DEPTH» => «3»,
Если не определять SECTION_ID, то не подгружаются подкаталоги — работает только верхний уровень.
Евгений Малков, спасибо, что не бросаете в беде!
Шаблон ниже, а работу его можно посмотреть по ссылке
AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], CIBlock::GetArrayByID($arSection["IBLOCK_ID"], "SECTION_EDIT")); $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], CIBlock::GetArrayByID($arSection["IBLOCK_ID"], "SECTION_DELETE"), array("CONFIRM" => GetMessage('CT_BCSL_ELEMENT_DELETE_CONFIRM'))); if($CURRENT_DEPTH < $arSection["DEPTH_LEVEL"]) < if ($arSection["DEPTH_LEVEL"]==2) echo '"; endif; $CURRENT_DEPTH--; > > $count = $arParams["COUNT_ELEMENTS"] && $arSection["ELEMENT_CNT"] ? " (".$arSection["ELEMENT_CNT"].")" : ""; if ($_REQUEST['SECTION_ID']==$arSection['ID']) < $link = $arSection["NAME"].$count; $strTitle = $arSection["NAME"]; >else < $link = ''.$arSection["NAME"].$count.''; > if($arSection["DEPTH_LEVEL"]==1):?>'; if ($arSection["DEPTH_LEVEL"]==3) echo '"; > else < while($CURRENT_DEPTH >$arSection["DEPTH_LEVEL"]) < if($arSection["DEPTH_LEVEL"]==1): echo"'; > elseif($CURRENT_DEPTH == $arSection["DEPTH_LEVEL"]) < echo "
"; $CURRENT_DEPTH--; > ?>"; echo "23, "SECTION_ID"=>$arSection["ID"], "ACTIVE"=>"Y"); $elems = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);?>
while($CURRENT_DEPTH > $TOP_DEPTH) < echo " Источник
Форум
Вывод всего дерева каталога в catalog.section.list, Как выводить в разделах каталога все дерево подразделов через catalog.section.list?
Сделала меню-аккордеон из catalog.section.list. Вызываю один и тот же компонент из обоих файлов section.php и sections.php — в одном случае с указанием «SECTION_ID», в другом без него (как в исходных компонентах по-сути).
- Как сделать, чтоб при переходе с главного уровня каталога в подраздел отображалось все дерево разделов, а не только текущий?
- Как сделать так, чтоб активный раздел открывался в меню при переходе в этом раздел?
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],то список разделов на странице подраздела перестает корректно работать.
Очень прошу вашей помощи, знаю, что на форуме много умных и не жадных до знаний ребят ))
В «SECTION_ID» поставьте 0, добавьте параметр «CURRENT_SECTION_ID»=> $arResult[«VARIABLES»][«SECTION_ID»].
В шаблоне определяйте активность $arSection[«ID»]==$arParams[«CURRENT_SECTION_ID»]Евгений Малков, спасибо огромное за подсказку! Не могли бы вы уточнить, добавить параметр «CURRENT_SECTION_ID» — нужно в файле component.php ? И где именно нужно задавать «SECTION_ID» равным 0 — в шаблоне, настройке компонента или там же в component.php ?
Антон Пилецкий, спасибо, но при организации меню через компонент меню есть свои сложности, из-за которых и решено было делать меню через catalog.section.list, в частности:
1) вывод описания и изображений разделов;
2) вывод элементов каталога тут же в меню.
Цитата Наталья Семёнова пишет:
Евгений Малков , спасибо огромное за подсказку! Не могли бы вы уточнить, добавить параметр «CURRENT_SECTION_ID» — нужно в файле component.php ? И где именно нужно задавать «SECTION_ID» равным 0 — в шаблоне, настройке компонента или там же в component.php ?Евгений Малков, такой способ я уже пробовала, но при этом перестают подгружаться подразделы (сделано на основе шаблона tree).. Не подскажете, как можно реализовать это с подрузкой подразделов?
у catalog.section.list параметр TOP_DEPTH (Максимальная отображаемая глубина разделов) указан?
Попробуйте «SECTION_ID» =>»» или вообще убрать
Цитата Евгений Малков пишет:
у catalog.section.list параметр TOP_DEPTH (Максимальная отображаемая глубина разделов) указан?
Попробуйте «SECTION_ID» =>»» или вообще убратьВ шаблоне TOP_DEPTH задается строкой: $TOP_DEPTH = $arResult[«SECTION»][«DEPTH_LEVEL»];
В вызове компонента catalog.section.list глубина указана: «TOP_DEPTH» => $arParams[«SECTION_TOP_DEPTH»],
Так же в вызове компонента каталога указан параметр: «SECTION_TOP_DEPTH» => «3»,Если не определять SECTION_ID, то не подгружаются подкаталоги — работает только верхний уровень.
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Источник
Структура разделов
Компонент стандартный, входит в дистрибутив модуля и содержит 5 шаблонов: store_v3, .default, tree, store_v3_menu и bootstrap_v4.
В визуальном редакторе компонент расположен по пути Контент > Каталог > Структура разделов.
Компонент относится к модулю Информационные блоки.
Параметры
Поле Параметр Описание Примечание Основные параметры Тип инфо-блока IBLOCK_TYPE Указывается один из созданных в системе типов информационных блоков. Инфо-блок IBLOCK_ID Для выбранного типа инфоблоков указывается идентификатор необходимого информационного блока. ID раздела SECTION_ID Указывается код, в котором передается идентификатор раздела. Код раздела SECTION_CODE Указывается код раздела. Источник данных Показывать количество элементов в разделе COUNT_ELEMENTS [Y|N] При отмеченной опции будет показано количество элементов в разделе. Показывать количество COUNT_ELEMENTS_FILTER Выбирается для каких товаров показывать количество: активных, доступных или всех. Дополнительный фильтр для подсчета количества элементов в разделе ADDITIONAL_COUNT_ELEMENTS_FILTER Задается имя переменной, в которую передается параметры дополнительного фильтра для подсчета количества элементов в разделе. Скрывать разделы с нулевым количеством элементов HIDE_SECTIONS_WITH_ZERO_COUNT_ELEMENTS [Y|N] При отмеченной опции разделы без элементов отображаться не будут. Максимальная отображаемая глубина разделов TOP_DEPTH Параметр определяет максимальную глубину отображаемых разделов. Поля разделов SECTION_FIELDS Указываются поля раздела, которые будут отображены на странице структуры разделов. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:
- A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
- Y — Кешировать: для кеширования необходимо определить время кеширования;
- N — Не кешировать: кеширования нет в любом случае.
Пример вызова
IncludeComponent("bitrix:catalog.section.list","", Array( "ADDITIONAL_COUNT_ELEMENTS_FILTER" => "additionalCountFilter", "VIEW_MODE" => "TEXT", "SHOW_PARENT_NAME" => "Y", "IBLOCK_TYPE" => "", "IBLOCK_ID" => "", "SECTION_ID" => $_REQUEST["SECTION_ID"], "SECTION_CODE" => "", "SECTION_URL" => "", "COUNT_ELEMENTS" => "Y", "COUNT_ELEMENTS_FILTER" => "CNT_ACTIVE", "HIDE_SECTIONS_WITH_ZERO_COUNT_ELEMENTS" => "N", "TOP_DEPTH" => "2", "SECTION_FIELDS" => "", "SECTION_USER_FIELDS" => "", "ADD_SECTIONS_CHAIN" => "Y", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "CACHE_NOTES" => "", "CACHE_GROUPS" => "Y" ) );?>Источник
Структура разделов
Компонент стандартный, входит в дистрибутив модуля и содержит 5 шаблонов: store_v3, .default, tree, store_v3_menu и bootstrap_v4.
В визуальном редакторе компонент расположен по пути Контент > Каталог > Структура разделов.
Компонент относится к модулю Информационные блоки.
Параметры
Поле Параметр Описание Примечание Основные параметры Тип инфо-блока IBLOCK_TYPE Указывается один из созданных в системе типов информационных блоков. Инфо-блок IBLOCK_ID Для выбранного типа инфоблоков указывается идентификатор необходимого информационного блока. ID раздела SECTION_ID Указывается код, в котором передается идентификатор раздела. Код раздела SECTION_CODE Указывается код раздела. Источник данных Показывать количество элементов в разделе COUNT_ELEMENTS [Y|N] При отмеченной опции будет показано количество элементов в разделе. Показывать количество COUNT_ELEMENTS_FILTER Выбирается для каких товаров показывать количество: активных, доступных или всех. Дополнительный фильтр для подсчета количества элементов в разделе ADDITIONAL_COUNT_ELEMENTS_FILTER Задается имя переменной, в которую передается параметры дополнительного фильтра для подсчета количества элементов в разделе. Скрывать разделы с нулевым количеством элементов HIDE_SECTIONS_WITH_ZERO_COUNT_ELEMENTS [Y|N] При отмеченной опции разделы без элементов отображаться не будут. Максимальная отображаемая глубина разделов TOP_DEPTH Параметр определяет максимальную глубину отображаемых разделов. Поля разделов SECTION_FIELDS Указываются поля раздела, которые будут отображены на странице структуры разделов. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:
- A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
- Y — Кешировать: для кеширования необходимо определить время кеширования;
- N — Не кешировать: кеширования нет в любом случае.
Пример вызова
IncludeComponent("bitrix:catalog.section.list","", Array( "ADDITIONAL_COUNT_ELEMENTS_FILTER" => "additionalCountFilter", "VIEW_MODE" => "TEXT", "SHOW_PARENT_NAME" => "Y", "IBLOCK_TYPE" => "", "IBLOCK_ID" => "", "SECTION_ID" => $_REQUEST["SECTION_ID"], "SECTION_CODE" => "", "SECTION_URL" => "", "COUNT_ELEMENTS" => "Y", "COUNT_ELEMENTS_FILTER" => "CNT_ACTIVE", "HIDE_SECTIONS_WITH_ZERO_COUNT_ELEMENTS" => "N", "TOP_DEPTH" => "2", "SECTION_FIELDS" => "", "SECTION_USER_FIELDS" => "", "ADD_SECTIONS_CHAIN" => "Y", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "CACHE_NOTES" => "", "CACHE_GROUPS" => "Y" ) );?>Источник