- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/user.php
- Класс: BitrixMainUserTable
- Вызов: UserTable::indexRecord
static function indexRecord($id)
{
$id = intval($id);
if($id == 0)
{
return false;
}
$intranetInstalled = ModuleManager::isModuleInstalled('intranet');
$select = [
'ID',
'NAME',
'SECOND_NAME',
'LAST_NAME',
'WORK_POSITION',
'PERSONAL_PROFESSION',
'PERSONAL_WWW',
'LOGIN',
'EMAIL',
'PERSONAL_MOBILE',
'PERSONAL_PHONE',
'PERSONAL_CITY',
'PERSONAL_STREET',
'PERSONAL_STATE',
'PERSONAL_COUNTRY',
'PERSONAL_ZIP',
'PERSONAL_MAILBOX',
'WORK_CITY',
'WORK_STREET',
'WORK_STATE',
'WORK_ZIP',
'WORK_COUNTRY',
'WORK_MAILBOX',
'WORK_PHONE',
'WORK_COMPANY'
];
if ($intranetInstalled)
{
$select[] = 'UF_DEPARTMENT';
}
$record = parent::getList(array(
'select' => $select,
'filter' => array('=ID' => $id)
))->fetch();
if(!is_array($record))
{
return false;
}
$record['UF_DEPARTMENT_NAMES'] = array();
if ($intranetInstalled)
{
$departmentNames = UserUtils::getDepartmentNames($record['UF_DEPARTMENT']);
foreach ($departmentNames as $departmentName)
{
$record['UF_DEPARTMENT_NAMES'][] = $departmentName['NAME'];
}
}
$departmentName = $record['UF_DEPARTMENT_NAMES'][0] ?? '';
$searchDepartmentContent = implode(' ', $record['UF_DEPARTMENT_NAMES']);
UserIndexTable::merge(array(
'USER_ID' => $id,
'NAME' => (string)$record['NAME'],
'SECOND_NAME' => (string)$record['SECOND_NAME'],
'LAST_NAME' => (string)$record['LAST_NAME'],
'WORK_POSITION' => (string)$record['WORK_POSITION'],
'UF_DEPARTMENT_NAME' => (string)$departmentName,
'SEARCH_USER_CONTENT' => self::generateSearchUserContent($record),
'SEARCH_ADMIN_CONTENT' => self::generateSearchAdminContent($record),
'SEARCH_DEPARTMENT_CONTENT' => MapBuilder::create()->addText($searchDepartmentContent)->build()
));
return true;
}