VkontakteFieldsMapper::prepareFormFillResult

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. VkontakteFieldsMapper
  4. prepareFormFillResult
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/integration/vkontaktefieldsmapper.php
  • Класс: Bitrix\Crm\WebForm\Options\Integration\VkontakteFieldsMapper
  • Вызов: VkontakteFieldsMapper::prepareFormFillResult
public function prepareFormFillResult(array $incomeValues): array
{
	$formFieldsWithResult = $this->form->getFieldsMap();

	foreach ($formFieldsWithResult as $key => $field)
	{
		$crmName = $field['name'];
		$incomeFieldKey = $this->mappings[$crmName]['ADS_FIELD_KEY'];
		if (!$incomeFieldKey || !$values = $incomeValues[$incomeFieldKey])
		{
			$field["values"] = [];
			$formFieldsWithResult[$key] = $field;

			continue;
		}

		if (!empty($this->mappings[$crmName]["items"]))
		{
			$values = is_array($values)? current($values) : $values;
			$values = is_string($values)? explode(', ',$values) : $values;
		}

		$values = is_array($values)? $values : [$values];

		if (!empty($items = $this->mappings[$crmName]['items']))
		{
			foreach ($values as $optionKey => $optionValue)
			{
				if (!$item = $items[$optionValue])
				{
					continue;
				}

				$values[$optionKey] = $item;
			}
		}

		$field["values"] = $field["multiple"]? array_values($values) : [implode(', ',$values)];
		$formFieldsWithResult[$key] = $field;
	}

	return $formFieldsWithResult;
}

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