На странице справа выводится форма для фильтрации элементов каталога по свойствам.
Фильтрация производится при помощи компонента catalog.filter
Мне нужно сделать так , чтобы можно было добавлять произвольные свойства в админке,
которые бы потом отображались в данном фильтре.
Для получения набора свойств для компонента catalog.filter я использую следующий код:
Далее, выводим свойства на экран и видим, что
каждое свойство имеет следующий набор значений:
Исходя из документации, мне нужно использовать свойство FILTRABLE
http://dev.1c-bitrix.ru/user_help/content/iblock/iblock_prop_edit.php
Захожу сюда: Рабочий стол - Контент - Инфоблоки - Типы инфоблоков - Каталоги
Перехожу в редактирование свойств инфоблока.
Ставлю галочки:
Выводить на странице списка элементов поле для фильтрации по этому свойству:
Показывать в умном фильтре:
Теперь получаю список свойств и выясняется, что у некоторых свойств [FILTRABLE] => Y, а у новых свойств [FILTRABLE] => N.
Т. е. получается, что эти галочки ни на что не влияют? Зачем тогда они нужны?
Либо они записывают какие-то другие значения для свойства? Но какие тогда?
Я не наблюдаю больше других подходящих значений для свойств в указанном выше списке.
Если это поле [FILTRABLE] не подходит, то как тогда еще вывести нужные мне свойства?
Фильтрация производится при помощи компонента catalog.filter
Мне нужно сделать так , чтобы можно было добавлять произвольные свойства в админке,
которые бы потом отображались в данном фильтре.
Для получения набора свойств для компонента catalog.filter я использую следующий код:
Код |
---|
$list = CIBlockElement::GetList(array('SORT' => 'ASC'), array('IBLOCK_CODE' => $iblockCode/*, 'SECTION_CODE' => $sectionCode*/), false, false, array('*')); $arElement = $list->GetNextElement(); $arProps = $arElement->GetProperties(); $i = 0; foreach($arProps as $key => $val) { if (($val['PROPERTY_TYPE'] == 'L') && ($val['FILTRABLE'] == 'Y') && ($i < 50)) { $props[] = $key; $i++; } } $APPLICATION->IncludeComponent("g-top:catalog.filter", "rightFilter", array( "IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => $iblockId, "FILTER_NAME" => "arrFilter", "FIELD_CODE" => array( 0 => "", 1 => "", ), "PROPERTY_CODE" => $props, "OFFERS_FIELD_CODE" => array( 0 => "", 1 => "", ), "OFFERS_PROPERTY_CODE" => array( 0 => "", 1 => "", ), "LIST_HEIGHT" => "5", "TEXT_WIDTH" => "20", "NUMBER_WIDTH" => "5", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "CACHE_GROUPS" => "Y", "SAVE_IN_SESSION" => "N", "PRICE_CODE" => array( 0 => "BASE", ) ), false ); |
Далее, выводим свойства на экран и видим, что
каждое свойство имеет следующий набор значений:
Код |
---|
[GROUP] => Array ( [ID] => 165 [TIMESTAMP_X] => 2013-07-11 12:31:41 [IBLOCK_ID] => 7 [NAME] => Категории [ACTIVE] => Y [SORT] => 200 [CODE] => GROUP [DEFAULT_VALUE] => [PROPERTY_TYPE] => L [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => Y [FILTRABLE] => Y [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => 56288 [VALUE] => Видео [DESCRIPTION] => [VALUE_ENUM] => Видео [VALUE_XML_ID] => /672/686 [VALUE_SORT] => 100 [VALUE_ENUM_ID] => 57 [~VALUE] => Видео [~DESCRIPTION] => [~NAME] => Категории [~DEFAULT_VALUE] => ) |
Исходя из документации, мне нужно использовать свойство FILTRABLE
Цитата |
---|
FILTRABLE Выводить поля для фильтрации по данному свойству на странице списка элементов в административном разделе. |
Захожу сюда: Рабочий стол - Контент - Инфоблоки - Типы инфоблоков - Каталоги
Перехожу в редактирование свойств инфоблока.
Ставлю галочки:
Выводить на странице списка элементов поле для фильтрации по этому свойству:
Показывать в умном фильтре:
Теперь получаю список свойств и выясняется, что у некоторых свойств [FILTRABLE] => Y, а у новых свойств [FILTRABLE] => N.
Т. е. получается, что эти галочки ни на что не влияют? Зачем тогда они нужны?
Либо они записывают какие-то другие значения для свойства? Но какие тогда?
Я не наблюдаю больше других подходящих значений для свойств в указанном выше списке.
Если это поле [FILTRABLE] не подходит, то как тогда еще вывести нужные мне свойства?