$fields['SETTINGS']['DEFAULT_VALUE']['VALUE'] = $data['DT_DEFAULT_VALUE']; } if (isset($data['DT_TYPE']) && $data['DT_TYPE'] !== '') { $fields['SETTINGS']['DEFAULT_VALUE']['TYPE'] = $data['DT_TYPE']; } break; } $fields['EDIT_FORM_LABEL'] = array(); $fields['LIST_COLUMN_LABEL'] = array(); $fields['LIST_FILTER_LABEL'] = array(); $langDbResult = CLanguage::GetList($by = '', $order = ''); while ($lang = $langDbResult->Fetch()) { $lid = $lang['LID']; $fields['EDIT_FORM_LABEL'][$lid] = $fields['LIST_COLUMN_LABEL'][$lid] = $fields['LIST_FILTER_LABEL'][$lid] = $formLabel; } global $USER_FIELD_MANAGER; $crmFields = new CCrmFields($USER_FIELD_MANAGER, $entityID); $fieldName = $fields['FIELD_NAME'] = $crmFields->GetNextFieldId(); $userField = new CUserTypeEntity(); $fieldID = $userField->Add($fields); if ($fieldID > 0) { CCrmGridOptions::AddVisibleColumn(CCrmGridOptions::GetDefaultGrigID(CCrmOwnerType::ResolveIDByUFEntityID($entityID)), $fieldName); //Clear components cache $GLOBALS['CACHE_MANAGER']->ClearByTag("crm_fields_list_{$entityID}"); __CrmConfigFieldEditEndResonse(array('RESULT' => array('ID' => $fieldID, 'FIELD_NAME' => $fieldName))); } else { __CrmConfigFieldEditEndResonse(array('ERROR' => "Could not create user feld.")); } } else { __CrmConfigFieldEditEndResonse(array('ERROR' => "Action '{$action}' is not supported in current context.")); }
public function UpdateField($ID, $arField) { $obUserField = new CUserTypeEntity(); $res = $obUserField->Update($ID, $arField); if ($res) { UserFieldHistory::processModification(CCrmOwnerType::ResolveIDByUFEntityID($this->sUFEntityID), $ID); } if ($res && $arField['USER_TYPE_ID'] == 'enumeration' && is_array($arField['LIST'])) { $obEnum = new CUserFieldEnum(); $res = $obEnum->SetEnumValues($ID, $arField['LIST']); } $this->arUFList = $this->GetUserFields($this->sUFEntityID, 0, LANGUAGE_ID); return $res; }
$res = $CCrmFields->AddField($arField); } else { $res = $CCrmFields->UpdateField($arResult['FIELD']['ID'], $arField); } if ($res) { //Save default value for 'SHOW_IN_LIST' if ($arResult['NEW_FIELD']) { $defaultShowInList = CUserOptions::GetOption('crm', 'uf_show_in_list', 'N'); if ($arField['SHOW_IN_LIST'] === 'N' && $defaultShowInList !== 'N') { CUserOptions::DeleteOption('crm', 'uf_show_in_list'); } elseif ($arField['SHOW_IN_LIST'] === 'Y' && $defaultShowInList !== 'Y') { CUserOptions::SetOption('crm', 'uf_show_in_list', 'Y'); } } //Register/Unregister fild in entity list --> $gridID = CCrmGridOptions::GetDefaultGrigID(CCrmOwnerType::ResolveIDByUFEntityID($arResult['ENTITY_ID'])); if ($arField['SHOW_IN_LIST'] === 'Y') { CCrmGridOptions::AddVisibleColumn($gridID, $arResult['FIELD_ID']); } else { CCrmGridOptions::RemoveVisibleColumn($gridID, $arResult['FIELD_ID']); } //<-- Register/Unregister fild in entity list //Clear components cache $GLOBALS['CACHE_MANAGER']->ClearByTag('crm_fields_list_' . $arResult['ENTITY_ID']); //And go to proper page if (isset($_POST['save'])) { LocalRedirect($arResult['~FIELDS_LIST_URL']); } elseif (isset($_POST['apply'])) { LocalRedirect(str_replace(array('#entity_id#', '#field_id#'), array($arResult['ENTITY_ID'], $arResult['FIELD_ID']), $arParams['~FIELD_EDIT_URL'])); } else { LocalRedirect($arResult['~FIELDS_LIST_URL']);