You are here

public function ViewExecutable::attachDisplays in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/ViewExecutable.php \Drupal\views\ViewExecutable::attachDisplays()

Runs attachment displays for the view.

1 call to ViewExecutable::attachDisplays()
ViewExecutable::build in core/modules/views/src/ViewExecutable.php
Builds the query for the view.

File

core/modules/views/src/ViewExecutable.php, line 1712

Class

ViewExecutable
Represents a view as a whole.

Namespace

Drupal\views

Code

public function attachDisplays() {
  if (!empty($this->is_attachment)) {
    return;
  }
  if (!$this->display_handler
    ->acceptAttachments()) {
    return;
  }
  $this->is_attachment = TRUE;

  // Find out which other displays attach to the current one.
  foreach ($this->display_handler
    ->getAttachedDisplays() as $id) {
    $display_handler = $this->displayHandlers
      ->get($id);

    // Only attach enabled attachments that the user has access to.
    if ($display_handler
      ->isEnabled() && $display_handler
      ->access()) {
      $cloned_view = Views::executableFactory()
        ->get($this->storage);
      $display_handler
        ->attachTo($cloned_view, $this->current_display, $this->element);
    }
  }
  $this->is_attachment = FALSE;
}