- Модуль: socialservices
- Путь к файлу: ~/bitrix/modules/socialservices/lib/contact.php
- Класс: BitrixSocialservicesContactTable
- Вызов: ContactTable::onNetworkBroadcast
static function onNetworkBroadcast($data)
{
$contactsList = array();
$possibleContactsList = array();
if(isset($data["contact"]) && is_array($data["contact"]))
{
foreach($data["contact"] as $contact)
{
if(!isset($contactsList[$contact['CONTACT_OWNER']]))
{
$contactsList[$contact['CONTACT_OWNER']] = array();
}
$contactsList[$contact['CONTACT_OWNER']][] = $contact;
}
}
if(isset($data["contact_possible"]) && is_array($data["contact_possible"]))
{
foreach($data["contact_possible"] as $contact)
{
if(!isset($possibleContactsList[$contact['CONTACT_OWNER']]))
{
$possibleContactsList[$contact['CONTACT_OWNER']] = array();
}
$possibleContactsList[$contact['CONTACT_OWNER']][] = $contact;
}
}
$dbRes = UserTable::getList(array(
'filter' => array(
'=EXTERNAL_AUTH_ID' => CSocServBitrix24Net::ID,
'=XML_ID' => array_unique(
array_merge(
array_keys($contactsList),
array_keys($possibleContactsList)
)
),
),
'select' => array('ID', 'USER_ID', 'XML_ID')
));
while($owner = $dbRes->fetch())
{
if(
count($contactsList) > 0
&& count($contactsList[$owner["XML_ID"]]) > 0
)
{
static::processContacts($owner, $contactsList[$owner["XML_ID"]]);
}
if(
count($possibleContactsList) > 0
&& count($possibleContactsList[$owner["XML_ID"]]) > 0
)
{
static::processPossibleContacts($owner, $possibleContactsList[$owner["XML_ID"]]);
}
}
}