- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::setBlogPostLimitedViewStatus
static function setBlogPostLimitedViewStatus($params = array())
{
static $extranetSiteId = null;
$result = false;
$show = (
is_array($params)
&& isset($params['show'])
&& $params['show'] === true
);
$postId = (
is_array($params)
&& !empty($params['postId'])
&& (int)$params['postId'] > 0
? (int)$params['postId']
: 0
);
if (
$postId <= 0
|| !Loader::includeModule('blog')
)
{
return $result;
}
if ($show)
{
$liveFeedEntity = LivefeedProvider::init(array(
'ENTITY_TYPE' => 'BLOG_POST',
'ENTITY_ID' => $postId,
));
$logId = $liveFeedEntity->getLogId();
if (!self::getBlogPostLimitedViewStatus(array(
'logId' => $logId
)))
{
return $result;
}
$post = Post::getById($postId);
$postFields = $post->getFields();
$socnetPerms = self::getBlogPostSocNetPerms(array(
'postId' => $postId,
'authorId' => $postFields["AUTHOR_ID"]
));
CSocNetLogRights::deleteByLogID($logId);
CSocNetLogRights::add($logId, $socnetPerms, true, false);
LogTable::update($logId, array(
'LOG_UPDATE' => new SqlExpression(Application::getConnection()->getSqlHelper()->getCurrentDateTimeFunction()),
'TRANSFORM' => 'N'
));
if (BitrixMainLoader::includeModule('crm'))
{
$logItem = Log::getById($logId);
CCrmLiveFeedComponent::processCrmBlogPostRights($logId, $logItem->getFields(), $postFields, 'new');
}
BitrixBlogIntegrationSocialnetworkCounterPost::increment(array(
'socnetPerms' => $socnetPerms,
'logId' => $logId,
'logEventId' => $liveFeedEntity->getEventId()
));
$logSiteIdList = array();
$resSite = CSocNetLog::getSite($logId);
while($logSite = $resSite->fetch())
{
$logSiteIdList[] = $logSite["LID"];
}
if (
$extranetSiteId === null
&& Loader::includeModule('extranet')
)
{
$extranetSiteId = CExtranet::getExtranetSiteID();
}
$siteId = false;
foreach($logSiteIdList as $logSiteId)
{
if ($logSiteId != $extranetSiteId)
{
$siteId = $logSiteId;
break;
}
}
if (!$siteId)
{
$siteId = CSite::getDefSite();
}
$postUrl = CComponentEngine::makePathFromTemplate(
BitrixSocialnetworkHelperPath::get('userblogpost_page', $siteId),
array(
"post_id" => $postId,
"user_id" => $postFields["AUTHOR_ID"]
)
);
$notificationParamsList = array(
'post' => array(
'ID' => $postFields["ID"],
'TITLE' => $postFields["TITLE"],
'AUTHOR_ID' => $postFields["AUTHOR_ID"]
),
'siteId' => $siteId,
'postUrl' => $postUrl,
'socnetRights' => $socnetPerms,
);
$notificationParamsList['mentionList'] = Mention::getUserIds($postFields['DETAIL_TEXT']);
self::notifyBlogPostCreated($notificationParamsList);
if (
!isset($params['notifyAuthor'])
|| $params['notifyAuthor']
)
{
self::notifyAuthorOnSetBlogPostLimitedViewStatusShow(array(
'POST_ID' => $postId,
'POST_FIELDS' => $postFields,
'POST_URL' => $postUrl,
'LOG_ID' => $logId,
'SITE_ID' => $siteId
));
}
BXClearCache(true, self::getBlogPostCacheDir(array(
'TYPE' => 'post',
'POST_ID' => $postId
)));
}
$result = true;
return $result;
}