• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/commentaux/createentity.php
  • Класс: BitrixSocialnetworkCommentAuxCreateEntity
  • Вызов: CreateEntity::getParamsFromFields
public function getParamsFromFields($fields = []): array
{
	$params = [];

	if (!empty($fields['SHARE_DEST']))
	{
		$params = $this->getSocNetData($fields['SHARE_DEST']);
	}
	elseif (
		isset($fields['RATING_TYPE_ID'], $fields['SOURCE_ID'])
		&& (int)$fields['SOURCE_ID'] > 0
		&& in_array($fields['RATING_TYPE_ID'], ['FORUM_POST', 'CRM_ENTITY_COMMENT' ])
		&& Loader::includeModule('forum')
	)
	{
		$messageId = (int)$fields['SOURCE_ID'];

		$forumPostLivefeedProvider = new BitrixSocialnetworkLivefeedForumPost();
		$commentData = $forumPostLivefeedProvider->getAuxCommentCachedData($messageId);

		$serviceData = $this->getForumServiceData($commentData);

		if (
			!empty($commentData)
			&& !empty($serviceData)
			&& isset($commentData['SERVICE_TYPE'])
			&& $commentData['SERVICE_TYPE'] === $this->getForumType()
		)
		{
			try
			{
				$messageParams = Json::decode($serviceData);
			}
			catch (ArgumentException $e)
			{
				$messageParams = [];
			}

			$params = $messageParams;
		}
		else
		{
			$res = MessageTable::getList([
				'filter' => [
					'=ID' => (int)$fields['SOURCE_ID']
				],
				'select' => $this->getForumMessageFields(),
			]);

			if ($forumMessageFields = $res->fetch())
			{
				$serviceData = $this->getForumServiceData($forumMessageFields);
				if (!empty($serviceData))
				{
					try
					{
						$messageParams = Json::decode($serviceData);
					}
					catch (ArgumentException $e)
					{
						$messageParams = [];
					}

					$params = $messageParams;
				}
			}
		}
	}

	return $params;
}