Пример #1
0
                $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."));
}
Пример #2
0
 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;
 }
Пример #3
0
     $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']);