• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/propertyindex/querybuilder.php
  • Класс: BitrixIblockPropertyIndexQueryBuilder
  • Вызов: QueryBuilder::getFilterProperty
private function getFilterProperty(): array
{
	//TODO: remove this code to BitrixIblockModelProperty
	if (!isset($this->propertyFilter))
	{
		$this->propertyFilter = array();
		$propertyList = BitrixIblockSectionPropertyTable::getList(array(
			"select" => array("PROPERTY_ID", "PROPERTY.PROPERTY_TYPE", "PROPERTY.USER_TYPE"),
			"filter" => array(
				"=IBLOCK_ID" => array($this->facet->getIblockId(), $this->facet->getSkuIblockId()),
				"=SMART_FILTER" => "Y",
			),
		));
		while ($link = $propertyList->fetch())
		{
			if ($link["IBLOCK_SECTION_PROPERTY_PROPERTY_PROPERTY_TYPE"] === "N")
				$this->propertyFilter[$link["PROPERTY_ID"]] = Storage::NUMERIC;
			elseif ($link["IBLOCK_SECTION_PROPERTY_PROPERTY_USER_TYPE"] === "DateTime")
				$this->propertyFilter[$link["PROPERTY_ID"]] = Storage::DATETIME;
			elseif ($link["IBLOCK_SECTION_PROPERTY_PROPERTY_PROPERTY_TYPE"] === "S")
				$this->propertyFilter[$link["PROPERTY_ID"]] = Storage::STRING;
			else
				$this->propertyFilter[$link["PROPERTY_ID"]] = Storage::DICTIONARY;
		}
	}
	return $this->propertyFilter;
}