public function execute() { if (!$this->action instanceof waViewAction) { $class_name = $this->action; $this->action = new $class_name(); } if (!$this->layout && $this->action && $this->action->getLayout()) { $this->setLayout($this->action->getLayout()); } $this->executeAction($this->action); }
/** * Execute action $action and save result to array $this->blocks * * @param waViewAction $action * @param waDecorator $decorator * @param string $name */ public function executeAction(waViewAction $action, $name = 'content', waDecorator $decorator = null) { $action->setController($this); if ($action->getLayout()) { $this->setLayout($action->getLayout()); } $content = $decorator ? $decorator->display($action) : $action->display(); if (isset($this->blocks[$name])) { $this->blocks[$name] .= $content; } else { $this->blocks[$name] = $content; } }