• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ads/form/fieldmapper.php
  • Класс: Bitrix\Crm\Ads\Form\FieldMapper
  • Вызов: FieldMapper::toAdsForm
static function toAdsForm(Form $form)
{
	$fields = $form->getFieldsMap();

	$result = [];
	foreach ($fields as $field)
	{
		if(FieldTable::isUiFieldType($field['type']))
		{
			continue;
		}

		$item = self::getMapTypeItem($field['type']);
		$type = $item ? $item['SEO_TYPE'] : LeadAds\Field::TYPE_INPUT;
		$name = !empty($item['CRM_NAME']) ? $item['CRM_NAME'] : $field['entity_field_name'];

		if ($type === LeadAds\Field::TYPE_CHECKBOX && empty($field['items']))
		{
			$type = LeadAds\Field::TYPE_RADIO;
			$field['items'] = [
				['value' => 'N', 'title' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_NO')],
				['value' => 'Y', 'title' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_YES')],
			];
		}

		$adsField = new LeadAds\Field($type, $name, $field['caption'], $field['name']);

		if (isset($field['items']) && is_array($field['items']))
		{
			foreach ($field['items'] as $fieldItem)
			{
				if (!$fieldItem['title'] || !$fieldItem['value'])
				{
					continue;
				}

				$adsField->addOption($fieldItem['value'], $fieldItem['title']);
			}
		}

		$result[] = $adsField;
	}

	return $result;
}