• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/selector/element.php
  • Класс: BitrixIblockComponentSelectorElement
  • Вызов: Element::getSectionFilterDefinition
protected function getSectionFilterDefinition()
{
	$result = [];

	if ($this->getStorageItem(self::STORAGE_ENTITY_IBLOCK, 'IBLOCK_SECTIONS') == 'Y')
	{
		$list = [];
		$iterator = CIBlockSection::GetList(
			['LEFT_MARGIN' => 'ASC'],
			[
				'IBLOCK_ID' => $this->getStorageItem(self::STORAGE_ENTITY_IBLOCK, 'IBLOCK_ID'),
				'ACTIVE' => 'Y',
				'GLOBAL_ACTIVE' => 'Y',
				'CHECK_PERMISSIONS' => 'Y',
				'MIN_PERMISSION' => 'R'
			],
			false,
			['ID', 'NAME', 'IBLOCK_ID', 'DEPTH_LEVEL', 'LEFT_MARGIN']
		);
		while ($row = $iterator->Fetch())
		{
			$list[$row['ID']] = str_repeat('.', $row['DEPTH_LEVEL'] - 1).$row['NAME'];
		}
		unset($row, $iterator);
		$result = [
			'SECTION_ID' => [
				'id' => 'SECTION_ID',
				'name' => Loc::getMessage('IBLOCK_SELECTOR_ELEMENT_FILTER_FIELD_SECTION_ID'),
				'type' => 'list',
				'items' => $list,
				'operators' => [
					'default' => '='
				],
				'default' => true
			],
			'INCLUDE_SUBSECTIONS' => [
				'id' => 'INCLUDE_SUBSECTIONS',
				'name' => Loc::getMessage('IBLOCK_SELECTOR_ELEMENT_FILTER_FIELD_INCLUDE_SUBSECTIONS'),
				'type' => 'checkbox',
				'operators' => [
					'default' => ''
				],
				'default' => true
			]
		];
		unset($list);
	}

	return $result;
}