function ds_field_ui_fields_save in Display Suite 7.2
Same name and namespace in other branches
- 8.4 includes/field_ui.inc \ds_field_ui_fields_save()
- 8.2 includes/field_ui.inc \ds_field_ui_fields_save()
- 8.3 includes/field_ui.inc \ds_field_ui_fields_save()
- 7 ds.field_ui.inc \ds_field_ui_fields_save()
Save the field settings from the 'Manage display' screen.
2 string references to 'ds_field_ui_fields_save'
- ds_field_ui_change_layout_validate in includes/
ds.field_ui.inc - Form validation handler for _ds_field_ui_table_layouts_preview().
- _ds_field_ui_fields in includes/
ds.field_ui.inc - Add the fields to the Field UI form.
File
- includes/
ds.field_ui.inc, line 817 - Field UI functions for Display Suite.
Code
function ds_field_ui_fields_save($form, &$form_state) {
// Setup some variables.
$entity_type = $form['#entity_type'];
$bundle = $form['#bundle'];
$view_mode = $form['#view_mode'];
// Delete previous field configuration configuration.
db_delete('ds_field_settings')
->condition('entity_type', $entity_type)
->condition('bundle', $bundle)
->condition('view_mode', $view_mode)
->execute();
if (empty($form_state['layout_saved'])) {
return;
}
$field_settings = array();
// Save settings for each field.
$fields = $form['#ds_fields'];
foreach ($fields as $key => $field) {
// Field settings.
$field_values = $form_state['values']['fields'][$field];
// In case the region is hidden, do not save.
if (isset($field_values['region']) && $field_values['region'] == 'hidden') {
continue;
}
// Build settings.
$settings = array();
$settings['weight'] = $field_values['weight'];
$settings['label'] = $field_values['label'];
$settings['format'] = $field_values['format']['type'];
// Any formatter settings.
if (isset($form_state['formatter_settings'][$field])) {
$settings['formatter_settings'] = $form_state['formatter_settings'][$field];
}
$field_settings[$field] = $settings;
}
// Allow other modules to modify the field settings before they get saved.
drupal_alter('ds_field_settings', $field_settings, $form, $form_state);
// Save the record.
if (!empty($field_settings)) {
$record = new stdClass();
$record->id = $form['#export_id'];
$record->entity_type = $entity_type;
$record->bundle = $bundle;
$record->view_mode = $view_mode;
$record->settings = $field_settings;
drupal_write_record('ds_field_settings', $record);
}
// Clear the ds_fields cache.
cache_clear_all('ds_fields:', 'cache', TRUE);
cache_clear_all('ds_field_settings', 'cache');
}