Beispiel #1
0
 /**
  * @param $method
  * @param array $viewData
  * @param array $params
  * @return mixed
  */
 public function runAction($method, array $viewData = [], array $params = [])
 {
     if (!$this->canRunAction($method, $params)) {
         return $this->actionNotFound($method);
     }
     if (!$this->group->processBinds($params, $this->requestData)) {
         return $this->actionNotFound($method);
     }
     $this->requestData = array_merge($viewData, $this->requestData);
     $this->requestParams = $params;
     $result = $this->group->runBeforeCallback($this);
     if ($result) {
         return $result;
     }
     if ($_action = $this->getAction('_before')) {
         $result = call_user_func_array($_action, [$this, $params]);
         if ($result) {
             return $result;
         }
     }
     if ($action = $this->getAction($method)) {
         $result = call_user_func_array($action, [$this, $params]);
         if ($result) {
             return $result;
         }
     }
     if ($_action = $this->getAction('_after')) {
         $result = call_user_func_array($_action, [$this, $params]);
         if ($result) {
             return $result;
         }
     }
     $event = ($this->adminOnly() ? 'page.admin:' : 'page:') . $this->slug;
     \Event::fire($event . $this->slug, [&$this]);
     $event .= ':' . $method;
     \Event::fire($event . $this->slug, [&$this]);
 }