Вывести все товары, с постраничной навигацией, из всех разделов инфоблока

695  |  3

По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары всех разделов инфоблока, с постраничной навигацией. Да, и еще навесить умный фильтр над этим делом. Все очень просто- рассказываю

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, но умный фильтр не работает (выводятся только кнопки "Показать" и "Сбросить" ).
Не могли бы вы подсказать как заставить умный фильтр работать?

Код

Код
<?$APPLICATION->IncludeComponent(
            "bitrix:catalog.smart.filter",
            "",
            array(
                "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
                "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"],
                "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
                "DISPLAY_ELEMENT_COUNT" => "Y",
                "SAVE_IN_SESSION" => "N",
                "FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"],
                "XML_EXPORT" => "Y",
                "SECTION_TITLE" => "NAME",
                "SECTION_DESCRIPTION" => "DESCRIPTION",
                'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
                "TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"],
                'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
                'CURRENCY_ID' => $arParams['CURRENCY_ID'],
                "SEF_MODE" => $arParams["SEF_MODE"],
                "SEF_RULE" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["smart_filter"],
                "SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"],
                "PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
            ),
            $component,
            array('HIDE_ICONS' => 'Y')
        );?>



Код
<? $GLOBALS["ArrFilterManuf"] = array('PROPERTY_10' => $ElementID); ?>
<?$APPLICATION->IncludeComponent(
   "bitrix:catalog.section", 
   ".default", 
   array(
      "TEMPLATE_THEME" => "blue",
      "PRODUCT_DISPLAY_MODE" => "N",
      "ADD_PICT_PROP" => "-",
      "LABEL_PROP" => "-",
      "OFFER_ADD_PICT_PROP" => "FILE",
      "OFFER_TREE_PROPS" => array(
         0 => "-",
      ),
      "PRODUCT_SUBSCRIPTION" => "N",
      "SHOW_DISCOUNT_PERCENT" => "N",
      "SHOW_OLD_PRICE" => "N",
      "SHOW_CLOSE_POPUP" => "Y",
      "MESS_BTN_BUY" => "Купить",
      "MESS_BTN_ADD_TO_BASKET" => "В корзину",
      "MESS_BTN_SUBSCRIBE" => "Подписаться",
      "MESS_BTN_DETAIL" => "Подробнее",
      "MESS_NOT_AVAILABLE" => "Нет в наличии",
      "AJAX_MODE" => "Y",
      "SEF_MODE" => "N",
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "2",
      "SECTION_ID" => $_REQUEST["SECTION_ID"],
      "SECTION_CODE" => "",
      "SECTION_USER_FIELDS" => array(
         0 => "",
         1 => "",
      ),
      "ELEMENT_SORT_FIELD" => "sort",
      "ELEMENT_SORT_ORDER" => "asc",
      "ELEMENT_SORT_FIELD2" => "name",
      "ELEMENT_SORT_ORDER2" => "asc",
      "FILTER_NAME" => "ArrFilterManuf",
      "INCLUDE_SUBSECTIONS" => "Y",
      "SHOW_ALL_WO_SECTION" => "Y",
      "SECTION_URL" => "",
      "DETAIL_URL" => "",
      "BASKET_URL" => "/personal/basket.php",
      "ACTION_VARIABLE" => "action",
      "PRODUCT_ID_VARIABLE" => "id",
      "PRODUCT_QUANTITY_VARIABLE" => "quantity",
      "ADD_PROPERTIES_TO_BASKET" => "Y",
      "PRODUCT_PROPS_VARIABLE" => "prop",
      "PARTIAL_PRODUCT_PROPERTIES" => "N",
      "SECTION_ID_VARIABLE" => "SECTION_ID",
      "ADD_SECTIONS_CHAIN" => "N",
      "DISPLAY_COMPARE" => "N",
      "SET_TITLE" => "N",
      "SET_BROWSER_TITLE" => "N",
      "BROWSER_TITLE" => "-",
      "SET_META_KEYWORDS" => "N",
      "META_KEYWORDS" => "",
      "SET_META_DESCRIPTION" => "N",
      "META_DESCRIPTION" => "",
      "SET_LAST_MODIFIED" => "N",
      "USE_MAIN_ELEMENT_SECTION" => "N",
      "SET_STATUS_404" => "N",
      "PAGE_ELEMENT_COUNT" => "9",
      "LINE_ELEMENT_COUNT" => "3",
      "PROPERTY_CODE" => array(
         0 => "NEWPRODUCT",
         1 => "SPECIALOFFER",
         2 => "MANUFACTURER",
         3 => "APPLICATION_AREA",
         4 => "AGE",
         5 => "categoty",
         6 => "colour_khna",
         7 => "SKIN_TYPE",
         8 => "line",
         9 => "bronze",
         10 => "osobennosti",
         11 => "APPOINTMENT",
         12 => "TYPE_OF_PRODUCT",
         13 => "FOR_WHOM",
         14 => "APPOINTMENT_BODY",
         15 => "ARTNUMBER",
         16 => "HAIR_LENGTH",
         17 => "VOLUME",
         18 => "",
      ),
      "OFFERS_FIELD_CODE" => array(
         0 => "",
         1 => "",
      ),
      "OFFERS_PROPERTY_CODE" => array(
         0 => "",
         1 => "",
      ),
      "OFFERS_SORT_FIELD" => "sort",
      "OFFERS_SORT_ORDER" => "asc",
      "OFFERS_SORT_FIELD2" => "active_from",
      "OFFERS_SORT_ORDER2" => "desc",
      "OFFERS_LIMIT" => "5",
      "BACKGROUND_IMAGE" => "-",
      "PRICE_CODE" => array(
         0 => "BASE",
      ),
      "USE_PRICE_COUNT" => "Y",
      "SHOW_PRICE_COUNT" => "1",
      "PRICE_VAT_INCLUDE" => "Y",
      "PRODUCT_PROPERTIES" => array(
      ),
      "USE_PRODUCT_QUANTITY" => "Y",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "Y",
      "PAGER_TITLE" => "Товары",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => "",
      "PAGER_DESC_NUMBERING" => "Y",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "Y",
      "HIDE_NOT_AVAILABLE" => "Y",
      "OFFERS_CART_PROPERTIES" => array(
      ),
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "CONVERT_CURRENCY" => "Y",
      "CURRENCY_ID" => "RUB",
      "ADD_TO_BASKET_ACTION" => "ADD",
      "PAGER_BASE_LINK_ENABLE" => "Y",
      "SHOW_404" => "N",
      "MESSAGE_404" => "",
      "PAGER_BASE_LINK" => "",
      "PAGER_PARAMS_NAME" => "arrPager",
      "COMPONENT_TEMPLATE" => ".default",
      "MESS_BTN_COMPARE" => "Сравнить",
      "AJAX_OPTION_ADDITIONAL" => "",
      "FILE_404" => "",
      "DISABLE_INIT_JS_IN_COMPONENT" => "N"
   ),
   false
);?>
Михаил Базаров
Цитата
Владимир Мороз написал:
Здравствуйте, Михаил! Спасибо за статью. Как раз появилась задача вывести умный фильтр на странице производителя со списком товаров. Ранее выводился просто catalog.top.
Переделал на сatalog.section. Перед вызовом сatalog.section вставил bitrix:catalog.smart.filter, но умный фильтр не работает (выводятся только кнопки "Показать" и "Сбросить" ).
Не могли бы вы подсказать как заставить умный фильтр работать?

Код
Код
 <?$APPLICATION->IncludeComponent(
            "bitrix:catalog.smart.filter",
            "",
            array(
                
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
                "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"],
                "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
                "DISPLAY_ELEMENT_COUNT" => "Y",
                "SAVE_IN_SESSION" => "N",
                "FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"],
                "XML_EXPORT" => "Y",
                "SECTION_TITLE" => "NAME",
                "SECTION_DESCRIPTION" => "DESCRIPTION",
                'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
                "TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"],
                'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
                'CURRENCY_ID' => $arParams['CURRENCY_ID'],
                "SEF_MODE" => $arParams["SEF_MODE"],
                "SEF_RULE" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["smart_filter"],
                "SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"],
                "PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
            ),
            $component,
            array('HIDE_ICONS' => 'Y')
        );?>

 
Думаю, ошибка у вас в настройках фильтра. Вы передаете не понятные ему параметры в
Код
"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"],

попробуйте просто вписать необходимые данные
Владимир Мороз
Спасибо, буду разбираться с параметрами

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: