- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/propertyindex/indexer.php
- Класс: BitrixIblockPropertyIndexIndexer
- Вызов: Indexer::indexElement
public function indexElement($elementId)
{
$element = new Element($this->iblockId, $elementId);
$element->loadFromDatabase();
$elementSections = $element->getSections();
$elementIndexValues = $this->getSectionIndexEntries($element);
foreach ($element->getParentSections() as $sectionId)
{
foreach ($elementIndexValues as $facetId => $values)
{
foreach ($values as $value)
{
$this->storage->queueIndexEntry(
$sectionId,
$elementId,
$facetId,
$value["VALUE"],
$value["VALUE_NUM"],
in_array($sectionId, $elementSections)
);
}
}
}
foreach ($elementIndexValues as $facetId => $values)
{
foreach ($values as $value)
{
$this->storage->queueIndexEntry(
0,
$elementId,
$facetId,
$value["VALUE"],
$value["VALUE_NUM"],
empty($elementSections)
);
}
}
$this->storage->flushIndexEntries();
}