- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/propertyindex/element.php
- Класс: BitrixIblockPropertyIndexElement
- Вызов: Element::loadElementProperties
protected function loadElementProperties(int $iblockId, array $elementFilter)
{
if (!isset(self::$filterPropertyID[$iblockId]))
{
self::$filterPropertyID[$iblockId] = [];
$properties = BitrixIblockSectionPropertyTable::getList(array(
"select" => array("PROPERTY_ID"),
"filter" => array(
"=IBLOCK_ID" => array($this->iblockId, $this->skuIblockId),
"=SMART_FILTER" => "Y",
),
));
while ($property = $properties->fetch())
{
self::$filterPropertyID[$iblockId][$property['PROPERTY_ID']] = $property['PROPERTY_ID'];
}
unset($property);
unset($properties);
self::$filterPropertyID[$iblockId] = array_values(self::$filterPropertyID[$iblockId]);
sort(self::$filterPropertyID[$iblockId]);
}
$elementList = CIBlockElement::getPropertyValues(
$iblockId,
$elementFilter,
false,
array('ID' => self::$filterPropertyID[$iblockId])
);
while ($element = $elementList->fetch())
{
foreach ($element as $propertyId => $value)
{
if ($value !== false)
{
if (!isset($this->elementPropertyValues[$propertyId]))
$this->elementPropertyValues[$propertyId] = array();
if (is_array($value))
$this->elementPropertyValues[$propertyId] = array_merge($this->elementPropertyValues[$propertyId], $value);
else
$this->elementPropertyValues[$propertyId][] = $value;
}
}
}
}