• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/livefeed/logentry.php
  • Класс: BitrixSocialnetworkControllerLivefeedLogEntry
  • Вызов: LogEntry::getPinDataAction
public function getPinDataAction(array $params = []): ?array
{
	$logId = (isset($params['logId']) ? (int)$params['logId'] : 0);

	if ($logId <= 0)
	{
		$this->addError(new Error('Empty Log ID.', 'SONET_CONTROLLER_LIVEFEED_LOGENTRY_EMPTY_LOG_ID'));
		return null;
	}

	$res = LogTable::getList([
		'filter' => [
			'=ID' => $logId
		],
		'select' => [ 'ID', 'ENTITY_ID', 'EVENT_ID', 'SOURCE_ID', 'RATING_TYPE_ID', 'RATING_ENTITY_ID' ]
	]);
	if (!($logEntryFields = $res->fetch()))
	{
		$this->addError(new Error('Log entry not found.', 'SONET_CONTROLLER_LIVEFEED_LOGENTRY_NOT_FOUND'));
		return null;
	}

	$contentId = BitrixSocialnetworkLivefeedProvider::getContentId($logEntryFields);
	if (!$contentId)
	{
		$this->addError(new Error('Content entity not found.', 'SONET_CONTROLLER_LIVEFEED_CONTENT_NOT_FOUND'));
		return null;
	}

	if (empty($contentId['ENTITY_TYPE']))
	{
		$this->addError(new Error('Content entity not found.', 'SONET_CONTROLLER_LIVEFEED_CONTENT_NOT_FOUND'));
		return null;
	}

	$postProvider = BitrixSocialnetworkLivefeedProvider::init([
		'ENTITY_TYPE' => $contentId['ENTITY_TYPE'],
		'ENTITY_ID' => $contentId['ENTITY_ID'],
		'LOG_ID' => $logEntryFields['ID']
	]);

	return [
		'TITLE' => htmlspecialcharsEx($postProvider->getPinnedTitle()),
		'DESCRIPTION' => htmlspecialcharsEx($postProvider->getPinnedDescription())
	];
}