- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/entityfieldprovider.php
- Класс: Bitrix\Crm\WebForm\EntityFieldProvider
- Вызов: EntityFieldProvider::getFieldsTree
static function getFieldsTree(array $hiddenTypes = [], ?int $presetId = null)
{
$fields = array();
//TODO: do refactoring
$fields['CATALOG'] = array(
'CAPTION' => 'Other',
'FIELDS' => array(
array(
'type' => 'list',
'entity_field_name' => 'PRODUCT',
'entity_name' => '',
'name' => 'PRODUCT',
'caption' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_PRODUCT'),
'multiple' => true,
'required' => true,
)
)
);
$fields[\CCrmOwnerType::ActivityName] = array(
'CAPTION' => \CCrmOwnerType::GetDescription(\CCrmOwnerType::Activity),
'FIELDS' => array(
array(
'type' => 'string',
'entity_field_name' => 'SUBJECT',
'entity_name' => \CCrmOwnerType::ActivityName,
'name' => \CCrmOwnerType::ActivityName . '_SUBJECT',
'caption' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_ACTIVITY_SUBJECT'),
'multiple' => false,
'required' => false,
),
array(
'type' => 'checkbox',
'entity_field_name' => 'COMPLETED',
'entity_name' => \CCrmOwnerType::ActivityName,
'name' => \CCrmOwnerType::ActivityName . '_COMPLETED',
'caption' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_ACTIVITY_COMPLETED'),
'multiple' => false,
'required' => false,
'items' => array(
array('ID' => 'N', 'VALUE' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_NO')),
array('ID' => 'Y', 'VALUE' => Loc::getMessage('CRM_WEBFORM_FIELD_PROVIDER_YES'))
)
)
)
);
$hideVirtual = in_array(self::TYPE_VIRTUAL, $hiddenTypes);
$hideRequisites = in_array(\CCrmOwnerType::Requisite, $hiddenTypes);
$map = Entity::getMap();
foreach($map as $entityName => $entity)
{
$entityTypeId = \CCrmOwnerType::ResolveID($entityName);
if (!empty($entity['HIDDEN']) && !in_array($entityTypeId, $hiddenTypes))
{
continue;
}
$fields[$entityName] = array(
'CAPTION' => \CCrmOwnerType::GetDescription($entityTypeId),
'FIELDS' => self::getFieldsInternal(
$entityName,
$entity,
[
'hideVirtual' => $hideVirtual,
'hideRequisites' => $hideRequisites,
'presetId' => $presetId,
]
)
);
}
return $fields;
}