- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bizprocdocument.php
- Класс: BitrixDiskBizProcDocument
- Вызов: BizProcDocument::getDocumentFieldTypes
static function getDocumentFieldTypes($documentType)
{
global $USER_FIELD_MANAGER;
$storageId = self::getStorageIdByType($documentType);
if(!$storageId)
{
throw new CBPArgumentNullException('documentType');
}
$result = array(
"string" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_STRING"), "BaseType" => "string"),
"text" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_TEXT"), "BaseType" => "text"),
"int" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_INT"), "BaseType" => "int"),
"double" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_DOUBLE"), "BaseType" => "double"),
"select" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_SELECT"), "BaseType" => "select", "Complex" => true),
"bool" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_BOOL"), "BaseType" => "bool"),
"date" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_DATA"), "BaseType" => "date"),
"datetime" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_DATETIME"), "BaseType" => "datetime"),
"user" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_USER"), "BaseType" => "user"),
"file" => array("Name" => Loc::getMessage("DISK_DOC_TYPE_FILE"), "BaseType" => "file"),
);
$ignoredUserTypes = array(
'string',
'double',
'boolean',
'crm',
'crm_status',
'integer',
'datetime',
'file',
'enumeration',
'video',
'string_formatted',
'webdav_element_history',
'iblock_element',
'iblock_section',
'hlblock',
'disk_file',
'disk_version',
'date',
'vote',
'url_preview'
);
$types = $USER_FIELD_MANAGER->getUserType();
foreach ($types as $type)
{
if(in_array($type['USER_TYPE_ID'], $ignoredUserTypes))
{
continue;
}
if(empty($type['USER_TYPE_ID']))
{
continue;
}
if($type['BASE_TYPE'] === 'enum')
{
$type['BASE_TYPE'] = 'select';
}
if($type['USER_TYPE_ID'] === 'employee')
{
$type['BASE_TYPE'] = 'user';
}
$typeId = static::getPrefixForCustomType().$type['USER_TYPE_ID'];
$result[$typeId] = array(
'Name' => $type['DESCRIPTION'],
'BaseType' => $type['BASE_TYPE'],
);
if ($type['USER_TYPE_ID'] === 'employee')
{
$result[$typeId]['typeClass'] = BitrixBizprocBaseTypeUser::class;
}
}
return $result;
}