• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/sitebutton/guest.php
  • Класс: Bitrix\Crm\SiteButton\Guest
  • Вызов: Guest::bindEntities
static function bindEntities($gid, array $entities = array())
{
	$guest = self::getByGuestId($gid, true);
	if (!$guest)
	{
		return null;
	}

	$existedEntities = array();
	foreach ($guest['ENTITIES'] as $entity)
	{
		if (!isset($existedEntities[$entity['ENTITY_TYPE_ID']]))
		{
			$existedEntities[$entity['ENTITY_TYPE_ID']] = array();
		}

		$existedEntities[$entity['ENTITY_TYPE_ID']][] = $entity['ENTITY_ID'];
	}

	$entitiesForAdd = array();
	foreach ($entities as $entity)
	{
		if (!isset($existedEntities[$entity['ENTITY_TYPE_ID']]))
		{
			$entitiesForAdd[] = $entity;
			continue;
		}

		if (in_array($entity['ENTITY_ID'], $existedEntities[$entity['ENTITY_TYPE_ID']]))
		{
			continue;
		}

		$entitiesForAdd[] = $entity;
	}

	return self::bindEntitiesById($guest['ID'], $entitiesForAdd);
}