• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ui/entityselector/userprovider.php
  • Класс: BitrixSocialnetworkIntegrationUIEntitySelectorUserProvider
  • Вызов: UserProvider::getAllowedFields
static function getAllowedFields(): array
{
	static $fields = null;

	if ($fields !== null)
	{
		return $fields;
	}

	$fields = [
		'lastName' => 'LAST_NAME',
		'name' => 'NAME',
		'secondName' => 'SECOND_NAME',
		'login' => 'LOGIN',
		'email' => 'EMAIL',
		'title' => 'TITLE',
		'position', 'WORK_POSITION',
		'lastLogin' => 'LAST_LOGIN',
		'dateRegister' => 'DATE_REGISTER',
		'lastActivityDate' => 'LAST_ACTIVITY_DATE',
		'online' => 'IS_ONLINE',
		'profession' => 'PERSONAL_PROFESSION',
		'www' => 'PERSONAL_WWW',
		'birthday' => 'PERSONAL_BIRTHDAY',
		'icq' => 'PERSONAL_ICQ',
		'phone' => 'PERSONAL_PHONE',
		'fax' => 'PERSONAL_FAX',
		'mobile' => 'PERSONAL_MOBILE',
		'pager' => 'PERSONAL_PAGER',
		'street' => 'PERSONAL_STREET',
		'city' => 'PERSONAL_CITY',
		'state' => 'PERSONAL_STATE',
		'zip' => 'PERSONAL_ZIP',
		'mailbox' => 'PERSONAL_MAILBOX',
		'country' => 'PERSONAL_COUNTRY',
		'timeZoneOffset' => 'TIME_ZONE_OFFSET',
		'company' => 'WORK_COMPANY',
		'workPhone' => 'WORK_PHONE',
		'workDepartment' => 'WORK_DEPARTMENT',
		'workPosition' => 'WORK_POSITION',
		'workCity' => 'WORK_CITY',
		'workCountry' => 'WORK_COUNTRY',
		'workStreet' => 'WORK_STREET',
		'workState' => 'WORK_STATE',
		'workZip' => 'WORK_ZIP',
		'workMailbox' => 'WORK_MAILBOX',
	];

	foreach ($fields as $id => $dbName)
	{
		if (mb_strpos($dbName, 'PERSONAL_') === 0)
		{
			$fields['personal' . ucfirst($id)] = $dbName;
		}

		$fields[$dbName] = $dbName;
	}

	$intranetInstalled = ModuleManager::isModuleInstalled('intranet');
	if ($intranetInstalled)
	{
		$userFields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields('USER');
		$allowedUserFields = [
			'ufPhoneInner' => 'UF_PHONE_INNER',
			'ufDistrict' => 'UF_DISTRICT',
			'ufSkype' => 'UF_SKYPE',
			'ufSkypeLink' => 'UF_SKYPE_LINK',
			'ufZoom' => 'UF_ZOOM',
			'ufTwitter' => 'UF_TWITTER',
			'ufFacebook' => 'UF_FACEBOOK',
			'ufLinkedin' => 'UF_LINKEDIN',
			'ufXing' => 'UF_XING',
			'ufWebSites' => 'UF_WEB_SITES',
			'ufSkills' => 'UF_SKILLS',
			'ufInterests' => 'UF_INTERESTS',
			'ufEmploymentDate' => 'UF_EMPLOYMENT_DATE',
		];

		foreach ($allowedUserFields as $id => $dbName)
		{
			if (array_key_exists($dbName, $userFields))
			{
				$fields[$id] = $dbName;
				$fields[$dbName] = $dbName;
			}
		}
	}

	return $fields;
}