ViewEditForm::submitDisplayDuplicate

public ViewEditForm::submitDisplayDuplicate($form, FormStateInterface $form_state)

Submit handler to duplicate a display for a view.

File

core/modules/views_ui/src/ViewEditForm.php, line 800

Class

ViewEditForm
Form controller for the Views edit form.

Namespace

Drupal\views_ui

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public function submitDisplayDuplicate($form, FormStateInterface $form_state) {
  $view = $this->entity;
  $display_id = $this->displayID;
 
  // Create the new display.
  $displays = $view->get('display');
  $display = $view->getExecutable()->newDisplay($displays[$display_id]['display_plugin']);
  $new_display_id = $display->display['id'];
  $displays[$new_display_id] = $displays[$display_id];
  $displays[$new_display_id]['id'] = $new_display_id;
  $view->set('display', $displays);
 
  // By setting the current display the changed marker will appear on the new
  // display.
  $view->getExecutable()->current_display = $new_display_id;
  $view->cacheSet();
 
  // Redirect to the new display's edit page.
  $form_state->setRedirect('entity.view.edit_display_form', array(
    'view' => $view->id(),
    'display_id' => $new_display_id,
  ));
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.