Требуется разработчик! Поддержка серверов

CFormCrm::SetForm: метод Битрикс

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

<?php 
//    CFormCrm::SetForm()
//    /bitrix/modules/form/classes/general/form_callformcrm.php:87

    
public static function SetForm($FORM_ID$arParams)
    {
        global 
$DB;

        
$FORM_ID intval($FORM_ID);
        if (
$FORM_ID 0)
        {
            
$dbRes self::GetByFormID($FORM_ID);
            
$arLink $dbRes->Fetch();

            if (
is_array($arLink))
            {
                
$DB->Query("DELETE FROM b_form_crm_field WHERE LINK_ID='".intval($arLink['ID'])."'");
            }

            
$arParams['CRM_ID'] = intval($arParams['CRM_ID']);
            if (
$arParams['CRM_ID'] <= 0)
            {
                if (
is_array($arLink))
                {
                    
$DB->Query("DELETE FROM b_form_crm_link WHERE ID='".intval($arLink['ID'])."'");
                }
            }
            else
            {
                
$arLinkFields = array(
                    
'FORM_ID' => $FORM_ID,
                    
'CRM_ID' => $arParams['CRM_ID'],
                    
'LINK_TYPE' => $arParams['LINK_TYPE'] == self::LINK_MANUAL self::LINK_MANUAL self::LINK_AUTO,
                );

                if (
is_array($arLink))
                {
                    
$strUpdate $DB->PrepareUpdate('b_form_crm_link'$arLinkFields);
                    
$query "UPDATE b_form_crm_link SET ".$strUpdate." WHERE ID='".intval($arLink['ID'])."'";
                    
$dbRes $DB->Query($query);
                    if (
$dbRes)
                        
$arLinkFields['ID'] = $arLink['ID'];
                }
                else
                {
                    
$arLinkFields['ID'] = $DB->Add('b_form_crm_link'$arLinkFields);
                }

                if (
$arLinkFields['ID'] > 0)
                {
                    if (
is_array($arParams['CRM_FIELDS']) && is_array($arParams['FORM_FIELDS']))
                    {
                        
$arMap = array();
                        foreach (
$arParams['CRM_FIELDS'] as $key => $crm_field)
                        {
                            
$form_field $arParams['FORM_FIELDS'][$key];

                            if (
strlen($crm_field) > && strlen($form_field) > && !array_key_exists($crm_field$arMap))
                            {
                                
$arMap[$crm_field] = true;

                                
$arFields = array(
                                    
'LINK_ID' => $arLinkFields['ID'],
                                    
'CRM_FIELD' => $crm_field
                                
);
                                if (
intval($form_field) > 0)
                                    
$arFields['FIELD_ID'] = $form_field;
                                elseif (
$form_field == 'NEW')
                                    
$arFields['FIELD_ID'] = self::_addField($FORM_ID$arParams['CRM_ID'], $crm_field);
                                else
                                    
$arFields['FIELD_ALT'] = $form_field;

                                
$DB->Add('b_form_crm_field'$arFields);
                            }
                        }
                    }
                }
            }
        }
    }

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

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

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

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

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

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

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

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