- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/product/systemfield/type/highloadblock.php
- Класс: Bitrix\Catalog\Product\SystemField\Type\HighloadBlock
- Вызов: HighloadBlock::getIdByXmlId
static function getIdByXmlId(int $hlblockId, array $xmlIds): array
{
$result = [];
$xmlIds = array_filter($xmlIds); // '0' - not valid code
if (empty($xmlIds))
{
return $result;
}
$hlblock = Highload\HighloadBlockTable::resolveHighloadblock($hlblockId);
if ($hlblock === null)
{
return $result;
}
$entity = Highload\HighloadBlockTable::compileEntity($hlblock);
$fieldsList = $entity->getFields();
if (isset($fieldsList['ID']) && isset($fieldsList['UF_XML_ID']))
{
$entityDataClass = $entity->getDataClass();
$iterator = $entityDataClass::getList([
'select' => [
'ID',
'UF_XML_ID',
],
'filter' => [
'@UF_XML_ID' => $xmlIds,
],
]);
while ($value = $iterator->fetch())
{
$result[$value['UF_XML_ID']] = (int)$value['ID'];
}
unset($value, $iterator);
unset($entityDataClass);
}
unset($fieldsList, $entity);
return $result;
}