FieldSynchronizer::replaceFieldDependencies

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. FieldSynchronizer
  4. replaceFieldDependencies
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/fieldsynchronizer.php
  • Класс: Bitrix\Crm\WebForm\FieldSynchronizer
  • Вызов: FieldSynchronizer::replaceFieldDependencies
protected function replaceFieldDependencies(&$dependencies, $entityField)
{
	$oldFieldCode = $entityField['OLD_FIELD_CODE'];
	$newFieldCode = $entityField['NEW_FIELD_CODE'];

	if(!$newFieldCode)
	{
		return;
	}

	foreach($dependencies as $dependencyId => $dependency)
	{
		if($dependency['IF_FIELD_CODE'] == $oldFieldCode)
		{
			$dependency['IF_FIELD_CODE'] = $newFieldCode;
			if($dependency['IF_VALUE'] && $entityField['OLD_FIELD']['items'] && $entityField['NEW_FIELD']['items'])
			{
				$itemIdMap = $this->getFieldItemMap(
					$entityField['OLD_FIELD']['items'],
					$entityField['NEW_FIELD']['items']
				);
				if(isset($itemIdMap[$dependency['IF_VALUE']]))
				{
					$dependency['IF_VALUE'] = $itemIdMap[$dependency['IF_VALUE']];
				}
			}
		}

		if($dependency['DO_FIELD_CODE'] == $oldFieldCode)
		{
			$dependency['DO_FIELD_CODE'] = $newFieldCode;
		}

		$dependencies[$dependencyId] = $dependency;
	}
}

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