• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/column/elementpropertyprovider.php
  • Класс: BitrixIblockGridColumnElementPropertyProvider
  • Вызов: ElementPropertyProvider::loadProperties
protected function loadProperties(): void
{
	$this->properties = [];
	$iblockId = $this->getIblockId();
	if ($iblockId === null)
	{
		return;
	}

	$iterator = PropertyTable::getList([
		'select' => [
			'*',
		],
		'filter' => [
			'=IBLOCK_ID' => $iblockId,
			'=ACTIVE' => 'Y',
		],
		'order' => [
			'SORT' => 'ASC',
			'NAME' => 'ASC',
			'ID' => 'ASC',
		],
		'cache' => [
			'ttl' => 86400,
		],
	]);
	while ($row = $iterator->fetch())
	{
		$row['ID'] = (int)$row['ID'];
		$row['SORT'] = (int)$row['SORT'];
		$row['IBLOCK_ID'] = (int)$row['IBLOCK_ID'];
		if ($row['USER_TYPE'] !== null)
		{
			$row['USER_TYPE'] = trim($row['USER_TYPE']);
			if ($row['USER_TYPE'] === '')
			{
				$row['USER_TYPE'] = null;
			}
		}
		$row['USER_TYPE_DESCRIPTION'] = ($row['USER_TYPE'] ? CIBlockProperty::GetUserType($row['USER_TYPE']) : []);
		if (!is_array($row['USER_TYPE_SETTINGS_LIST']))
		{
			$row['USER_TYPE_SETTINGS_LIST'] = [];
		}
		$row['USER_TYPE_SETTINGS'] = $row['USER_TYPE_SETTINGS_LIST'];
		unset($row['USER_TYPE_SETTINGS_LIST']);

		$this->properties[$row['ID']] = $row;
	}
	unset($row, $iterator);
}