- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/Display/Field.php
- Класс: Bitrix\Crm\Service\Display\Field
- Вызов: Field::getInstance
static function getInstance(string $type, string $id): Field
{
if ($type === StringField::TYPE)
{
return new StringField($id);
}
// @todo support later if needed
// if ($type === 'status')
// {
// return new StatusField($id);
// }
if ($type === PaymentStatusField::TYPE)
{
return new PaymentStatusField($id);
}
if ($type === DeliveryStatusField::TYPE)
{
return new DeliveryStatusField($id);
}
if ($type === HlBlockField::TYPE)
{
return new HlBlockField($id);
}
if ($type === TextField::TYPE)
{
return new TextField($id);
}
if ($type === DateField::TYPE)
{
return new DateField($id);
}
if ($type === DateTimeField::TYPE)
{
return new DateTimeField($id);
}
if ($type === EnumerationField::TYPE)
{
return new EnumerationField($id);
}
if ($type === EmployeeField::TYPE)
{
return new EmployeeField($id);
}
if ($type === FileField::TYPE)
{
return new FileField($id);
}
if ($type === IblockElementField::TYPE)
{
return new IblockElementField($id);
}
if ($type === IblockSectionField::TYPE)
{
return new IblockSectionField($id);
}
if ($type === UserField::TYPE)
{
return new UserField($id);
}
if ($type === ResourceBookingField::TYPE)
{
return new ResourceBookingField($id);
}
if ($type === MoneyField::TYPE)
{
return new MoneyField($id);
}
if ($type === AddressField::TYPE)
{
return new AddressField($id);
}
if ($type === UrlField::TYPE)
{
return new UrlField($id);
}
if ($type === BooleanField::TYPE)
{
return new BooleanField($id);
}
if (in_array($type, ['number', 'double', 'integer', 'float'], true))
{
return new NumberField($id);
}
if ($type === CrmStatusField::TYPE)
{
return new CrmStatusField($id);
}
if ($type === CrmCurrencyField::TYPE)
{
return new CrmCurrencyField($id);
}
$crmField = static::resolveCrmField($type, $id);
if ($crmField)
{
return $crmField;
}
return new OtherField($id);
}