• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/lib/userlink.php
  • Класс: BitrixSocialservicesUserLinkTable
  • Вызов: UserLinkTable::compareUserLinks
static function compareUserLinks($userId, $socservUserId, $links)
{
	$dbRes = static::getList(array(
		'filter' => array(
			//'USER_ID' => $userId, // link USER_ID doesn't update with socserv_user
			'=SOCSERV_USER_ID' => $socservUserId,
		),
		'select' => array('ID', 'LINK_UID')
	));

	$currentList = array();
	while($linkInfo = $dbRes->fetch())
	{
		$currentList[$linkInfo['LINK_UID']] = $linkInfo['ID'];
	}

	foreach($links as $key => $link)
	{
		if(array_key_exists($link['uid'], $currentList))
		{
			unset($currentList[$link['uid']]);
			unset($links[$key]);
		}
	}

	foreach($currentList as $linkId)
	{
		static::delete($linkId);
	}

	foreach($links as $link)
	{
		static::add(array(
			'USER_ID' => $userId,
			'SOCSERV_USER_ID' => $socservUserId,
			'LINK_USER_ID' => null, // !!!!!!
			'LINK_UID' => $link['uid'],
			'LINK_NAME' => $link['first_name'],
			'LINK_LAST_NAME' => $link['last_name'],
			'LINK_PICTURE' => $link['picture'],
		));
	}
}