%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_search_input/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_search_input/search.php |
<?Define("STOP_STATISTICS", true); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if ( CModule::IncludeModule("socialnetwork") && !IsModuleInstalled("b24network") ) { if ($GLOBALS["USER"]->IsAuthorized()) { $bIntranet = IsModuleInstalled('intranet'); if (!Function_Exists("__UnEscapeTmp")) { function __UnEscapeTmp(&$item, $key) { if (Is_Array($item)) Array_Walk($item, '__UnEscapeTmp'); else { if (StrPos($item, "%u") !== false) $item = $GLOBALS["APPLICATION"]->UnJSEscape($item); } } } Array_Walk($_REQUEST, '__UnEscapeTmp'); $arParams = array(); $params = Explode(",", $_REQUEST["params"]); foreach ($params as $param) { list($key, $val) = Explode(":", $param); $arParams[$key] = $val; } $arParams["pe"] = IntVal($arParams["pe"]); if ($arParams["pe"] <= 0 || $arParams["pe"] > 50) $arParams["pe"] = 10; $arParams["gf"] = IntVal($arParams["gf"]); $signer = new \Bitrix\Main\Security\Sign\Signer; try { $nt = $signer->unsign($arParams["nt"]); $arParams["NAME_TEMPLATE"] = str_replace( array("#EMAIL#", "#LOGIN#", "#NOBR#", "#/NOBR#", "#COMMA#"), array(" ", " ", " ", " ", ","), trim($nt) ); } catch (\Bitrix\Main\Security\Sign\BadSignatureException $e) { $arParams["NAME_TEMPLATE"] = str_replace("#COMMA#",",", CSite::GetNameFormat(false)); } $arParams['NAME_TEMPLATE'] .= ($bIntranet ? ' <#EMAIL#>' : ''); $arParams['NAME_TEMPLATE'] .= " [#ID#]"; try { $sl = $signer->unsign($arParams["sl"]); $bUseLogin = (trim($sl) != "N"); } catch (\Bitrix\Main\Security\Sign\BadSignatureException $e) { $bUseLogin = false; } if (CModule::IncludeModule('extranet')) { if (CExtranet::IsIntranetUser($arParams["site"])) { $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers($arParams["site"]); $arIntranetUsersID = CExtranet::GetIntranetUsers(); $arUsersToFilter = array_merge($arUsersInMyGroupsID, $arIntranetUsersID); } else { $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers($arParams["site"]); $arPublicUsersID = CExtranet::GetPublicUsers(); $arUsersToFilter = array_merge($arUsersInMyGroupsID, $arPublicUsersID); } } $arResult = array(); $dbUsers = CSocNetUser::SearchUsers($_REQUEST["search"], $arParams["gf"], $arParams["pe"]); if ($dbUsers && ($arUser = $dbUsers->Fetch())) { do { if ( ( is_array($arUsersToFilter) && in_array($arUser["ID"], $arUsersToFilter) ) || !is_array($arUsersToFilter) ) { $arResult[] = array("NAME" => CUser::FormatName($arParams['NAME_TEMPLATE'], $arUser, $bUseLogin)); } } while ($arUser = $dbUsers->Fetch()); } ?><?=CUtil::PhpToJSObject($arResult)?><? require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php"); die(); } } ?>