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

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

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

<?php 
//    /bitrix/modules/intranet/lib/contactcenter.phpContactCenter::getAdsFormListItems()
//    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\02049bb27cb3cf3395f9201f2fe385f9AdsForm::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(
                            
=> array(
                                
"LINK" => $this->03680acda1df9c3864821f4fc96d8d4cgetFormUrl($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->03680acda1df9c3864821f4fc96d8d4cgetFormUrl(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, или иной формат общения, но проще всего воспользоваться штатным инструментом:

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