Your IP : 18.220.95.15
<?
define("PUBLIC_AJAX_MODE", true);
define("EXTRANET_NO_REDIRECT", true);
define("NO_KEEP_STATISTIC", "Y");
define("NO_AGENT_STATISTIC","Y");
define("NO_AGENT_CHECK", true);
define("DisableEventsCheck", true);
$siteId = (isset($_REQUEST["SITE_ID"]) && is_string($_REQUEST["SITE_ID"])) ? trim($_REQUEST["SITE_ID"]): "";
$siteId = substr(preg_replace("/[^a-z0-9_]/i", "", $siteId), 0, 2);
if (!empty($siteId))
{
define("SITE_ID", $siteId);
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
header('Content-Type: application/x-javascript; charset='.LANG_CHARSET);
if (
!CModule::IncludeModule("socialnetwork")
|| IsModuleInstalled("b24network")
)
{
echo CUtil::PhpToJsObject(Array('ERROR' => 'MODULE_NOT_INSTALLED'));
die();
}
if (check_bitrix_sessid())
{
if (
isset($_POST["nt"])
&& !empty($_POST["nt"])
)
{
preg_match_all("/(#NAME#)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)|\\s|\\,/", urldecode($_REQUEST["nt"]), $matches);
$nameTemplate = implode("", $matches[0]);
}
else
{
$nameTemplate = CSite::GetNameFormat(false);
}
if (isset($_POST['LD_SEARCH']) && $_POST['LD_SEARCH'] == 'Y')
{
CUtil::decodeURIComponent($_POST);
$search = $_POST['SEARCH'];
$searchConverted = (!empty($_POST['SEARCH_CONVERTED']) ? $_POST['SEARCH_CONVERTED'] : false);
$searchResults = array();
if (
isset($_POST['ADDITIONAL_SEARCH'])
&& $_POST['ADDITIONAL_SEARCH'] == 'Y'
)
{
$searchResults["USERS"] = array();
if (
isset($_POST['NETWORK_SEARCH'])
&& $_POST['NETWORK_SEARCH'] == 'Y'
&& \Bitrix\Main\Loader::includeModule('socialservices')
)
{
$network = new \Bitrix\Socialservices\Network();
if ($network->isEnabled())
{
$result = $network->searchUser($search);
if ($result)
{
foreach ($result as $user)
{
$user = \CSocNetLogDestination::formatNetworkUser($user, array(
"NAME_TEMPLATE" => $nameTemplate,
));
$searchResults["USERS"][$user['id']] = $user;
}
$userList = \Bitrix\Main\UserTable::getList(array(
"select" => array("ID", "XML_ID"),
"filter" => array(
"=EXTERNAL_AUTH_ID" => "replica",
"=XML_ID" => array_keys($searchResults["USERS"]),
),
));
while ($user = $userList->fetch())
{
unset($searchResults["USERS"][$user["XML_ID"]]);
}
}
}
}
echo CUtil::PhpToJsObject($searchResults);
return;
}
if (
!isset($_POST['USER_SEARCH'])
|| $_POST['USER_SEARCH'] != 'N'
)
{
$searchResults['USERS'] = CSocNetLogDestination::SearchUsers(
array(
"SEARCH" => $search,
"NAME_TEMPLATE" => $nameTemplate,
"SELF" => (!isset($_POST['SELF']) || $_POST['SELF'] != 'N'),
"EMPLOYEES_ONLY" => (isset($_POST['EXTRANET_SEARCH']) && $_POST['EXTRANET_SEARCH'] == "I"),
"EXTRANET_ONLY" => (isset($_POST['EXTRANET_SEARCH']) && $_POST['EXTRANET_SEARCH'] == "E"),
"DEPARTAMENT_ID" => (
isset($_POST['DEPARTMENT_ID'])
&& intval($_POST['DEPARTMENT_ID']) > 0
? intval($_POST['DEPARTMENT_ID'])
: false
),
"EMAIL_USERS" => (isset($_POST['EMAIL_USERS']) && $_POST['EMAIL_USERS'] == 'Y'),
"CRMEMAIL_USERS" => (isset($_POST['CRMEMAIL']) && $_POST['CRMEMAIL'] == 'Y'),
"NETWORK_SEARCH" => (isset($_POST['NETWORK_SEARCH']) && $_POST['NETWORK_SEARCH'] == 'Y'),
),
$searchModified
);
if (!empty($searchModified))
{
$searchResults['SEARCH'] = $searchModified;
}
if (
empty($searchResults['USERS'])
&& $searchConverted
&& $search != $searchConverted
)
{
$searchResults['USERS'] = CSocNetLogDestination::searchUsers(
array(
"SEARCH" => $searchConverted,
"NAME_TEMPLATE" => $nameTemplate,
"SELF" => (!isset($_POST['SELF']) || $_POST['SELF'] != 'N'),
"EMPLOYEES_ONLY" => (isset($_POST['EXTRANET_SEARCH']) && $_POST['EXTRANET_SEARCH'] == "I"),
"EXTRANET_ONLY" => (isset($_POST['EXTRANET_SEARCH']) && $_POST['EXTRANET_SEARCH'] == "E"),
"DEPARTAMENT_ID" => (
isset($_POST['DEPARTMENT_ID'])
&& intval($_POST['DEPARTMENT_ID']) > 0
? intval($_POST['DEPARTMENT_ID'])
: false
),
"EMAIL_USERS" => (isset($_POST['EMAIL_USERS']) && $_POST['EMAIL_USERS'] == 'Y'),
"CRMEMAIL_USERS" => (isset($_POST['CRMEMAIL']) && $_POST['CRMEMAIL'] == 'Y')
)
);
$searchResults['SEARCH'] = $searchConverted;
}
}
if (
isset($_POST['SEARCH_SONET_GROUPS'])
&& $_POST['SEARCH_SONET_GROUPS'] == 'Y'
&& method_exists('CSocNetLogDestination', 'searchSonetGroups')
)
{
$searchResults['SONET_GROUPS'] = CSocNetLogDestination::searchSonetGroups(array(
"SEARCH" => $search,
"FEATURES" => (isset($_POST['SEARCH_SONET_FEATUES']) && is_array($_POST['SEARCH_SONET_FEATUES']) ? $_POST['SEARCH_SONET_FEATUES'] : false)
));
}
if (
isset($_POST['CRMEMAIL'])
&& $_POST['CRMEMAIL'] == 'Y'
)
{
$searchResults['CRM_EMAILS'] = CSocNetLogDestination::SearchCrmEntities(array(
"SEARCH" => $search,
"NAME_TEMPLATE" => $nameTemplate
));
foreach($searchResults['USERS'] as $key => $arValue)
{
if (array_key_exists($arValue["crmEntity"], $searchResults['CRM_EMAILS']))
{
unset($searchResults['CRM_EMAILS'][$arValue["crmEntity"]]);
}
}
$arUsersTmp = $arCrmUsersTmp = array();
foreach($searchResults['USERS'] as $key => $ar)
{
if (!empty($ar['crmEntity']))
{
$arCrmUsersTmp[$key] = $ar;
}
else
{
$arUsersTmp[$key] = $ar;
}
}
foreach($searchResults['CRM_EMAILS'] as $key => $ar)
{
if (!empty($ar['crmEntity']))
{
$arCrmUsersTmp[$key] = $ar;
}
else
{
$arUsersTmp[$key] = $ar;
}
}
$searchResults['USERS'] = $arUsersTmp;
$searchResults['CRM_EMAILS'] = $arCrmUsersTmp;
}
elseif (
isset($_POST['CRMCONTACTEMAIL'])
&& $_POST['CRMCONTACTEMAIL'] == 'Y'
)
{
$searchResults['CRM_EMAILS'] = CSocNetLogDestination::SearchCrmEntities(array(
"SEARCH" => $search,
"NAME_TEMPLATE" => $nameTemplate,
"ENTITIES" => array("CONTACT"),
"SEARCH_BY_EMAIL_ONLY" => "Y"
));
foreach($searchResults['USERS'] as $key => $arValue)
{
if (array_key_exists($arValue["crmEntity"], $searchResults['CRM_EMAILS']))
{
unset($searchResults['CRM_EMAILS'][$arValue["crmEntity"]]);
}
}
$arUsersTmp = $arCrmUsersTmp = array();
foreach($searchResults['USERS'] as $key => $ar)
{
if (!empty($ar['crmEntity']))
{
$arCrmUsersTmp[$key] = $ar;
}
else
{
$arUsersTmp[$key] = $ar;
}
}
foreach($searchResults['CRM_EMAILS'] as $key => $ar)
{
if (!empty($ar['crmEntity']))
{
$arCrmUsersTmp[$key] = $ar;
}
else
{
$arUsersTmp[$key] = $ar;
}
}
$searchResults['USERS'] = $arUsersTmp;
$searchResults['CRM_EMAILS'] = $arCrmUsersTmp;
}
if (
isset($_POST['CRM_SEARCH'])
&& $_POST['CRM_SEARCH'] == 'Y'
&& CModule::IncludeModule('crm')
)
{
$siteNameFormat = CSite::GetNameFormat(false);
$arCrmAllowedTypes = array();
if (
isset($_POST['CRM_SEARCH_TYPES'])
&& is_array($_POST['CRM_SEARCH_TYPES'])
&& !empty($_POST['CRM_SEARCH_TYPES'])
)
{
$arCrmAllowedTypes = $_POST['CRM_SEARCH_TYPES'];
}
$arContacts = $arCompanies = $arLeads = $arDeals = array();
if (
empty($arCrmAllowedTypes)
|| in_array("CRMCONTACT", $arCrmAllowedTypes)
)
{
$dbContacts = CCrmContact::GetListEx(
$arOrder = array(),
$arFilter = array('%FULL_NAME' => $search),
$arGroupBy = false,
$arNavStartParams = array('nTopCount' => 20),
$arSelectFields = array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'COMPANY_TITLE', 'PHOTO')
);
while ($dbContacts && ($arContact = $dbContacts->fetch()))
{
$arContacts['CRMCONTACT'.$arContact['ID']] = array(
'id' => 'CRMCONTACT'.$arContact['ID'],
'entityType' => 'contacts',
'entityId' => $arContact['ID'],
'name' => htmlspecialcharsbx(CUser::FormatName(
$siteNameFormat,
array(
'LOGIN' => '',
'NAME' => $arContact['NAME'],
'SECOND_NAME' => $arContact['SECOND_NAME'],
'LAST_NAME' => $arContact['LAST_NAME']
),
false, false
)),
'desc' => htmlspecialcharsbx($arContact['COMPANY_TITLE'])
);
if (!empty($arContact['PHOTO']) && intval($arContact['PHOTO']) > 0)
{
$arImg = CFile::ResizeImageGet($arContact['PHOTO'], array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_EXACT);
$arContacts['CRMCONTACT'.$arContact['ID']]['avatar'] = $arImg['src'];
}
}
}
if (
empty($arCrmAllowedTypes)
|| in_array("CRMCOMPANY", $arCrmAllowedTypes)
)
{
$arCompanyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE');
$arCompanyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY');
$dbCompanies = CCrmCompany::GetListEx(
$arOrder = array(),
$arFilter = array('%TITLE' => $search),
$arGroupBy = false,
$arNavStartParams = array('nTopCount' => 20),
$arSelectFields = array('ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO')
);
while ($dbCompanies && ($arCompany = $dbCompanies->fetch()))
{
$arDesc = Array();
if (isset($arCompanyTypeList[$arCompany['COMPANY_TYPE']]))
$arDesc[] = $arCompanyTypeList[$arCompany['COMPANY_TYPE']];
if (isset($arCompanyIndustryList[$arCompany['INDUSTRY']]))
$arDesc[] = $arCompanyIndustryList[$arCompany['INDUSTRY']];
$arCompanies['CRMCOMPANY'.$arCompany['ID']] = array(
'id' => 'CRMCOMPANY'.$arCompany['ID'],
'entityId' => $arCompany['ID'],
'entityType' => 'companies',
'name' => htmlspecialcharsbx(str_replace(array(';', ','), ' ', $arCompany['TITLE'])),
'desc' => htmlspecialcharsbx(implode(', ', $arDesc))
);
if (!empty($arCompany['LOGO']) && intval($arCompany['LOGO']) > 0)
{
$arImg = CFile::ResizeImageGet($arCompany['LOGO'], array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_EXACT);
$arCompanies['CRMCOMPANY'.$arCompany['ID']]['avatar'] = $arImg['src'];
}
}
}
if (
empty($arCrmAllowedTypes)
|| in_array("CRMLEAD", $arCrmAllowedTypes)
)
{
$dbLeads = CCrmLead::GetListEx(
$arOrder = array(),
$arFilter = array('LOGIC' => 'OR', '%FULL_NAME' => $search, '%TITLE' => $search),
$arGroupBy = false,
$arNavStartParams = array('nTopCount' => 20),
$arSelectFields = array('ID', 'TITLE', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'STATUS_ID')
);
while ($dbLeads && ($arLead = $dbLeads->fetch()))
{
$arLeads['CRMLEAD'.$arLead['ID']] = array(
'id' => 'CRMLEAD'.$arLead['ID'],
'entityId' => $arLead['ID'],
'entityType' => 'leads',
'name' => htmlspecialcharsbx($arLead['TITLE']),
'desc' => htmlspecialcharsbx(CUser::FormatName(
$siteNameFormat,
array(
'LOGIN' => '',
'NAME' => $arLead['NAME'],
'SECOND_NAME' => $arLead['SECOND_NAME'],
'LAST_NAME' => $arLead['LAST_NAME']
),
false, false
))
);
}
}
if (
empty($arCrmAllowedTypes)
|| in_array("CRMDEAL", $arCrmAllowedTypes)
)
{
$dbDeals = CCrmDeal::GetListEx(
$arOrder = array(),
$arFilter = array('%TITLE' => $search),
$arGroupBy = false,
$arNavStartParams = array('nTopCount' => 20),
$arSelectFields = array('ID', 'TITLE', 'COMPANY_TITLE', 'CONTACT_NAME', 'CONTACT_SECOND_NAME', 'CONTACT_LAST_NAME')
);
while ($dbDeals && ($arDeal = $dbDeals->fetch()))
{
$arDesc = array();
if ($arDeal['COMPANY_TITLE'] != '')
$arDesc[] = $arDeal['COMPANY_TITLE'];
$arDesc[] = CUser::FormatName(
$siteNameFormat,
array(
'LOGIN' => '',
'NAME' => $arDeal['CONTACT_NAME'],
'SECOND_NAME' => $arDeal['CONTACT_SECOND_NAME'],
'LAST_NAME' => $arDeal['CONTACT_LAST_NAME']
),
false, false
);
$arDeals['CRMDEAL'.$arDeal['ID']] = array(
'id' => 'CRMDEAL'.$arDeal['ID'],
'entityId' => $arDeal['ID'],
'entityType' => 'deals',
'name' => htmlspecialcharsbx($arDeal['TITLE']),
'desc' => htmlspecialcharsbx(implode(', ', $arDesc))
);
}
}
$searchResults['CONTACTS'] = $arContacts;
$searchResults['COMPANIES'] = $arCompanies;
$searchResults['LEADS'] = $arLeads;
$searchResults['DEALS'] = $arDeals;
}
echo CUtil::PhpToJsObject($searchResults);
}
elseif ($_POST['LD_DEPARTMENT_RELATION'] == 'Y')
{
echo CUtil::PhpToJsObject(Array(
'USERS' => CSocNetLogDestination::GetUsers(Array('deportament_id' => $_POST['DEPARTMENT_ID'], "NAME_TEMPLATE" => $nameTemplate)),
));
}
elseif ($_POST['LD_ALL'] == 'Y')
{
echo CUtil::PhpToJsObject(Array(
'USERS' => CSocNetLogDestination::GetUsers(Array('all' => 'Y', "NAME_TEMPLATE" => $nameTemplate)),
));
}
else
{
echo CUtil::PhpToJsObject(Array('ERROR' => 'UNKNOWN_ERROR'));
}
}
else
{
echo CUtil::PhpToJsObject(Array('ERROR' => 'SESSION_ERROR'));
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>