- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/helper.php
- Класс: BitrixSocialnetworkItemHelper
- Вызов: Helper::deleteBlogPost
static function deleteBlogPost(array $params = []): bool
{
global $USER;
$postId = (int)$params['POST_ID'];
if ($postId <= 0)
{
throw new ArgumentException('Wrong post ID');
}
if (!Loader::includeModule('blog'))
{
throw new LoaderException(Loc::getMessage('SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'));
}
$currentUserId = (
isset($params['USER_ID'])
&& (int)$params['USER_ID'] > 0
&& Livefeed::isAdmin()
? $params['USER_ID']
: $USER->getId()
);
$siteId = (
is_set($params, 'SITE_ID')
&& !empty($params['SITE_ID'])
? $params['SITE_ID']
: SITE_ID
);
$currentUserPerm = self::getBlogPostPerm([
'USER_ID' => $currentUserId,
'POST_ID' => $postId
]);
if ($currentUserPerm < Permissions::FULL)
{
throw new AccessDeniedException(Loc::getMessage('SOCIALNETWORK_ITEM_HELPER_DELETE_NO_RIGHTS'));
}
CBlogPost::DeleteLog($postId);
BXClearCache(true, ComponentHelper::getBlogPostCacheDir([
'TYPE' => 'posts_popular',
'SITE_ID' => $siteId,
]));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir([
'TYPE' => 'post',
'POST_ID' => $postId,
]));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir([
'TYPE' => 'post_general',
'POST_ID' => $postId,
]));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir([
'TYPE' => 'posts_last_blog',
'SITE_ID' => $siteId,
]));
BXClearCache(true, CComponentEngine::makeComponentPath('bitrix:socialnetwork.blog.blog'));
if (!CBlogPost::delete($postId))
{
throw new SystemException(Loc::getMessage('SOCIALNETWORK_ITEM_HELPER_DELETE_ERROR'));
}
$sonetGroupId = (int)($params['ACTIVITY_SONET_GROUP_ID'] ?? 0);
if ($sonetGroupId > 0)
{
CSocNetGroup::setLastActivity($sonetGroupId);
}
return true;
}