Ejemplo n.º 1
0
 /**
  * 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;
     }
 }