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

CFormStatus::Set: метод Битрикс

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

<?php 
//    CFormStatus::Set()
//    /bitrix/modules/form/classes/general/form_callformstatus.php:145

    
function Set($arFields$STATUS_ID=false$CHECK_RIGHTS="Y")
    {
        
$err_mess = (CAllFormStatus::err_mess())."<br>Function: Set<br>Line: ";
        global 
$DB$USER$strError$APPLICATION;
        
$STATUS_ID intval($STATUS_ID);
        if (
CFormStatus::0830458d0e16dca077b84826a0b39ecfCheckFields($arFields$STATUS_ID$CHECK_RIGHTS))
        {
            
$arFields_i = array();

            
$arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction();

            if (
is_set($arFields"C_SORT"))
                
$arFields_i["C_SORT"] = "'".intval($arFields["C_SORT"])."'";

            if (
is_set($arFields"ACTIVE"))
                
$arFields_i["ACTIVE"] = ($arFields["ACTIVE"]=="Y") ? "'Y'" "'N'";

            if (
is_set($arFields"TITLE"))
                
$arFields_i["TITLE"] = "'".$DB->ForSql($arFields["TITLE"],255)."'";

            if (
is_set($arFields"DESCRIPTION"))
                
$arFields_i["DESCRIPTION"] = "'".$DB->ForSql($arFields["DESCRIPTION"],2000)."'";

            if (
is_set($arFields"CSS"))
                
$arFields_i["CSS"] = "'".$DB->ForSql($arFields["CSS"],255)."'";

            if (
is_set($arFields"HANDLER_OUT"))
                
$arFields_i["HANDLER_OUT"] = "'".$DB->ForSql($arFields["HANDLER_OUT"],255)."'";

            if (
is_set($arFields"HANDLER_IN"))
                
$arFields_i["HANDLER_IN"] = "'".$DB->ForSql($arFields["HANDLER_IN"],255)."'";

            if (
is_set($arFields"MAIL_EVENT_TYPE"))
                
$arFields_i["MAIL_EVENT_TYPE"] = "'".$DB->ForSql($arFields["MAIL_EVENT_TYPE"],255)."'";

            
$DEFAULT_STATUS_ID intval(CFormStatus::GetDefault($arFields["FORM_ID"]));
            if (
$DEFAULT_STATUS_ID<=|| $DEFAULT_STATUS_ID==$STATUS_ID)
            {
                if (
is_set($arFields"DEFAULT_VALUE"))
                    
$arFields_i["DEFAULT_VALUE"] = ($arFields["DEFAULT_VALUE"]=="Y") ? "'Y'" "'N'";
            }

            
//echo '<pre>'; print_r($arFields); echo '</pre>';
            //die();

            
if ($STATUS_ID>0)
            {
                
$DB->Update("b_form_status"$arFields_i"WHERE ID='".$STATUS_ID."'"$err_mess.__LINE__);
            }
            else
            {
                
$arFields_i["FORM_ID"] = "'".intval($arFields["FORM_ID"])."'";
                
$STATUS_ID $DB->Insert("b_form_status"$arFields_i$err_mess.__LINE__);
            }

            
$STATUS_ID intval($STATUS_ID);

            if (
$STATUS_ID>0)
            {
                
// право на просмотр
                
if (is_set($arFields"arPERMISSION_VIEW"))
                {
                    
$DB->Query("DELETE FROM b_form_status_2_group WHERE STATUS_ID='".$STATUS_ID."' and PERMISSION='VIEW'"false$err_mess.__LINE__);
                    if (
is_array($arFields["arPERMISSION_VIEW"]))
                    {
                        
reset($arFields["arPERMISSION_VIEW"]);
                        foreach(
$arFields["arPERMISSION_VIEW"] as $gid)
                        {
                            
$arFields_i = array(
                                
"STATUS_ID"        => "'".intval($STATUS_ID)."'",
                                
"GROUP_ID"        => "'".intval($gid)."'",
                                
"PERMISSION"    => "'VIEW'"
                            
);
                            
$DB->Insert("b_form_status_2_group",$arFields_i$err_mess.__LINE__);
                        }
                    }
                }

                
// право на перевод
                
if (is_set($arFields"arPERMISSION_MOVE"))
                {
                    
$DB->Query("DELETE FROM b_form_status_2_group WHERE STATUS_ID='".$STATUS_ID."' and PERMISSION='MOVE'"false$err_mess.__LINE__);
                    if (
is_array($arFields["arPERMISSION_MOVE"]))
                    {
                        
reset($arFields["arPERMISSION_MOVE"]);
                        foreach(
$arFields["arPERMISSION_MOVE"] as $gid)
                        {
                            
$arFields_i = array(
                                
"STATUS_ID"        => "'".intval($STATUS_ID)."'",
                                
"GROUP_ID"        => "'".intval($gid)."'",
                                
"PERMISSION"    => "'MOVE'"
                            
);
                            
$DB->Insert("b_form_status_2_group",$arFields_i$err_mess.__LINE__);
                        }
                    }
                }

                
// право на редактирование
                
if (is_set($arFields"arPERMISSION_EDIT"))
                {
                    
$DB->Query("DELETE FROM b_form_status_2_group WHERE STATUS_ID='".$STATUS_ID."' and PERMISSION='EDIT'"false$err_mess.__LINE__);
                    if (
is_array($arFields["arPERMISSION_EDIT"]))
                    {
                        
reset($arFields["arPERMISSION_EDIT"]);
                        foreach(
$arFields["arPERMISSION_EDIT"] as $gid)
                        {
                            
$arFields_i = array(
                                
"STATUS_ID"        => "'".intval($STATUS_ID)."'",
                                
"GROUP_ID"        => "'".intval($gid)."'",
                                
"PERMISSION"    => "'EDIT'"
                            
);
                            
$DB->Insert("b_form_status_2_group",$arFields_i$err_mess.__LINE__);
                        }
                    }
                }

                
// право на удаление
                
if (is_set($arFields"arPERMISSION_DELETE"))
                {
                    
$DB->Query("DELETE FROM b_form_status_2_group WHERE STATUS_ID='".$STATUS_ID."' and PERMISSION='DELETE'"false$err_mess.__LINE__);
                    if (
is_array($arFields["arPERMISSION_DELETE"]))
                    {
                        
reset($arFields["arPERMISSION_DELETE"]);
                        foreach(
$arFields["arPERMISSION_DELETE"] as $gid)
                        {
                            
$arFields_i = array(
                                
"STATUS_ID"        => "'".intval($STATUS_ID)."'",
                                
"GROUP_ID"        => "'".intval($gid)."'",
                                
"PERMISSION"    => "'DELETE'"
                            
);
                            
$DB->Insert("b_form_status_2_group",$arFields_i$err_mess.__LINE__);
                        }
                    }
                }

                if (
is_set($arFields"arMAIL_TEMPLATE"))
                {
                    
$DB->Query("DELETE FROM b_form_status_2_mail_template WHERE STATUS_ID='".$STATUS_ID."'"false$err_mess.__LINE__);
                    if (
is_array($arFields["arMAIL_TEMPLATE"]))
                    {
                        
reset($arFields["arMAIL_TEMPLATE"]);
                        foreach(
$arFields["arMAIL_TEMPLATE"] as $mid)
                        {
                            
$strSql "
                                INSERT INTO b_form_status_2_mail_template (STATUS_ID, MAIL_TEMPLATE_ID) VALUES (
                                    '"
.$STATUS_ID."',
                                    '"
.intval($mid)."'
                                )
                                "
;
                            
$DB->Query($strSqlfalse$err_mess.__LINE__);
                        }
                    }
                }
            }
            return 
$STATUS_ID;
        }
        return 
false;
    }

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

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

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

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

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

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

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

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