if ($ID <= 0) { ?> <tr> <td colspan="2" align="center"><?php echo BeginNote(), GetMessage('FORM_CRM_NOT_SAVED'), EndNote(); ?> </td> </tr> <?php } else { $arCRMServers = array(); $dbRes = CFormCrm::GetList(array('NAME' => 'ASC', 'ID' => 'ASC'), array()); while ($arServer = $dbRes->Fetch()) { $arCRMServers[] = $arServer; } $dbRes = CFormCrm::GetByFormID($ID); $bLinkCreated = false; if ($arFormCrmLink = $dbRes->Fetch()) { $bLinkCreated = true; $dbRes = CFormCrm::GetFields($arFormCrmLink['ID']); $arFormCrmFields = array(); while ($arFld = $dbRes->Fetch()) { $arFormCrmFields[] = $arFld; } } $dbRes = CFormField::GetList($ID, 'ALL', $by, $order, array(), $is_filtered); $arFormFields = array(); while ($arFld = $dbRes->Fetch()) { $arFormFields[] = $arFld; } if (false && !$bLinkCreated) {
public static function AddLead($FORM_ID, $RESULT_ID, $arLink = null) { $FORM_ID = intval($FORM_ID); $RESULT_ID = intval($RESULT_ID); if ($FORM_ID <= 0 || $RESULT_ID <= 0) return false; if (!is_array($arLink)) { $dbRes = CFormCrm::GetByFormID($FORM_ID); $arLink = $dbRes->Fetch(); } if (!$arLink) return false; $arResultFields = array(); $arAnswers = array(); CFormResult::GetDataByID($RESULT_ID, array(), $arResultFields, $arAnswers); $ob = new CFormCrmSender($arLink['CRM_ID']); $arCrmF = $ob->GetFields(); $arCrmFields = array(); foreach ($arCrmF as $ar) $arCrmFields[$ar['ID']] = $ar; $arLeadFields = array(); $dbRes = CFormCrm::GetFields($arLink['ID']); while ($arRes = $dbRes->Fetch()) { if (intval($arRes['FIELD_ID']) > 0) { $bFound = false; foreach ($arAnswers as $sid => $arAnswer) { foreach ($arAnswer as $answer_id => $arAns) { if ($arAns['FIELD_ID'] == $arRes['FIELD_ID']) { $bFound = true; if ($arCrmFields[$arRes['CRM_FIELD']]) { switch ($arCrmFields[$arRes['CRM_FIELD']]['TYPE']) { case 'enum': { if ($arAns['FIELD_TYPE'] == 'dropdown' || $arAns['FIELD_TYPE'] == 'checkbox' || $arAns['FIELD_TYPE'] == 'radio' || $arAns['FIELD_TYPE'] == 'multiselect') { $arLeadFields[$arRes['CRM_FIELD']] = $arAns['VALUE']; } else { $arLeadFields[$arRes['CRM_FIELD']] = $arAns['ANSWER_TEXT']; } } break; case 'boolean': $arLeadFields[$arRes['CRM_FIELD']] = 'Y'; break; default: $arLeadFields[$arRes['CRM_FIELD']] = (strlen($arAns['USER_TEXT']) > 0 ? $arAns['USER_TEXT'] : ( strlen($arAns['ANSWER_TEXT']) > 0 ? $arAns['ANSWER_TEXT'] : $arAns['VALUE'] ) ); } } } } } if (!$bFound && $arCrmFields[$arRes['CRM_FIELD']] && $arCrmFields[$arRes['CRM_FIELD']]['TYPE'] == 'boolean') { $arLeadFields[$arRes['CRM_FIELD']] = 'N'; } } elseif (strlen($arRes['FIELD_ALT']) > 0) { switch($arRes['FIELD_ALT']) { case 'RESULT_ID': $arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['ID']; break; case 'FORM_SID': $arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['SID']; break; case 'FORM_NAME': $arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['NAME']; break; case 'SITE_ID': $arLeadFields[$arRes['CRM_FIELD']] = SITE_ID; break; case 'FORM_ALL': $arLeadFields[$arRes['CRM_FIELD']] = self::_getAllFormFields($FORM_ID, $RESULT_ID, $arAnswers); break; case 'FORM_ALL_HTML': $arLeadFields[$arRes['CRM_FIELD']] = self::_getAllFormFieldsHTML($FORM_ID, $RESULT_ID, $arAnswers); break; } } } $result = $ob->AddLead($arLeadFields); if ($result->code() != 201) { $GLOBALS['APPLICATION']->ThrowException($result->error(), $result->code()); return false; } else { CFormResult::SetCRMFlag($RESULT_ID, 'Y'); return $result->field('ID'); } }
if (false === $arForm) { define('BX_ADMIN_FORM_MENU_OPEN', 1); if ($_REQUEST["mode"] == "list") { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_js.php"; } else { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; } $adminPage->ShowSectionIndex("menu_webforms_list", "form"); if ($_REQUEST["mode"] == "list") { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin_js.php"; } else { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; } die; } else { $dbRes = CFormCrm::GetByFormID($WEB_FORM_ID); $arFormCrmLink = $dbRes->Fetch(); } $HELP_FILE_ACCESS = $APPLICATION->GetFileAccessPermission("/bitrix/modules/form/help/" . LANGUAGE_ID . "/index.php"); $FORM_RIGHT = $APPLICATION->GetGroupRight("form"); $MAIN_RIGHT = $APPLICATION->GetGroupRight("main"); $WEB_FORM_NAME = $arForm["SID"]; ########## require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/include.php"; IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/admin/form_result_list.php"); $err_mess = "File: " . __FILE__ . "<br>Line: "; /*************************************************************************** Utility ***************************************************************************/ function CheckFilter() {