• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/businessvalue.php
  • Класс: BitrixSaleHelpersAdminBusinessValueControl
  • Вызов: BusinessValueControl::renderMapping
static function renderMapping(array $mappings, $inputNamePrefix, array $providerInput, array $providerValueInput, array $commonProviderInput = null, array $commonProviderValueInput = null)
{
	foreach ($mappings as &$m)
		$m = self::correctMapping($providerInput, $providerValueInput, $m);
	unset($m);

	$mappings['EXACT'] ??= [];
	$mappings['COMMON'] ??= [];
	$mappings['DEFAULT'] ??= [];

	if ($m = ($mappings['EXACT'] ?: $mappings['COMMON'] ?: $mappings['DEFAULT']))
	{
		$providerKey   = $m['PROVIDER_KEY'  ];
		$providerValue = $m['PROVIDER_VALUE'];
		$valueInput    = $providerValueInput[$providerKey];
	}
	else
	{
		$providerKey   = is_array($providerInput['OPTIONS']) ? key($providerInput['OPTIONS']) : null;
		$providerValue = null;
		$valueInput    = $providerValueInput[$providerKey] ?? array('TYPE' => 'STRING', 'HIDDEN' => true);
	}

	if ($providerKey == 'INPUT')
	{
		switch ($valueInput['TYPE'])
		{
			case 'ENUM':

				$valueInput['OPTIONS'] =  is_array($valueInput['OPTIONS'])
					? array('' => '') + $valueInput['OPTIONS']
					: array('' => '');

				break;

			case 'FILE':

				if ($providerValue)
					$providerValue = InputFile::loadInfoSingle($providerValue);

				$valueInput['CLASS'] = 'adm-designed-file';

				break;

			case 'DATABASE_FILE':
				$valueInput['CLASS'] = 'adm-designed-file';

				break;
		}
	}
	else
	{
		if ($commonProviderInput
			&& $commonProviderValueInput
			&& ! $mappings['EXACT']
			&& ! $mappings['COMMON']
			&& $mappings['DEFAULT']
			&& $mappings['DEFAULT'] == self::correctMapping($commonProviderInput, $commonProviderValueInput, $mappings['DEFAULT']))
		{
			$mappings['COMMON'] = $mappings['DEFAULT'];
		}
	}

//		if (! $mappings['COMMON'] && is_array($code['DEFAULT']))
//		{
//			if ($personTypeId) // TODO
//				$defaultMapping = $code['DEFAULT'];
//			elseif (! $mapping)
//				$mapping = $code['DEFAULT'];
//		}

	if (! $mappings['EXACT'] && $mappings['COMMON'])
		$providerInput['DISABLED'] = $valueInput['DISABLED'] = true;

	// !!! Do not change DOM !!!
	?>