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

ContactCenter::getAdsFormListItems: метод Битрикс

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

//    Bitrix\Intranet\ContactCenter::getAdsFormListItems()
//    /bitrix/modules/intranet/lib/contactcenter.php:689

    private function getAdsFormListItems($filter = array())
    {
        $formParams = array("order" => array("ID" => "DESC"), "select" => array("ID", "NAME"));
        $formCollection = \Bitrix\Crm\WebForm\Internals\FormTable::getList($formParams);
        $itemsList = array();
        $list = array();

        while ($form = $formCollection->fetch())
        {
            $list[$form["ID"]] = $form;
        }

        if (!empty($list))
        {
            $serviceTypes = \Bitrix\Crm\Ads\AdsForm::getServiceTypes();
            $codeMap = \Bitrix\Crm\Ads\AdsForm::getAdsIconMap();
            $cisOnlyItems = array(\Bitrix\Seo\LeadAds\Service::TYPE_VKONTAKTE);
            $cisCheck = $this->cisCheck() && $filter["CHECK_REGION"] !== "N";

            foreach ($serviceTypes as $type)
            {
                if ($cisCheck && in_array($type, $cisOnlyItems))
                {
                    continue;
                }

                $linkedFormsIds = \Bitrix\Crm\Ads\AdsForm::getLinkedForms($type);
                $name = (Loc::getMessage("CONTACT_CENTER_ADS_FORM_" . strtoupper($type)) ? : \Bitrix\Crm\Ads\AdsForm::getServiceTypeName($type));

                if ($filter["IS_LOAD_INNER_ITEMS"] !== "N")
                {
                    $linkedItems = array();
                    $shortName = (Loc::getMessage("CONTACT_CENTER_ADS_FORM_SHORTNAME_" . strtoupper($type)) ? : \Bitrix\Crm\Ads\AdsForm::getServiceTypeName($type));
                    $notLinkedItems = $list;

                    foreach ($linkedFormsIds as $id)
                    {
                        $item = $notLinkedItems[$id];
                        $item["NAME"] = htmlspecialcharsbx($item["NAME"]);
                        $item["LIST"] = array(
                            0 => array(
                                "LINK" => $this->getFormUrl($item["ID"]),
                                "NAME" => Loc::getMessage("CONTACT_CENTER_ADS_FORM_SETTINGS_FORM")
                            ),
                            1 => array(
                                "LINK" => $this->getAdsUrl($item["ID"], $type),
                                "NAME" => Loc::getMessage("CONTACT_CENTER_ADS_FORM_SETTINGS_LINK", array("#NAME#" => $shortName))
                            )
                        );
                        $linkedItems[] = $item;
                        unset($notLinkedItems[$id]);
                    }

                    foreach ($notLinkedItems as &$item)
                    {
                        $item["NAME"] = htmlspecialcharsbx($item["NAME"]);
                        $item["LINK"] = $this->getAdsUrl($item["ID"], $type);
                    }
                    unset($item);

                    $notLinkedItems = array_values($notLinkedItems);
                    $selected = !empty($linkedItems);
                    $newItem = array(
                        "ID" => 0,
                        "NAME" => Loc::getMessage("CONTACT_CENTER_FORM_CREATE"),
                        "LINK" => $this->getFormUrl(0),
                        "FIXED" => true,
                    );

                    if ($selected)
                    {
                        $items = $linkedItems;
                        if (!empty($notLinkedItems))
                        {
                            array_unshift($notLinkedItems, $newItem);
                            $items[] = array(
                                "ID" => 0,
                                "DELIMITER_BEFORE" => true,
                                "NAME" => Loc::getMessage("CONTACT_CENTER_FORM_LINK", array("#NAME#" => $shortName)),
                                "LIST" => $notLinkedItems
                            );
                        }
                    }
                    else
                    {
                        array_unshift($notLinkedItems, $newItem);
                        $items = $notLinkedItems;
                    }
                }
                else
                {
                    $selected = count($linkedFormsIds) > 0;
                }

                $itemsList[$type . "ads"] = array(
                    "NAME" => $name,
                    "SELECTED" => $selected,
                    "LOGO_CLASS" => "ui-icon ui-icon-service-" . $codeMap[$type]
                );

                if (!empty($items))
                {
                    $itemsList[$type . "ads"]["LIST"] = $items;
                }
            }
        }

        return $itemsList;
    }

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

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

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

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

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

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

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

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