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

CCrmLiveFeedComponent::processCrmBlogComment: метод Битрикс

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

//    CCrmLiveFeedComponent::processCrmBlogComment()
//    /bitrix/modules/crm/classes/general/livefeed.php:7440

    public static function processCrmBlogComment($params = array())
    {
        static $blogPostEventIdList = null;

        $blogPostId = (isset($params["POST_ID"]) ? intval($params["POST_ID"]) : 0);
        $blogCommentId = (isset($params["COMMENT_ID"]) ? intval($params["COMMENT_ID"]) : 0);
        $arAuthor = (isset($params["AUTHOR"]) && is_array($params["AUTHOR"]) ? $params["AUTHOR"] : array());
        $arUserId = (isset($params["USER_ID"]) && is_array($params["USER_ID"]) ? $params["USER_ID"] : array());

        if (
            empty($arUserId)
            || empty($arAuthor)
            || $blogPostId <= 0
            || $blogCommentId <= 0
        )
        {
            return false;
        }

        if (Main\Loader::includeModule('socialnetwork'))
        {
            if ($blogPostEventIdList === null)
            {
                $blogPostLivefeedProvider = new \Bitrix\Socialnetwork\Livefeed\BlogPost;
                $blogPostEventIdList = $blogPostLivefeedProvider->getEventId();
            }

            $res = CSocNetLog::GetList(
                array(),
                array(
                    'EVENT_ID' => $blogPostEventIdList,
                    'ENTITY_TYPE' => CCrmLiveFeedEntity::Contact,
                    'SOURCE_ID' => $blogPostId
                ),
                false,
                array(
                    'nTopCount' => 1
                ),
                array('ID', 'ENTITY_TYPE', 'ENTITY_ID')
            );
            if ($log = $res->Fetch())
            {
                $res = CCrmActivity::getList(
                    array(),
                    array(
                        '=PROVIDER_ID' => \Bitrix\Crm\Activity\Provider\Livefeed::PROVIDER_ID,
                        '=PROVIDER_TYPE_ID' => \Bitrix\Crm\Activity\Provider\Livefeed::PROVIDER_TYPE_ID_ENTRY,
                        '=ASSOCIATED_ENTITY_ID' => $log['ID'],
                        'CHECK_PERMISSIONS' => 'N'
                    ),
                    false,
                    false,
                    array('ID', 'COMMUNICATIONS')
                );

                if (
                    ($parentActivity = $res->fetch())
                    && Main\Loader::includeModule('blog')
                    && ($comment = CBlogComment::getByID($blogCommentId))
                )
                {
                    \Bitrix\Crm\Activity\Provider\Livefeed::addActivity(array(
                        "TYPE" => (!empty($arAuthor["EXTERNAL_AUTH_ID"]) && $arAuthor["EXTERNAL_AUTH_ID"] == 'email' ? 'BLOG_COMMENT_IN' : 'BLOG_COMMENT_OUT'),
                        "COMMUNICATIONS" => $parentActivity['COMMUNICATIONS'],
                        "BINDINGS" => \CCrmActivity::getBindings($parentActivity['ID']),
                        "MESSAGE" => $comment['POST_TEXT'],
                        "USER_ID" => $comment['AUTHOR_ID'],
                        "RESPONSIBLE_USER_ID" => $log['USER_ID'],
                        "ENTITY_ID" => $comment["ID"],
                        "PARENT_ID" => $parentActivity['ID']
                    ));

                    CCrmLiveFeed::CounterIncrement(array(
                        "USER_ID" => $comment['USER_ID'],
                        "ENTITY_TYPE" => $log['ENTITY_TYPE'],
                        "ENTITY_ID" => $log['ENTITY_ID'],
                        "LOG_ID" => $log['ID'],
                        "EVENT_ID" => $log['EVENT_ID']
                    ));
                }
            }
        }

        return true;
    }

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

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

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

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

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

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

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

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