• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/commentaux/createentity.php
  • Класс: BitrixSocialnetworkCommentAuxCreateEntity
  • Вызов: CreateEntity::getEntity
protected function getEntity($checkPermissions = true)
{
	static $cache = [
		'Y' => [],
		'N' => [],
	];

	$params = $this->params;
	$entityType = $params['entityType'] ?? null;
	$entityId = (int) ($params['entityId'] ?? null);

	$result = false;
	$permissionCacheKey = ($checkPermissions ? 'Y' : 'N');
	$entityKey = $entityType . '_' . $entityId;

	if (isset($cache[$permissionCacheKey][$entityKey]))
	{
		$result = $cache[$permissionCacheKey][$entityKey];
	}
	else
	{
		$entity = false;

		switch ($entityType)
		{
			case static::ENTITY_TYPE_TASK:
				$provider = new BitrixSocialnetworkLivefeedTasksTask();
				break;
			case static::ENTITY_TYPE_BLOG_POST:
				$provider = new BitrixSocialnetworkLivefeedBlogPost();
				break;
			case static::ENTITY_TYPE_CALENDAR_EVENT:
				$provider = new BitrixSocialnetworkLivefeedCalendarEvent();
				break;
			default:
				$provider = false;
		}

		if ($provider)
		{
			$provider->setEntityId($entityId);
			$provider->setOption('checkAccess', $checkPermissions);

			$entity = [
				'title' => $provider->getSourceTitle(),
				'url' => $provider->getLiveFeedUrl(),
			];
		}

		if ($entity)
		{
			$result = $cache[$permissionCacheKey][$entityKey] = $entity;
		}
		elseif(!$checkPermissions)
		{
			$result = $cache[$permissionCacheKey][$entityKey] = false;
		}
	}

	return $result;
}