/** * Attach to another view. */ 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; } }