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);
 }
예제 #2
0
 /**
  * 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;
     }
 }