• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/component/entitydetails/timelinemenubar/item/sharing.php
  • Класс: Bitrix\Crm\Component\EntityDetails\TimelineMenuBar\Item\Sharing
  • Вызов: Sharing::prepareLink
protected function prepareLink(): array
{
	if (!Loader::includeModule('calendar'))
	{
		return [];
	}

	$entityId = $this->getEntityId();

	$broker = Container::getInstance()->getEntityBroker($this->getEntityTypeId());
	if (!$broker)
	{
		return [];
	}

	$deal = $broker->getById($this->getEntityId());
	if (!$deal)
	{
		return [];
	}

	$ownerId = $deal->getAssignedById();

	/** @var CrmDealLink $crmDealLink  */
	$crmDealLink = (new Calendar\Sharing\Link\Factory())->getCrmDealLink($entityId, $ownerId);
	if ($crmDealLink === null)
	{
		$crmDealLink = (new Calendar\Sharing\Link\Factory())->createCrmDealLink($ownerId, $entityId);
	}

	return [
		'hash' => $crmDealLink->getHash(),
		'url' => Calendar\Sharing\Helper::getShortUrl($crmDealLink->getUrl()),
	];
}