• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/base.php
  • Класс: BitrixIblockComponentBase
  • Вызов: Base::getSectionIdByElement
protected function getSectionIdByElement($elementId, $elementCode = '', int $iblockId = 0)
{
	$sectionId = 0;
	$elementId = (int)$elementId;
	$elementCode = (string)$elementCode;
	$filter = [];

	if ($iblockId > 0)
	{
		$filter['=IBLOCK_ID'] = $iblockId;
	}
	elseif (!empty($this->arParams['IBLOCK_ID']))
	{
		$filter['=IBLOCK_ID'] = $this->arParams['IBLOCK_ID'];
	}
	if (empty($filter))
	{
		return $sectionId;
	}

	if ($elementId > 0)
	{
		$filter['=ID'] = $elementId;
	}
	elseif ($elementCode !== '')
	{
		$filter['=CODE'] = $elementCode;
	}
	else
	{
		return $sectionId;
	}

	$itemIterator = IblockElementTable::getList(array(
		'select' => array('ID', 'IBLOCK_SECTION_ID'),
		'filter' => $filter
	));
	if ($item = $itemIterator->fetch())
	{
		$sectionId = (int)$item['IBLOCK_SECTION_ID'];
	}

	return $sectionId;
}