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

CFormResult::SetStatus: метод Битрикс

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

<?php 
//    CFormResult::SetStatus()
//    /bitrix/modules/form/classes/general/form_callformresult.php:1639

    
function SetStatus($RESULT_ID$NEW_STATUS_ID$CHECK_RIGHTS="Y")
    {
        
$err_mess = (CAllFormResult::err_mess())."<br>Function: SetStatus<br>Line: ";
        global 
$DB$USER$strError$APPLICATION;
        
$NEW_STATUS_ID intval($NEW_STATUS_ID);
        
$RESULT_ID intval($RESULT_ID);

        if (
$RESULT_ID <= || $NEW_STATUS_ID <= 0)
            return 
false;

        
$strSql "SELECT USER_ID, FORM_ID FROM b_form_result WHERE ID='".$RESULT_ID."'";
        
$z $DB->Query($strSqlfalse$err_mess.__LINE__);
        if (
$zr $z->Fetch())
        {
            
$WEB_FORM_ID intval($zr["FORM_ID"]);

            
// rights check
            
$RIGHT_OK "N";
            if (
$CHECK_RIGHTS!="Y")
            {
                
$dbRes CFormStatus::GetByID($NEW_STATUS_ID);
                if (
$dbRes->Fetch())
                {
                    
$RIGHT_OK="Y";
                }
            }
            else
            {
                
// form rights
                
$F_RIGHT CForm::GetPermission($WEB_FORM_ID);
                if (
$F_RIGHT>=20 || ($F_RIGHT>=15 && $USER->GetID()==$zr["USER_ID"]))
                {
                    
// result rights
                    
$arrRESULT_PERMISSION CFormResult::GetPermissions($RESULT_ID$v);

                    
// new status rights
                    
$arrNEW_STATUS_PERMISSION CFormStatus::GetPermissions($NEW_STATUS_ID);

                    if (
in_array("EDIT"$arrRESULT_PERMISSION) && in_array("MOVE"$arrNEW_STATUS_PERMISSION))
                    {
                        
$RIGHT_OK "Y";
                    }
                }
            }

            if (
$RIGHT_OK=="Y")
            {
                
$dbEvents GetModuleEvents('form''onBeforeResultStatusChange');
                while (
$arEvent $dbEvents->Fetch())
                {
                    
ExecuteModuleEventEx($arEvent, array($WEB_FORM_ID$RESULT_ID, &$NEW_STATUS_ID$CHECK_RIGHTS));

                    if (
$ex $APPLICATION->GetException())
                        
$strError .= $ex->GetString().'<br />';
                }

                if (
strlen($strError) <= 0)
                {
                    
// call handler before change status
                    
CForm::ExecHandlerBeforeChangeStatus($RESULT_ID"SET_STATUS"$NEW_STATUS_ID);
                    
$arFields = Array(
                        
"TIMESTAMP_X"    => $DB->GetNowFunction(),
                        
"STATUS_ID"        => "'".intval($NEW_STATUS_ID)."'"
                        
);
                    
$DB->Update("b_form_result",$arFields,"WHERE ID='".$RESULT_ID."'",$err_mess.__LINE__);

                    
$dbEvents GetModuleEvents('form''onAfterResultStatusChange');
                    while (
$arEvent $dbEvents->Fetch())
                    {
                        
ExecuteModuleEventEx($arEvent, array($WEB_FORM_ID$RESULT_ID$NEW_STATUS_ID$CHECK_RIGHTS));
                    }

                    
// call handler after change status
                    
CForm::ExecHandlerAfterChangeStatus($RESULT_ID"SET_STATUS");
                    return 
true;
                }
            }
            else 
$strError .= GetMessage("FORM_ERROR_ACCESS_DENIED")."<br>";
        }
        else 
$strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND")."<br>";
        return 
false;
    }

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

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

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

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

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

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

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

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