Фильр и сортировка

Чтобы использовать мультиязычный фильтр или сортировку в Хайлоад Блоках, необходимо указывать все поля из таблицы переводов через префикс "TR".

Фильтр

Например, если мы хотим фильтровать по названию, то следует указывать поле в формате "TR.UF_NAME".

Пример использования фильтра по переведенному названию
Code Copy code Code copied!
1
2
3
4
5
6
7
8
9
10
11
12
\Bitrix\Main\Loader::IncludeModule("modulemarket.translator");
$entity = \Modulemarket\Translator\Highloadblock\HighloadBlockTable::compileEntity('6');
$entityDataClass = $entity->getDataClass();

// Установим фильтр по полю переводв
$rsPropEnums = $entityDataClass::getList([
    "filter" => ["TR.UF_NAME" => "China"],
]);

while ($arEnum = $rsPropEnums->fetchAll()) {
    echo '<pre>' . print_r($arEnum, 1) . '</pre>';
}
Выбрать только имеющие перевод

Code Copy code Code copied!
1
2
3
$rsPropEnums = $entityDataClass::getList([
    "filter" => ["!TR.UF_NAME" => false],
]);

Сортировка

Добавим сортировку по переведенному полю по убыванию
Code Copy code Code copied!
1
2
3
4
$rsPropEnums = $entityDataClass::getList([
    "filter" => ["!TR.UF_NAME" => false],
    "order" => ["TR.UF_NAME" => "desc"],
]);

Количество показов: 97
Дата изменения: 24.06.2024 07:51:33