• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/livefeed/blogpost/important.php
  • Класс: BitrixSocialnetworkControllerLivefeedBlogPostImportant
  • Вызов: Important::voteAction
public function voteAction(array $params = [])
{
	global $CACHE_MANAGER;

	$currentUserId = $this->getCurrentUser()->getId();
	$postId = (isset($params['POST_ID']) && intval($params['POST_ID']) > 0 ? intval($params['POST_ID']) : 0);

	if ($postId <= 0)
	{
		$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_POST_ID_EMPTY'), 'SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_POST_ID_EMPTY'));
		return null;
	}

	if (
		!$currentUserId
		|| !CSocNetFeatures::isActiveFeature(SONET_ENTITY_USER, $currentUserId, 'blog')
	)
	{
		$this->addError(new Error(Loc::getMessage('SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_NO_READ_PERMS'), 'SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_NO_READ_PERMS'));
		return null;
	}

	if (!Loader::includeModule('blog'))
	{
		$this->addError(new Error('SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_NO_BLOG_MODULE', 'SONET_CONTROLLER_LIVEFEED_BLOGPOST_IMPORTANT_NO_BLOG_MODULE'));
		return null;
	}

	CBlogUserOptions::setOption($postId, 'BLOG_POST_IMPRTNT', 'Y', $currentUserId);

	if (defined('BX_COMP_MANAGED_CACHE'))
	{
		$CACHE_MANAGER->clearByTag('BLOG_POST_IMPRTNT'.$postId);
		$CACHE_MANAGER->clearByTag('BLOG_POST_IMPRTNT'.$postId."_".$currentUserId);
		$CACHE_MANAGER->clearByTag('BLOG_POST_IMPRTNT'."_USER_".$currentUserId);
	}

	$options = [
		[
			'post_id' => $postId,
			'name' => 'BLOG_POST_IMPRTNT',
			'value' => 'Y'
		]
	];

	$res = getModuleEvents('socialnetwork', 'OnAfterCBlogUserOptionsSet');
	while ($eventFields = $res->fetch())
	{
		executeModuleEventEx($eventFields, [ $options, '', '' ]);
	}

	return [
		'success' => 'Y'
	];
}