Как можно отсортировать данные на основе связанного информационного блока?

Как я могу установить фильтр на компоненте bitrix:news.list для отображения списка концертов, связанных с определенным исполнителем, при просмотре его детальной страницы? Я попытался установить "FILTER_NAME" на "arFilter" и использовать переменную $arFilter = ["CONCERT_ARTIST" => $arResult['VARIABLES']['ELEMENT_ID']], но "CONCERT_ARTIST" - это имя свойства связанного инфоблока. Каков правильный способ сделать это?
  • 1 декабря 2023 г. 5:29
Ответы на вопрос 2
Чтобы отфильтровать данные на основе связанного инфоблока, вам понадобится использовать тип свойства "Привязка к элементам" (Элементов инфоблоков). 

Значение свойства, которое вы указываете в arFilter, должно быть ID элемента, к которому вы хотите привязаться. В вашем случае CONCERT_ARTIST - это имя свойства, и вам нужно вместо этого использовать связанный элемент (ID элемента).

Попробуйте следующие шаги:

1. Сначала вам нужно получить связанный ID элемента исполнителя на детальной странице исполнителя.

2. Потом вы создаете arFilter, который будет проверять свойство "CONCERT_ARTIST" в 'bitrix:news.list' на совпадение с полученным элементом исполнителя.

3.ы можете использовать "PROPERTY_" в сочетании с Своим Свойством, чтобы фильтровать по связанными элементами. В вашем случае, вы должны использовать 'PROPERTY_CONCERT_ARTIST'.

Пример фильтрации:

```php
$arFilter = Array(
    "PROPERTY_CONCERT_ARTIST" => $arResult['VARIABLES']['ELEMENT_ID'],
);
```

В компоненте bitrix:news.list:

```php
"FILTER_NAME" => "arFilter"
```

Это позволит вам отобразить только те концерты, которые связаны с определенным исполнителем.
Ваш вопрос уже решён. В своём первоначальном вопросе я уже говорил, что вам нужно установить название фильтра в компоненте как "FILTER_NAME" => "arFilter". А сам фильтр должен быть установлен следующим образом: $GLOBALS['arFilter'] = ["PROPERTY_CONCERT_ARTIST" => $arResult['VARIABLES']['ELEMENT_ID']]; где $arResult['VARIABLES']['ELEMENT_ID'] - это идентификатор артиста. 
Похожие вопросы