На странице справа выводится форма для фильтрации элементов каталога по свойствам.
Фильтрация производится при помощи компонента catalog.filter
Мне нужно сделать так , чтобы можно было добавлять произвольные свойства в админке,
которые бы потом отображались в данном фильтре.
Для получения набора свойств для компонента catalog.filter я использую следующий код:
Далее, выводим свойства на экран и видим, что
каждое свойство имеет следующий набор значений:
Исходя из документации, мне нужно использовать свойство FILTRABLE
Захожу сюда: Рабочий стол - Контент - Инфоблоки - Типы инфоблоков - Каталоги
Перехожу в редактирование свойств инфоблока.
Ставлю галочки:
Выводить на странице списка элементов поле для фильтрации по этому свойству:
Показывать в умном фильтре:
Теперь получаю список свойств и выясняется, что у некоторых свойств [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] не подходит, то как тогда еще вывести нужные мне свойства?