function extra_field_plus_form_entity_view_display_edit_form_submit in Extra Field Settings Provider 8
Same name and namespace in other branches
- 8.2 extra_field_plus.module \extra_field_plus_form_entity_view_display_edit_form_submit()
Implements submit handler for Field UI display (Manage Display) form.
Parameters
array $form: The form array.
\Drupal\Core\Form\FormStateInterface $form_state: The form state object.
1 string reference to 'extra_field_plus_form_entity_view_display_edit_form_submit'
File
- ./
extra_field_plus.module, line 214 - Main file for extra_field_plus module.
Code
function extra_field_plus_form_entity_view_display_edit_form_submit(array $form, FormStateInterface $form_state) {
if (empty($form['#extra'])) {
return;
}
$entity_type = $form['#entity_type'];
$bundle = $form['#bundle'];
$view_mode = \Drupal::routeMatch()
->getParameter('view_mode_name');
/** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $view_display */
$view_display = \Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load($entity_type . '.' . $bundle . '.' . $view_mode);
$extra = \Drupal::service('plugin.manager.extra_field_display')
->fieldInfo();
if ($view_display) {
foreach ($form['#extra'] as $name) {
if (isset($extra[$entity_type][$bundle]['display'][$name])) {
$row = $form['fields'][$name];
// Don't process for hidden field.
if ($row['region']['#value'] == 'hidden') {
continue;
}
$component = $view_display
->getComponent($name);
// Get settings from user input if user submitted display form
// while editing extra field settings.
if ($form_state
->get('plugin_settings_update') == $name) {
$user_input = $form_state
->getUserInput();
$settings = $user_input['fields'][$name]['settings_edit_form']['settings'];
}
elseif ($form_state
->get($name)) {
$settings = $form_state
->get($name);
}
else {
$settings = $component['settings'];
}
$view_display
->setComponent($name, [
'settings' => $settings,
] + $component)
->save();
}
}
}
}