public function Attachment::attachTo

Attach to another view.

Overrides DisplayPluginBase::attachTo

File

drupal/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php, line 235
Definition of Drupal\views\Plugin\views\display\Attachment.

Class

Attachment
The plugin that handles an attachment display.

Namespace

Drupal\views\Plugin\views\display

Code

public function attachTo(ViewExecutable $view, $display_id) {
  $displays = $this
    ->getOption('displays');
  if (empty($displays[$display_id])) {
    return;
  }
  if (!$this
    ->access()) {
    return;
  }
  $args = $this
    ->getOption('inherit_arguments') ? $this->view->args : array();
  $view
    ->setArguments($args);
  $view
    ->setDisplay($this->display['id']);
  if ($this
    ->getOption('inherit_pager')) {
    $view->display_handler->usesPager = $this->view->displayHandlers
      ->get($display_id)
      ->usesPager();
    $view->display_handler
      ->setOption('pager', $this->view->displayHandlers
      ->get($display_id)
      ->getOption('pager'));
  }
  $attachment = $view
    ->executeDisplay($this->display['id'], $args);
  switch ($this
    ->getOption('attachment_position')) {
    case 'before':
      $this->view->attachment_before[] = $attachment;
      break;
    case 'after':
      $this->view->attachment_after[] = $attachment;
      break;
    case 'both':
      $this->view->attachment_before[] = $attachment;
      $this->view->attachment_after[] = $attachment;
      break;
  }
}