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