Ejemplo n.º 1
0
 /**
  * @param mixed $url
  * @return string
  */
 public static function url($url = null)
 {
     if ($url === null) {
         $http = env('HTTPS') ? 'https://' : 'http://';
         return $http . env('HTTP_HOST') . env('REQUEST_URI');
     }
     $routedUrl = $url;
     if (is_array($url)) {
         if (is_admin() || isset($url['admin']) && $url['admin'] === true) {
             if (isset($url['ajax']) && $url['ajax'] === true) {
                 $routedUrl = admin_url('admin-ajax.php');
             } else {
                 $routedUrl = get_admin_url();
             }
         } else {
             $routedUrl = get_site_url();
         }
         $routedUrl = trim($routedUrl, '/');
         $urlParams = array();
         if (isset($url['controller'])) {
             $urlParams['gummcontroller'] = $url['controller'];
         }
         if (isset($url['action'])) {
             $urlParams['action'] = GUMM_FW_PREFIX . $url['action'];
         }
         $requestParams = GummRouter::getUrlParams($url);
         foreach ($requestParams['params'] as $value) {
             $urlParams['gummparams[]'] = $value;
         }
         foreach ($requestParams['named'] as $param => $value) {
             $urlParams["gummnamed[{$param}]"] = $value;
         }
         $routedUrl .= $urlParams ? '?' . http_build_query($urlParams) : '';
     }
     return $routedUrl;
 }
Ejemplo n.º 2
0
 /**
  * @param array $callback
  * @param mixed $params
  * @return void
  */
 public function requestAction($requested, $render = true)
 {
     if (!isset($requested['controller'])) {
         if (is_a($this, 'View')) {
             if (isset($this->controller)) {
                 $requested['controller'] = str_replace('_controller', '', Inflector::underscore(get_class($this->controller)));
             }
         }
     }
     if (!isset($requested['controller']) || !isset($requested['action'])) {
         return false;
     }
     $callback = GummDispatcher::getCallbackToDispatch($requested);
     if (!$callback) {
         return false;
     }
     $args = GummRouter::getUrlParams($requested);
     $params = $args['params'];
     $controller =& $callback[0];
     $controller->startupProcess();
     $return = call_user_func_array($callback, $params);
     if ($render === false) {
         ob_start();
         $controller->shutdownProcess(false);
         $return = ob_get_clean();
     } else {
         $controller->shutdownProcess(false);
     }
     return $return;
 }