- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/entityfieldprovider.php
- Класс: Bitrix\Crm\WebForm\EntityFieldProvider
- Вызов: EntityFieldProvider::prepareFields
static function prepareFields(&$fieldsInfo)
{
$result = array();
foreach($fieldsInfo as $fieldID => &$fieldInfo)
{
if(!self::isFieldAllowed($fieldID, $fieldInfo))
{
unset($fieldsInfo[$fieldID]);
continue;
}
$attributes = isset($fieldInfo['ATTRIBUTES']) ? $fieldInfo['ATTRIBUTES'] : array();
$fieldType = $fieldInfo['TYPE'];
$field = array(
'type' => $fieldType,
'isRequired' => in_array(\CCrmFieldInfoAttr::Required, $attributes, true),
'isImmutable' => in_array(\CCrmFieldInfoAttr::Immutable, $attributes, true),
'isMultiple' => in_array(\CCrmFieldInfoAttr::Multiple, $attributes, true),
'isDynamic' => in_array(\CCrmFieldInfoAttr::Dynamic, $attributes, true)
);
$field['settings'] = isset($fieldInfo['SETTINGS']) ? $fieldInfo['SETTINGS'] : array();
if($fieldType === 'enumeration')
{
$field['items'] = isset($fieldInfo['ITEMS']) ? $fieldInfo['ITEMS'] : array();
}
elseif($fieldType === 'crm_status')
{
$field['statusType'] = isset($fieldInfo['CRM_STATUS_TYPE']) ? $fieldInfo['CRM_STATUS_TYPE'] : '';
}
elseif ($fieldType === 'product_property')
{
$field['propertyType'] = isset($fieldInfo['PROPERTY_TYPE']) ? $fieldInfo['PROPERTY_TYPE'] : '';
$field['userType'] = isset($fieldInfo['USER_TYPE']) ? $fieldInfo['USER_TYPE'] : '';
$field['title'] = isset($fieldInfo['NAME']) ? $fieldInfo['NAME'] : '';
if ($field['propertyType'] === 'L')
$field['values'] = isset($fieldInfo['VALUES']) ? $fieldInfo['VALUES'] : array();
}
if(isset($fieldInfo['LABELS']) && is_array($fieldInfo['LABELS']))
{
$labels = $fieldInfo['LABELS'];
if(isset($labels['LIST']))
{
$field['listLabel'] = $labels['LIST'];
}
if(isset($labels['FORM']))
{
$field['formLabel'] = $labels['FORM'];
}
if(isset($labels['FILTER']))
{
$field['filterLabel'] = $labels['FILTER'];
}
}
$result[$fieldID] = &$field;
unset($field);
}
unset($fieldInfo);
return $result;
}