Задача: "вывести на странице товара такие же товары у которых значение свойства "Грузоподъемность" совпадает"
Как я вывел на странице элемента инфоблока (в catalog.element) элементы с аналогичным значением свойства:
В шаблоне элемента в комплексном компоненте
site_template/components/bitrix/catalog/.catalog_template/bitrix/catalog.element/.default/template.php
Записываем в глобальные переменные следующие переменные:
Затем открываем site_template/components/bitrix/catalog/.catalog_template/element.php
Формируем массив-фильтр:
?PROPERTY_GRUZ - будет искать вхождение подстроки $GLOBALS["GRUZ_VL"]
"!NAME" => $GLOBALS["name_of_element"] - из фильтра исключаем элемент, на странице которого мы находимся
В этом же файле element.php вызываем компонент catalog.section
use_filter - использовать фильтр
filter_name - имя фильтра
"SHOW_ALL_WO_SECTION" => "Y", - показывать все элементы, если не указан id раздел, т.к. у корневого раздела нет id, то указываем этот параметр и удаляем: "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
иначе будет выдавать результат из раздела самого элемента.
Как я вывел на странице элемента инфоблока (в catalog.element) элементы с аналогичным значением свойства:
В шаблоне элемента в комплексном компоненте
site_template/components/bitrix/catalog/.catalog_template/bitrix/catalog.element/.default/template.php
Записываем в глобальные переменные следующие переменные:
шаблон элемента catalog.element <? // название элемента $GLOBALS["name_of_element"]=$arResult['NAME']; // значение свойства $GLOBALS["GRUZ_VL"]=intval($arResult['DISPLAY_PROPERTIES']['GRUZ'] ) ; ?> |
Затем открываем site_template/components/bitrix/catalog/.catalog_template/element.php
Формируем массив-фильтр:
?PROPERTY_GRUZ - будет искать вхождение подстроки $GLOBALS["GRUZ_VL"]
"!NAME" => $GLOBALS["name_of_element"] - из фильтра исключаем элемент, на странице которого мы находимся
<? $GLOBALS['arrGruzFilter'] = array("?PROPERTY_GRUZ"=>$GLOBALS["GRUZ_VL"], "!NAME" => $GLOBALS["name_of_element"] ) ; ?> |
<?$APPLICATION->IncludeComponent( "bitrix:catalog.section", "gruz_filtered", Array( "USE_FILTER" => "Y", "FILTER_NAME" => "arrGruzFilter", "SHOW_ALL_WO_SECTION" => "Y", /* "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"], "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"], */ ), $component ); ?> |
filter_name - имя фильтра
"SHOW_ALL_WO_SECTION" => "Y", - показывать все элементы, если не указан id раздел, т.к. у корневого раздела нет id, то указываем этот параметр и удаляем: "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
иначе будет выдавать результат из раздела самого элемента.