function _ds_field_ui_core_fields in Display Suite 8.3
Same name and namespace in other branches
- 8.4 includes/field_ui.inc \_ds_field_ui_core_fields()
- 8.2 includes/field_ui.inc \_ds_field_ui_core_fields()
- 7.2 includes/ds.field_ui.inc \_ds_field_ui_core_fields()
Alter the core field on the Field UI form.
Parameters
array $form: A collection of form properties.
\Drupal\Core\Form\FormStateInterface $form_state: A collection of form_state properties.
1 call to _ds_field_ui_core_fields()
- ds_field_ui_fields_layouts in includes/
field_ui.inc - Adds the Display Suite fields and layouts to the form.
File
- includes/
field_ui.inc, line 1405 - Field UI functions for Display Suite.
Code
function _ds_field_ui_core_fields(array &$form, FormStateInterface $form_state) {
$entity_type = $form['#entity_type'];
$bundle = $form['#bundle'];
/* @var \Drupal\Core\Entity\EntityFormInterface $entity_form */
$entity_form = $form_state
->getFormObject();
/* @var EntityViewDisplay $entity_display */
$entity_display = $entity_form
->getEntity();
// Gather type information.
$instances = \Drupal::service('entity_field.manager')
->getFieldDefinitions($entity_type, $bundle);
$table =& $form['fields'];
// Get all persisted values for fields and plugin settings.
$form_state_plugin_settings = $form_state
->get('plugin_settings');
// Field rows.
foreach ($instances as $key => $instance) {
if ($instance instanceof FieldConfigInterface) {
$settings = $entity_display
->getComponent($key);
if (empty($settings)) {
continue;
}
if (isset($form_state_plugin_settings[$key])) {
$settings = array_merge($settings, $form_state_plugin_settings[$key]);
}
// Import field settings and merge with Field API settings.
if (!isset($form_state_plugin_settings[$key])) {
$form_state_plugin_settings[$key] = isset($settings['third_party_settings']['ds']) ? $settings['third_party_settings']['ds'] : [];
}
if ($form_state
->get('plugin_settings_edit') == $key) {
$table[$key]['plugin']['settings_edit_form']['actions']['save_settings']['#validate'] = [
'ds_field_ui_fields_validate',
];
$table[$key]['plugin']['settings_edit_form']['actions']['cancel_settings']['#validate'] = [
'ds_field_ui_fields_validate',
];
}
else {
if (!empty($table[$key]['settings_summary'])) {
ds_field_row_form_format_summary_construct($table, $key, $form_state);
}
}
}
}
// Set updated plugin settings.
$form_state
->set('plugin_settings', $form_state_plugin_settings);
}