public function assemble($action, $args = array(), $route = null) { $route || ($route = $this->defaultRoute); if ($route && null !== ($route = $this->getRoute($route))) { $_url = $route->build($this, $action, $args); } else { list($_a, $_c, $_m, $args) = WindUrlHelper::resolveAction($action, $args); if ($_m && $_m !== $this->_module) { $args[$this->moduleKey] = $_m; } if ($_c && $_c !== $this->_controller) { $args[$this->controllerKey] = $_c; } if ($_a && $_a !== $this->_action) { $args[$this->actionKey] = $_a; } $_url = $this->request->getScript() . '?' . WindUrlHelper::argsToUrl($args); } return $_url; }