function function_url($params) { if (isset($params['uri'])) { $inner_url = new \Hiano\Route\InnerUrl($this->request->getParameter('module'), $this->request->getParameter('controller'), $this->request->getParameter('action')); $arr = $inner_url->parse($params['uri']); } else { $arr = $this->request->getParameter(); } if (isset($params['append'])) { $arr = array_merge($arr, \Hiano\Route\StandardUrl::query2array($params['append'])); } $url = \Hiano\App\App::getRouter()->format($arr); if ($params['return']) { $u = new \Hiano\Route\StandardUrl($url); $u->setQuery('return', \Hiano\App\App::getUrl()); $url = $u->build(); } return $url; }
/** * * @param string $inner_url * @param string $return */ static function redirect($inner_url = null, $return = null) { $url = null; if ($inner_url) { $url = self::innerUrl2OuterUrl($inner_url); if ($return !== null and $return !== false) { $return_url = is_bool($return) ? self::getUrl() : $return; $u = new \Hiano\Route\StandardUrl($url); $u->setQuery('return', $return_url); $url = $u->build(); } } self::redirectOut($url); }