- Модуль: 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;
}