RequisiteField::getPresetInfo

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. RequisiteField
  4. getPresetInfo
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/volatile/type/requisitefield.php
  • Класс: Bitrix\Crm\Integrity\Volatile\Type\RequisiteField
  • Вызов: RequisiteField::getPresetInfo
protected function getPresetInfo(int $presetId): array
{
	static $presetInfoMap = [];

	$defaultPresetInfo = [
		'countryId' => 0,
		'fieldMap' => [],
	];

	if ($presetId <= 0)
	{
		return $defaultPresetInfo;
	}

	if (!isset($presetInfoMap[$presetId]))
	{
		$presetInfo = $defaultPresetInfo;

		$preset = EntityPreset::getSingleInstance();
		$res = $preset->getList(
			[
				'order' => ['SORT' => 'ASC'],
				'filter' => ['=ID' => $presetId],
				'select' => ['COUNTRY_ID', 'SETTINGS'],
			]
		);
		while ($row = $res->fetch())
		{
			$countryId = (int)$row['COUNTRY_ID'];
			if ($countryId > 0 && is_array($row['SETTINGS']))
			{
				$presetInfo['countryId'] = $countryId;

				foreach ($preset->settingsGetFields($row['SETTINGS']) as $fieldInfo)
				{
					if (
						isset($fieldInfo['FIELD_NAME'])
						&& is_string($fieldInfo['FIELD_NAME'])
						&& $fieldInfo['FIELD_NAME'] !== ''
					)
					{
						$presetInfo['fieldMap'][$fieldInfo['FIELD_NAME']] = true;
					}
				}
			}
		}

		$presetInfoMap[$presetId] = $presetInfo;
	}

	return $presetInfoMap[$presetId];
}

Добавить комментарий