- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/main/uiselector/users.php
- Класс: BitrixSocialnetworkIntegrationMainUISelectorUsers
- Вызов: Users::search
public function search($params = array())
{
$result = array(
'ITEMS' => array(),
'ADDITIONAL_INFO' => array()
);
$entityOptions = (!empty($params['options']) ? $params['options'] : array());
if (
!empty($entityOptions['allowSearch'])
&& $entityOptions['allowSearch'] === 'N'
)
{
return $result;
}
$requestFields = (!empty($params['requestFields']) ? $params['requestFields'] : []);
$commonOptions = (!empty($requestFields['options']) ? $requestFields['options'] : []);
$search = $requestFields['searchString'];
$searchConverted = (!empty($requestFields['searchStringConverted']) ? $requestFields['searchStringConverted'] : false);
$nameTemplate = self::getNameTemplate($commonOptions['userNameTemplate'] ?? '');
$searchModified = false;
$result["ITEMS"] = CSocNetLogDestination::searchUsers(
array(
"SEARCH" => $search,
"NAME_TEMPLATE" => $nameTemplate,
"SELF" => (!empty($entityOptions['allowSearchSelf']) && $entityOptions['allowSearchSelf'] === 'Y'),
"EMPLOYEES_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "I"),
"EXTRANET_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "E"),
"DEPARTAMENT_ID" => (
!empty($commonOptions['siteDepartmentId'])
&& (int)$commonOptions['siteDepartmentId'] > 0
? (int)$commonOptions['siteDepartmentId']
: false
),
"EMAIL_USERS" => (!empty($entityOptions['allowSearchByEmail']) && $entityOptions['allowSearchByEmail'] === 'Y'),
"CRMEMAIL_USERS" => (!empty($entityOptions['allowSearchCrmEmailUsers']) && $entityOptions['allowSearchCrmEmailUsers'] === 'Y'),
"NETWORK_SEARCH" => false,
"ONLY_WITH_EMAIL" => (isset($entityOptions['onlyWithEmail']) && $entityOptions['onlyWithEmail'] === 'Y' ? 'Y' : ''),
'ALLOW_BOTS' => (isset($entityOptions['allowBots']) && $entityOptions['allowBots'] === 'Y'),
'SHOW_ALL_EXTRANET_CONTACTS' => (isset($entityOptions['showAllExtranetContacts']) && $entityOptions['showAllExtranetContacts'] === 'Y')
),
$searchModified
);
if (!empty($searchModified))
{
$result['SEARCH'] = $searchModified;
}
if (
empty($result["ITEMS"])
&& $searchConverted
&& $search !== $searchConverted
)
{
$result["ITEMS"] = CSocNetLogDestination::searchUsers(
array(
"SEARCH" => $searchConverted,
"NAME_TEMPLATE" => $nameTemplate,
"SELF" => (!empty($entityOptions['allowSearchSelf']) && $entityOptions['allowSearchSelf'] === 'Y'),
"EMPLOYEES_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "I"),
"EXTRANET_ONLY" => (!empty($entityOptions['scope']) && $entityOptions['scope'] === "E"),
"DEPARTAMENT_ID" => (
!empty($commonOptions['siteDepartmentId'])
&& (int)$commonOptions['siteDepartmentId'] > 0
? (int)$commonOptions['siteDepartmentId']
: false
),
"EMAIL_USERS" => (!empty($entityOptions['allowSearchByEmail']) && $entityOptions['allowSearchByEmail'] === 'Y'),
"CRMEMAIL_USERS" => (!empty($entityOptions['allowSearchCrmEmailUsers']) && $entityOptions['allowSearchCrmEmailUsers'] === 'Y'),
"NETWORK_SEARCH" => false,
'ALLOW_BOTS' => (isset($entityOptions['allowBots']) && $entityOptions['allowBots'] === 'Y'),
'SHOW_ALL_EXTRANET_CONTACTS' => (isset($entityOptions['showAllExtranetContacts']) && $entityOptions['showAllExtranetContacts'] === 'Y')
),
$searchModified
);
$result['SEARCH'] = $searchConverted;
}
return $result;
}