- Модуль: 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'
];
}