• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/helper/servicecomment.php
  • Класс: BitrixSocialnetworkHelperServiceComment
  • Вызов: ServiceComment::getEntityData
static function getEntityData(array $params = [])
{
	global $USER;

	static $cache = [];

	$result = false;

	$entityType = ($params['entityType'] ?? false);
	$entityId = (int)($params['entityId'] ?? 0);

	if (
		!$entityType
		|| $entityId <= 0
	)
	{
		return $result;
	}

	$cacheKey = $entityType . '_' . $entityId;

	if (isset($cache[$cacheKey]))
	{
		return $cache[$cacheKey];
	}

	switch ($entityType)
	{
		case CommentAuxCreateEntity::ENTITY_TYPE_TASK:
			if (
				Loader::includeModule('tasks')
				&& ($task = BitrixTasksManagerTask::get($USER->getId(), $entityId))
			)
			{
				$result = $task['DATA'];
			}
			break;
		case CommentAuxCreateEntity::ENTITY_TYPE_BLOG_POST:

			$provider = new LivefeedBlogPost();
			$provider->setOption('checkAccess', true);
			$provider->setEntityId($entityId);
			$provider->initSourceFields();

			$post = $provider->getSourceFields();
			if (!empty($post))
			{
				$post['URL'] = $provider->getLiveFeedUrl();
				$result = $post;
			}
			break;
		case CommentAuxCreateEntity::ENTITY_TYPE_CALENDAR_EVENT:
			if (Loader::includeModule('calendar'))
			{
				$res = CCalendarEvent::getList(
					[
						'arFilter' => [
							'ID' => $entityId,
						],
						'parseRecursion' => false,
						'fetchAttendees' => false,
						'checkPermissions' => true,
						'setDefaultLimit' => false
					]
				);

				if (is_array($res) && is_array($res[0]))
				{
					$result = $res[0];
				}
			}
			break;
		default:
	}

	$cache[$cacheKey] = $result;

	return $result;
}