- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_usertype.php
- Класс: \CCrmUserType
- Вызов: CCrmUserType::AddRestServiceFields
public function AddRestServiceFields(&$arFields)
{
$arUserFields = $this->GetAbstractFields();
foreach($arUserFields as $FIELD_NAME => $arUserField)
{
$defVal = '';
if ($arUserField['USER_TYPE']['USER_TYPE_ID'] == 'employee')
continue;
if ($arUserField['USER_TYPE']['BASE_TYPE'] == 'enum')
{
$sType = 'enum';
if (is_callable(array($arUserField['USER_TYPE']['CLASS_NAME'], 'GetList')))
{
$rsEnum = call_user_func_array(array($arUserField['USER_TYPE']['CLASS_NAME'], 'GetList'), array($arUserField));
$arValues = array();
while($ar = $rsEnum->GetNext())
{
$arValues[] = array('ID' => $ar['ID'], 'NAME' => $ar['VALUE']);
}
}
}
else if ($arUserField['USER_TYPE']['BASE_TYPE'] == 'file')
$sType = 'file';
else if ($arUserField['USER_TYPE']['USER_TYPE_ID'] == 'boolean')
$sType = 'boolean';
else if ($arUserField['USER_TYPE']['USER_TYPE_ID'] == 'double' || $arUserField['USER_TYPE']['USER_TYPE_ID'] == 'integer')
$sType = 'int';
else if ($arUserField['USER_TYPE']['BASE_TYPE'] == 'datetime')
{
$defVal = $arUserField['SETTINGS']['DEFAULT_VALUE']['VALUE'];
$sType = 'datetime';
}
else if ($arUserField['USER_TYPE']['USER_TYPE_ID'] == 'string')
$sType = 'string';
else
$sType = 'string';
if (empty($defVal) && isset($arUserField['SETTINGS']['DEFAULT_VALUE']) && !is_array($arUserField['SETTINGS']['DEFAULT_VALUE']))
$defVal = $arUserField['SETTINGS']['DEFAULT_VALUE'];
$arField = array('ID' => $FIELD_NAME, 'NAME' => $arUserField['EDIT_FORM_LABEL'], 'TYPE' => $sType, 'DEFAULT' => $defVal, 'REQUIRED' => $arUserField['MANDATORY'] == 'Y', 'MULTIPLE' => $arUserField['MULTIPLE'] == 'Y');
if ($arUserField['USER_TYPE']['BASE_TYPE'] == 'enum' && is_array($arValues) && count($arValues) > 0)
{
$arField['VALUES'] = $arValues;
}
$arFields[] = $arField;
}
}