diff --git a/boot.php b/boot.php index 0d7c6e878f..0dee716e77 100644 --- a/boot.php +++ b/boot.php @@ -522,21 +522,28 @@ if(! class_exists('App')) { if (substr($this->query_string, 0, 1) == "/") $this->query_string = substr($this->query_string, 1); } + if (x($_GET,'pagename')) $this->cmd = trim($_GET['pagename'],'/\\'); elseif (x($_GET,'q')) $this->cmd = trim($_GET['q'],'/\\'); - + + + // fix query_string + $this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string); + + // unix style "homedir" - + if(substr($this->cmd,0,1) === '~') - $this->cmd = 'profile/' . substr($this->cmd,1); - + $this->cmd = 'profile/' . substr($this->cmd,1); + // Diaspora style profile url if(substr($this->cmd,0,2) === 'u/') $this->cmd = 'profile/' . substr($this->cmd,2); + /** * * Break the URL path into C style argc/argv style arguments for our diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 5e19a1ffc1..aee8c0306f 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -648,12 +648,8 @@ function dfrn_request_content(&$a) { if(! local_user()) { info( t("Please login to confirm introduction.") . EOL ); - /* setup the return URL to come back to this page if they use openid */ - - $stripped = str_replace('q=','',$a->query_string); - $_SESSION['return_url'] = trim($stripped,'/'); - + $_SESSION['return_url'] = $a->query_string; return login(); } diff --git a/mod/network.php b/mod/network.php index ab44073508..bff30f7fc3 100644 --- a/mod/network.php +++ b/mod/network.php @@ -16,9 +16,10 @@ function network_init(&$a) { } } - // convert query string to array and remove first element (which is friendica args) + // convert query string to array. remove friendica args $query_array = array(); - parse_str($a->query_string, $query_array); + $query_string = str_replace($a->cmd."?", "", $a->query_string); + parse_str($query_string, $query_array); array_shift($query_array); // fetch last used network view and redirect if needed @@ -297,11 +298,11 @@ function network_content(&$a, $update = 0) { if(! local_user()) { $_SESSION['return_url'] = $a->query_string; - return login(false); + return login(false); } + // TODO:is this really necessary? $a is already available to hooks $arr = array('query' => $a->query_string); - call_hooks('network_content_init', $arr);