Как извлечь ссылки и данные из умного фильтра в CMS Битрикс?

Как я могу получить список всех брендов и типов, которые есть в умном фильтре на странице Битрикса? Мне нужно собрать эту информацию в объект или массив, чтобы создать анкоры для брендов и типов в целях SEO. В частности, мне нужны все бренды, которые есть в базе данных, продукты, к которым они относятся, а также ссылки на бренды, так как в чекбоксах они отсутствуют. Также интересуют все типы продуктов и соответствующие им ссылки на типы.
  • 7 мая 2024 г. 13:50
Ответы на вопрос 3
Для извлечения ссылок и данных из умного фильтра в CMS Битрикс можно воспользоваться следующими шагами:

1. Получить доступ к данным умного фильтра через объект $APPLICATION и метод GetCurPageParam() для текущей страницы.

Пример кода:


```php
global $APPLICATION;

$filterParams = $APPLICATION->GetCurPageParam();

// Используйте $filterParams для получения данных умного фильтра
```

2. Для получения списка всех брендов и типов продуктов можно сделать запрос к базе данных и извлечь соответствующие данные.

Пример кода:


```php
$brands = array();
$types = array();

// Получение списка брендов
$resBrands = CIBlockElement::GetList([], ['IBLOCK_ID' => $iblockId, 'PROPERTY_BRAND' => array_keys($brands)]);
while ($brand = $resBrands->GetNext()) {
    $brands[$brand['PROPERTY_BRAND_VALUE']] = $brand['NAME'];
}

// Получение списка типов продуктов
$resTypes = CIBlockElement::GetList([], ['IBLOCK_ID' => $iblockId, 'PROPERTY_TYPE' => array_keys($types)]);
while ($type = $resTypes->GetNext()) {
    $types[$type['PROPERTY_TYPE_VALUE']] = $type['NAME'];
}
```

3. Создать массив или объект с данными брендов и типов продуктов, а также их соответствующими ссылками.

Пример кода:


```php
$linkBrands = array();
$linkTypes = array();

foreach ($brands as $brandId => $brandName) {
    $linkBrands[] = '<a href="/catalog/?brand=' . $brandId . '">' . $brandName . '</a>';
}

foreach ($types as $typeId => $typeName) {
    $linkTypes[] = '<a href="/catalog/?type=' . $typeId . '">' . $typeName . '</a>';
}

// Используйте $linkBrands и $linkTypes для создания анкоров для брендов и типов продуктов
```

Таким образом, вы можете извлечь ссылки и данные из умного фильтра в CMS Битрикс и использовать их для создания анкоров для брендов и типов продуктов в целях SEO.
1. для того чтобы не плакать - пройди курс битрикс контент менеджер. чтобы познакомится с тем как работает БУС. 
2. Бренды - это скорее всего у вас свойство элемента каталога. Т.е направление поиска ответа на вопрос- как получить свойство элемента
Касательно ссылок ( Вы же говорите про фильтр в режиме ЧПУ и вот эти '-is-'  ?) - ха-ха, полмесяца и лезть в такое болото.. Если коротко, то в Битриксе не нашлось ни одного достаточно умного человека, чтобы сделать этот функционал в виде утилиты. Посмотрите в код модуля https://marketplace.1c-bitrix.ru/solutions/sotbit.... , они воспроизводили этот механизм ( надеюсь, в демо-версии нужная часть не обфусцирована). 
Возможно, этот модуль закроет Вашу задачу целиком.
Похожие вопросы