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

CIdeaManagmentEmailNotify::Send: метод Битрикс

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

//    CIdeaManagmentEmailNotify::Send()
//    /bitrix/modules/idea/classes/general/idea_email_notify.php:116

    public function Send()
    {
        if(!$this->IsAvailable())
            return false;

        $arNotification = $this->Notify->getNotification();

        //No need to send about updates;
        if($arNotification["ACTION"] == "UPDATE")
            return 0;
        $category = ToUpper($arNotification["CATEGORY"]);
        $arEmailSubscribe = array();
        if (!array_key_exists("CATEGORIES", $arNotification))
            $arNotification["CATEGORIES"] = \CIdeaManagment::getInstance()->Idea()->GetCategoryList();
        if (array_key_exists($category, $arNotification["CATEGORIES"]) && \CIdeaManagment::getInstance()->Idea()->GetCategoryListID() > 0)
            $category = $arNotification["CATEGORIES"][$category];
        else
            $category = null;

        if ($arNotification["TYPE"] == "IDEA") // (COMMENT, IDEA)
        {
            $filter = array(
                "LOGIC" => "OR",
                array(
                    "=ENTITY_TYPE" => \Bitrix\Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
                    "=ENTITY_CODE" => '',
                )
            );
            if (!is_null($category))
            {
                $filter[] = array(
                    "=ENTITY_TYPE" => \Bitrix\Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
                    "=ASCENDED_CATEGORIES.IBLOCK_ID" => \CIdeaManagment::getInstance()->Idea()->GetCategoryListID(),
                    "<=ASCENDED_CATEGORIES.DEPTH_LEVEL" => $category["DEPTH_LEVEL"],
                    "<=ASCENDED_CATEGORIES.LEFT_MARGIN" => $category["LEFT_MARGIN"],
                    ">=ASCENDED_CATEGORIES.RIGHT_MARGIN" => $category["RIGHT_MARGIN"]
                );
            }
        }
        else
        {
            $filter = array(
                "LOGIC" => "OR",
                array(
                    "=ENTITY_TYPE" => \Bitrix\Idea\NotifyEmailTable::ENTITY_TYPE_IDEA,
                    "=ENTITY_CODE" => $arNotification["POST_ID"],
                ),
                array(
                    "=SUBSCRIBE_TYPE" => \Bitrix\Idea\NotifyEmailTable::SUBSCRIBE_TYPE_ALL,
                    "=ENTITY_TYPE" => \Bitrix\Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
                    "=ENTITY_CODE" => ''
                )
            );
            if (!is_null($category))
            {
                $filter[] = array(
                    "=SUBSCRIBE_TYPE" => \Bitrix\Idea\NotifyEmailTable::SUBSCRIBE_TYPE_ALL,
                    "=ENTITY_TYPE" => \Bitrix\Idea\NotifyEmailTable::ENTITY_TYPE_CATEGORY,
                    "=ASCENDED_CATEGORIES.IBLOCK_ID" => \CIdeaManagment::getInstance()->Idea()->GetCategoryListID(),
                    "<=ASCENDED_CATEGORIES.DEPTH_LEVEL" => $category["DEPTH_LEVEL"],
                    "<=ASCENDED_CATEGORIES.LEFT_MARGIN" => $category["LEFT_MARGIN"],
                    ">=ASCENDED_CATEGORIES.RIGHT_MARGIN" => $category["RIGHT_MARGIN"]
                );
            }
        }

        $db_res = \Bitrix\Idea\NotifyEmailTable::getList(
            array(
                'filter' => $filter,
                'select' => array("USER_ID", "USER_EMAIL" => "USER.EMAIL")
            )
        );

        if (!is_null($category))
            $arNotification["CATEGORY"] = $category["NAME"];
        unset($arNotification["CATEGORIES"]);
        if (!array_key_exists("IDEA_TITLE", $arNotification))
            $arNotification["IDEA_TITLE"] = $arNotification["TITLE"];

        while($r = $db_res->Fetch())
        {
            if($r["USER_ID"] != $arNotification["AUTHOR_ID"] && !array_key_exists($r["USER_ID"], $arEmailSubscribe) && check_email($r["USER_EMAIL"]))
            {
                $arEmailSubscribe[$r["USER_ID"]] = $r["USER_EMAIL"];

                $arNotification["EMIAL_TO"] = $r["USER_EMAIL"]; //This is for backward compatibility
                $arNotification["EMAIL_TO"] = $r["USER_EMAIL"];
                //ADD_IDEA_COMMENT, ADD_IDEA
                CEvent::Send($arNotification["ACTION"].'_'.$arNotification["TYPE"], SITE_ID, $arNotification);
            }
        }
        return count($arEmailSubscribe) > 0;
    }

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

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

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

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

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

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

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

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