• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/livefeed.php
  • Класс: BitrixSocialnetworkControllerLivefeed
  • Вызов: Livefeed::changeFavoritesAction
public function changeFavoritesAction($logId, $value): ?array
{
	global $APPLICATION;

	$result = [
		'success' => false,
		'newValue' => false
	];

	$logId = (int)$logId;
	if ($logId <= 0)
	{
		$this->addError(new Error('No Log Id', 'SONET_CONTROLLER_LIVEFEED_NO_LOG_ID'));
		return null;
	}

	if (!(
		Loader::includeModule('socialnetwork')
		&& ($logFields = CSocNetLog::getById($logId))
	))
	{
		$this->addError(new Error('Cannot get log entry', 'SONET_CONTROLLER_LIVEFEED_EMPTY_LOG_ENTRY'));
		return null;
	}

	$currentUserId = $this->getCurrentUser()->getId();

	if ($res = CSocNetLogFavorites::change($currentUserId, $logId))
	{
		if ($res === 'Y')
		{
			ComponentHelper::userLogSubscribe([
				'logId' => $logId,
				'userId' => $currentUserId,
				'typeList' => [
					'FOLLOW',
					'COUNTER_COMMENT_PUSH',
				],
				'followDate' => $logFields['LOG_UPDATE'],
			]);
		}
		$result['success'] = true;
		$result['newValue'] = $res;
	}
	else
	{
		$this->addError(new Error((($e = $APPLICATION->getException()) ? $e->getString() : 'Cannot change log entry favorite value'), 'SONET_CONTROLLER_LIVEFEED_FAVORITES_CHANGE_ERROR'));
		return null;
	}

	return $result;
}