- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/form.php
- Класс: Bitrix\Crm\WebForm\Form
- Вызов: Form::getFieldsMap
public function getFieldsMap()
{
$fields = $this->getFieldsDescription();
$dependencyList = $this->getDependencies();
$currencyId = $this->getCurrencyId();
$fieldList = array();
foreach($fields as $field)
{
$preparedField = [
'id' => $field['ID'],
'type' => $field['TYPE'],
'name' => $field['CODE'],
];
if($field['TYPE'] == 'section')
{
$preparedField += array(
'caption' => $field['CAPTION'],
);
}
else
{
$preparedField += array(
'type_original' => $field['TYPE_ORIGINAL'],
'entity_name' => $field['ENTITY_NAME'],
'entity_field_name' => $field['ENTITY_FIELD_NAME'],
'caption' => $field['CAPTION'] ? $field['CAPTION'] : $field['ENTITY_FIELD_CAPTION'],
'required' => $field['REQUIRED'] == 'Y' ? true : false,
'autocomplete' => $field['SETTINGS_DATA']['AUTOCOMPLETE'] == 'Y' ? true : false,
'multiple' => $field['MULTIPLE'] == 'Y' ? true : false,
'multiple_original' => $field['MULTIPLE_ORIGINAL'],
'hidden' => false,
'placeholder' => $field['PLACEHOLDER'],
'value' => $field['VALUE'],
'value_type' => $field['VALUE_TYPE'],
'settings_data' => $field['SETTINGS_DATA']
);
if(isset($field['ITEMS']) && is_array($field['ITEMS']))
{
$preparedField['items'] = array();
foreach($field['ITEMS'] as $item)
{
$price = isset($item['PRICE']) ? $item['PRICE'] : null;
if ($price !== null && !is_numeric($price))
{
$price = 0;
}
$discount = isset($item['DISCOUNT']) ? $item['DISCOUNT'] : null;
if ($discount !== null && !is_numeric($discount))
{
$discount = 0;
}
if (empty($item['ID']))
{
continue;
}
$preparedItem = array(
'title' => $item['VALUE'],
'value' => $item['ID'],
);
if ($price !== null)
{
$preparedItem['price'] = $price;
$preparedItem['changeablePrice'] = isset($item['CUSTOM_PRICE'])
&& $item['CUSTOM_PRICE'] === 'Y'
&& Manager::isOrdersAvailable();
$preparedItem['discount'] = $discount ?: 0;
$preparedItem['price_formatted'] = \CCrmCurrency::MoneyToString($price, $currencyId);
}
$preparedField['items'][] = $preparedItem;
}
}
}
if(isset($dependencyList[$field['CODE']]))
{
$preparedField['dependences'] = $dependencyList[$field['CODE']];
$preparedField['hidden'] = true;
}
$fieldList[] = $preparedField;
}
return $fieldList;
}