Fixed URL::absoluteUrl when an URL contains a target and parameters is not empty
This commit is contained in:
committed by
Julien Chanseaume
parent
e9bfe42070
commit
a1c1f1fb0e
@@ -154,6 +154,7 @@ class URL
|
|||||||
$base = $path;
|
$base = $path;
|
||||||
|
|
||||||
$queryString = '';
|
$queryString = '';
|
||||||
|
$anchor = '';
|
||||||
|
|
||||||
if (! is_null($parameters)) {
|
if (! is_null($parameters)) {
|
||||||
foreach ($parameters as $name => $value) {
|
foreach ($parameters as $name => $value) {
|
||||||
@@ -167,6 +168,14 @@ class URL
|
|||||||
|
|
||||||
if ('' !== $queryString = rtrim($queryString, "&")) {
|
if ('' !== $queryString = rtrim($queryString, "&")) {
|
||||||
|
|
||||||
|
// url could contain anchor
|
||||||
|
$pos = strrpos($base, '#');
|
||||||
|
if($pos !== false) {
|
||||||
|
$anchor = substr($base, $pos);
|
||||||
|
$base = substr($base, 0, $pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$base = rtrim($base, "?&");
|
$base = rtrim($base, "?&");
|
||||||
|
|
||||||
$sepChar = strstr($base, '?') === false ? '?' : '&';
|
$sepChar = strstr($base, '?') === false ? '?' : '&';
|
||||||
@@ -174,7 +183,7 @@ class URL
|
|||||||
$queryString = $sepChar . $queryString;
|
$queryString = $sepChar . $queryString;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $base . $queryString;
|
return $base . $queryString . $anchor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user