По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары всех разделов инфоблока, с постраничной навигацией. Да, и еще навесить умный фильтр над этим делом. Все очень просто- рассказываю
Catalog.section вместо catalog.top
Для начала, просто смотрим на шаблон комплексного компонента каталог, и понимаем, что все что нам нужно уже есть в section.php. Там выводится компонент catalog.section. и умный фильтр с ним работает. да и постраничная навигация там уже есть. Делать все тоже самое для catalog.top, который выводится в sections.php, трудоемко- придется кастомизировать компонент ТОП-а
Единственное чего не хватает в catalog.section это выводить товары "не зная раздела"- то есть он выводит товары (элементы точнее) только из заведомо известного раздела....или нет? )
Копируем catalog.section из section.php в sections.php, просто как есть. Catalog.top можете оставить, по желанию- выведете туда пару тройку товаров с иным оформлением (ТОП же).
У catalog.section находим строчку
"SHOW_ALL_WO_SECTION" => "N",
И меняем N на Y. SHOW_ALL_WO_SECTION - это не документированный параметр, который отвечает за вывод элементов инфоблока без привязки к разделам, точнее: если раздел не известен- выводит все подряд
У самого же catalog.section уже есть и постраничная навигация, и над ним можно навесить умный фильтр
В следующей записке, расскажу как вывести Умный фильтр на главную, что бы он давал выбрать параметры товаров и отправлял в каталог, эта записка нам понадобится.

Цитата | ||
---|---|---|
Владимир Мороз написал: Здравствуйте, Михаил! Спасибо за статью. Как раз появилась задача вывести умный фильтр на странице производителя со списком товаров. Ранее выводился просто catalog.top. Переделал на сatalog.section. Перед вызовом сatalog.section вставил bitrix:catalog.smart.filter, но умный фильтр не работает (выводятся только кнопки "Показать" и "Сбросить" ). Не могли бы вы подсказать как заставить умный фильтр работать? Код
|
Код |
---|
"IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => $arCurSection['ID'], "FILTER_NAME" => $arParams["FILTER_NAME"], "PRICE_CODE" => $arParams["PRICE_CODE"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], |
попробуйте просто вписать необходимые данные
Цитата |
---|
Копируем catalog.section из section.php в sections.php, просто как есть. |
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); use Bitrix\Main\Loader; use Bitrix\Main\ModuleManager; if ($isFilter) { ...СОКРАЩЕНО МОДЕРАТОРОМ ТУТ ТИПОВОЙ ВЫЗОВ ИЗ ОДЕЖДА+... </div> |
Код |
---|
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); ...СОКРАЩЕНО МОДЕРАТОРОМ ТУТ ТИПОВОЙ ВЫЗОВ ИЗ ОДЕЖДА+... </div> <? endif ?> |
Цитата |
---|
"SHOW_ALL_WO_SECTION" => "N", |
PS. Использую редакцию Старт. Обновления все свежие

Цитата |
---|
Кирилл написал: Михаил, здравствуйте. Немного не понял Обрезано: вопрос в предыдущем посте |
Я думаю, вот это вам прояснит ситуацию. Тут я вызываю умный фильтр, но перед этим делаю необходимые правки, как раз уместные для вашей ситуации
https://camouf.ru/blog-note/2502/
Цитата |
---|
Михаил Базаров пишет: Я думаю, вот это вам прояснит ситуацию. Тут я вызываю умный фильтр, но перед этим делаю необходимые правки, как раз уместные для вашей ситуации https://camouf.ru/blog-note/2502/ |
Код |
---|
<?$show_root_filter = "/test2/"; if (strstr($APPLICATION->GetCurDir(), $show_root_filter)) { ... вызов компонента умного фильтра ... } |

PS. есть еще второй вопрос немного не по теме. (Вы слету определили шаблон который я пытаюсь кастомизировать, поэтому попробую его вам задать)
Пытаюсь кастомизировать компонент catalog для этого я хочу перенести его в папку local для этого скопировал комплексный компонент catalog через режим правки, затем я скопировал через админку комплексный компонент catalog.section и добавил к дефолтному шаблону .default свой шаблон /local/templates/шаблон_сайта/components/bitrix/catalog.section/kirill-catalog-section/
После добавления шаблона под моим названием я вносил изменения в код вызова компонента (менял .default на свое название)
Однако в catalog.section после <!-- items-container --> есть управляющая констукция switch() в которой в зависимости от условия case подключается компонент bitrix:catalog.item
Вот с ним у меня возникла проблема - пытался также скопировать папку компонента в /local/templates/шаблон_сайта/components/bitrix/catalog.item/templates/.default/card/
Однако этот шаблон не подтягивается - вместо него подтягивается шаблон из /bitrix/components/bitrix/catalog.item/templates/.default/card/
Также пытался создать свой шаблон /local/templates/шаблон_сайта/components/bitrix/catalog.item/templates/moi_shablon/card/ и прописать его вызов в catalog.section
Код |
---|
case 2: ?> <div class="col-xs-12 product-item-small-card"> <div class="row"> <? foreach ($rowItems as $item) { ?> <div class="col-sm-4 product-item-big-card"> <div class="row"> <div class="col-md-12"> <? $APPLICATION->IncludeComponent( 'bitrix:catalog.item', 'moi_shablon', array( 'RESULT' => array( 'ITEM' => $item, 'AREA_ID' => $areaIds[$item['ID']], 'TYPE' => $rowData['TYPE'], 'BIG_LABEL' => 'N', 'BIG_DISCOUNT_PERCENT' => 'N', 'BIG_BUTTONS' => 'Y', 'SCALABLE' => 'N' ), 'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']]) ), $component, array('HIDE_ICONS' => 'Y') ); ?> </div> </div> </div> <? } ?> </div> </div> <? break; |
Если не сложно и есть время подскажите в чем моя ошибка.

Цитата |
---|
Кирилл написал: Сам решил вопрос. Я олень. выше я писал что подтягивал компоненты из папки /local/templates/шаблон_сайта/components/bitrix/catalog.item/ а нужно было /local/components/мое_пространство_имён/catalog.item/ Вот такой вот я олень - не внимательно разобрался с пространствами имен, но теперь все пучком. |
Вывел все товары на отдельной странице с помощью catalog.section ,
навесил фильтр чтоб показывались только товары со свойством - "спецпредложение".
Никак не получается вывести цену. В template.php цена выводится в этой строчке:
<span class="price" id="product-price-<?=$arItem["ID"]?>"><?=$arItem["MIN_PRICE"]["PRINT_VALUE"]?>
В битриксе только пытаюсь разобраться, куда смотреть?
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|
Аналогичная проблема.. Просто копирование шаблона компонента catalog.item в папку шаблона в local результата не приносит. В Ваших уроках используется старый шаблон каталога. Там проблем с редактированием карточки товара в списке проблем нет. А вот с новым каталогам - проблемка.. Тянет почему-то упорно шаблон из папки битрикс.. Может сталкивались с таким недугом?
Цитата | ||||
---|---|---|---|---|
Алексей Коновалов пишет:
Аналогичная проблема.. Просто копирование шаблона компонента catalog.item в папку шаблона в local результата не приносит. В Ваших уроках используется старый шаблон каталога. Там проблем с редактированием карточки товара в списке проблем нет. А вот с новым каталогам - проблемка.. Тянет почему-то упорно шаблон из папки битрикс.. Может сталкивались с таким недугом? |