Новинки каталога или bitrix:catalog.top + фильтр по свойству

Нам нужно создать свойство инфоблока чтобы мы могли отмечать товар как новинку. Переходим к настройкам нужного инфоблока «Контент -> Инфоблоки -> Типы инфоблоков -> Название нашего инфоблока» и переходим на вкладку свойства. Указываем название, тип — Список и указываем уникальный символьный код.

Свойства инфоблокаПереходим к детальному редактированию Свойства (жмем кнопку детальное редактрование свойства) и указываем Внешний вид — Флажки, XML_ID — YES, значение — да.
настройки свойства инфоблока
Редактирование товара битрикс
Теперь открываем нужную нас страницу (в нашем случае это главная) в режиме редактирования как HTML и размещаем компонент «Top элементов каталога». Дважды кликаем по иконке и настраиваем параметры компонента: выбираем нужный тип и сам инфоблок, задаем количество элементов которые нужно извлекать и порядок сортировки — все стандартно.
Редактирование страницы в режиме HTML
Потом переходим в режим редактирования исходного кода и перед кодом вызова компонента вставляем следующий код:
1
2
3
4
5
6
7
<?
GLOBAL $arrFilterTop;
$elementID = 2;
$arrFilterTop = array(
'PROPERTY_3' => $elementID,
);
?>
А в массив вызова компонента bitrix:catalog.top добавляем элемент:
1
"FILTER_NAME" => "arrFilterTop",
Код фильтра для топа элементовГде $elementID это идентификатор нужного нам значения из списка значений свойства инфоблока, цифра 3 после знака подчеркивания в строке PROPERTY_3 — это идентификатор свойства элемента инфоблока. Довольно запутанно?! Смотрите картинку ниже
как-вывести-топ-элементов-используя-фильтр
Кстати фильтр может быть составным. Например указать ID конкретного инфоблока или указать несколько свойств.

Более простой вариант вывода элементов отмеченных флажком.

В нашем примере свойство типа список может принимать только одно значение, т.е. работает как флажок. Тут фильтр можно упростить. Что бы вывести все отмеченные элементы:
1
2
3
4
5
6
<?
GLOBAL $arrFilterTop;
$arrFilterTop = array(
'!PROPERTY_3' => false,
);
?>
Ну и если нужно вывести элементы с не отмеченным флажком свойства, то:
1
2
3
4
5
6
<?
GLOBAL $arrFilterTop;
$arrFilterTop = array(
'PROPERTY_3' => false,
);
?>
Внимание!!! Парсер битрикса вырезает строку «FILTER_NAME» => «arrFilterTop», поэтому если вы изменили настройки компонента через визуальный редактор то, скорее всего, вам нужно будет вернуть строку выше в код вызова компонента на странице.

Комментариев нет :

Отправить комментарий

Поиск по этому блогу