Поддержка серверов

ComponentHelper::setBlogPostLimitedViewStatus: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=461692

<?php 
//    /bitrix/modules/socialnetwork/lib/componenthelper.phpComponentHelper::setBlogPostLimitedViewStatus()
//    3532:

    
public 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'])
            && 
intval($params['postId']) > 0
                
intval($params['postId'])
                : 
0
        
);

        if (
            
$postId <= 0
            
|| !Loader::includeModule('blog')
        )
        {
            return 
$result;
        }

        if (
$show)
        {
            
$liveFeedEntity Livefeed\Provider::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$socnetPermstruefalse);
            
LogTable::update($logId, array(
                
'LOG_UPDATE' => new SqlExpression(Application::getConnection()->getSqlHelper()->getCurrentDateTimeFunction()),
                
'TRANSFORM' => 'N'
            
));

            if (\
Bitrix\Main\Loader::includeModule('crm'))
            {
                
$logItem Log::getById($logId);
                \
CCrmLiveFeedComponent::processCrmBlogPostRights($logId$logItem->getFields(), $postFields'new');
            }

            \
Bitrix\Blog\Integration\Socialnetwork\CounterPost::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(
                
Option::get('socialnetwork''userblogpost_page''/company/personal/user/#user_id#/blog/#post_id#/'$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,
            );

            
preg_match_all("/\[user\s*=\s*([^\]]*)\](.+?)\[\/user\]/ies".BX_UTF_PCRE_MODIFIER$postFields["DETAIL_TEXT"], $matches);
            if (!empty(
$matches))
            {
                
$notificationParamsList["mentionList"] = $matches[1];
            }

            
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(trueself::getBlogPostCacheDir(array(
                
'TYPE' => 'post',
                
'POST_ID' => $postId
            
)));
        }

        
$result true;

        return 
$result;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение