Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как настроить фильтрацию полного каталога по id производителя?

00 голосов
3
Здравствуйте.

На странице с адресом вида сайт.ru/producer_detail.php?MANUFACTURER_ID=134 используются компонент "Новость детально"(выводит описание производителя) и комплексный компонент "Полный каталог", который должен выводить товары, связанные с текущим производителем. Но связанные элементы не выводятся. использую arrFilter для фильтрации. Что делаю не так?

Вот код страницы:

Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetPageProperty("keywords", "Производитель детских товаров");
$APPLICATION->SetPageProperty("description", "Производитель детских товаров");
$APPLICATION->SetTitle("Описание производителя детских товаров");
?> <?$APPLICATION->IncludeComponent(
   "bitrix:news.detail",
   ".default",
   Array(
      "DISPLAY_DATE" => "Y",
      "DISPLAY_NAME" => "Y",
      "DISPLAY_PICTURE" => "Y",
      "DISPLAY_PREVIEW_TEXT" => "Y",
      "USE_SHARE" => "N",
      "AJAX_MODE" => "N",
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "4",
      "ELEMENT_ID" => $_REQUEST["MANUFACTURER_ID"],
      "ELEMENT_CODE" => "",
      "CHECK_DATES" => "Y",
      "FIELD_CODE" => array(),
      "PROPERTY_CODE" => array(),
      "IBLOCK_URL" => "",
      "META_KEYWORDS" => "-",
      "META_DESCRIPTION" => "-",
      "BROWSER_TITLE" => "-",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "N",
      "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
      "ADD_SECTIONS_CHAIN" => "Y",
      "ACTIVE_DATE_FORMAT" => "d.m.Y",
      "USE_PERMISSIONS" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_GROUPS" => "Y",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "Y",
      "PAGER_TITLE" => "Страница",
      "PAGER_TEMPLATE" => "",
      "PAGER_SHOW_ALL" => "Y",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N"
   )
);?> 
<br />
 <?$arrFilter = array("PROPERTY_MANUFACTURER"=>$_REQUEST["MANUFACTURER_ID"]);?> 
<br />

<div><?$APPLICATION->IncludeComponent(
   "bitrix:catalog",
   ".default",
   Array(
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "3",
      "BASKET_URL" => "/personal/cart/",
      "ACTION_VARIABLE" => "action",
      "PRODUCT_ID_VARIABLE" => "id",
      "SECTION_ID_VARIABLE" => "SECTION_ID",
      "SEF_MODE" => "Y",
      "SEF_FOLDER" => "/catalog/detskie_tovary/",
      "AJAX_MODE" => "N",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "Y",
      "USE_FILTER" => "N",
      "USE_REVIEW" => "N",
      "USE_COMPARE" => "Y",
      "COMPARE_NAME" => "CATALOG_COMPARE_LIST",
      "COMPARE_FIELD_CODE" => array(0=>"PREVIEW_TEXT",1=>"DETAIL_PICTURE",2=>"",),
      "COMPARE_PROPERTY_CODE" => array(0=>"COLOR",1=>"MANUFACTURER",2=>"MATERIAL",3=>"PROP1",4=>"PROP2",5=>"PROP3",6=>"",),
      "COMPARE_ELEMENT_SORT_FIELD" => "sort",
      "COMPARE_ELEMENT_SORT_ORDER" => "asc",
      "DISPLAY_ELEMENT_SELECT_BOX" => "N",
      "PRICE_CODE" => array(0=>"BASE",),
      "USE_PRICE_COUNT" => "N",
      "SHOW_PRICE_COUNT" => "1",
      "PRICE_VAT_INCLUDE" => "Y",
      "PRICE_VAT_SHOW_VALUE" => "N",
      "SHOW_TOP_ELEMENTS" => "N",
      "PAGE_ELEMENT_COUNT" => "10",
      "LINE_ELEMENT_COUNT" => "1",
      "ELEMENT_SORT_FIELD" => "sort",
      "ELEMENT_SORT_ORDER" => "asc",
     &n
спросил 10 Март, 14 от Laleniel (160 баллов)

3 Ответы

00 голосов
Объявите $arrFilter как global перед добавлением в него значений.
ответил 26 Авг, 14 от Pomnep (13,960 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
N
исправил USE_FILTER на Y и объявил переменную глобальной на странице подключения компонентов:

Код
global $arrFilter;
$arrFilter = array("PROPERTY_MANUFACTURER"=>$_REQUEST["MANUFACTURER_ID"]);
 

По прежнему выводится список разделов полного каталога...

Чтобы проверить есть ли фильтр в section.php комплексного компонента полный каталог вставил в начале
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
echo '<pre>'.print_r($GLOBALS[$arParams['FILTER_NAME']], true).'</pre>';
...
ничего не вывелось.

Где дальше копать?
ответил 01 Янв, 15 от Laleniel (160 баллов)
00 голосов
А переменная $_REQUEST['MANUFACTURER_ID'] вообще существует? И если да, содержит ли нужные значения?
ответил 20 Апр, 15 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
0 ответов
0 голосов
0 ответов
0 голосов
2 ответов
0 голосов
4 ответов