mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-26 23:34:08 +02:00
Web/Url: more intuitive separator usage
One might not expect to get a URL with params separated by & while this is the correct way of writing them to HTML attributes. So default behaviour is right now that all functions return URL params separated by &, but if you cast a URL (or it's params) to a string, & will be used. Additionally there are toString functions allowing you to choose the separator "manually". refs #6699
This commit is contained in:
parent
7caccd7691
commit
217595dc15
@ -207,12 +207,12 @@ class Url
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getRelativeUrl()
|
public function getRelativeUrl($separator = '&')
|
||||||
{
|
{
|
||||||
if ($this->params->isEmpty()) {
|
if ($this->params->isEmpty()) {
|
||||||
return $this->path . $this->anchor;
|
return $this->path . $this->anchor;
|
||||||
} else {
|
} else {
|
||||||
return $this->path . '?' . $this->params->setSeparator('&') . $this->anchor;
|
return $this->path . '?' . $this->params->toString($separator) . $this->anchor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,9 +232,9 @@ class Url
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getAbsoluteUrl()
|
public function getAbsoluteUrl($separator = '&')
|
||||||
{
|
{
|
||||||
return $this->baseUrl . ($this->baseUrl !== '/' ? '/' : '') . $this->getRelativeUrl();
|
return $this->baseUrl . ($this->baseUrl !== '/' ? '/' : '') . $this->getRelativeUrl($separator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -416,6 +416,6 @@ class Url
|
|||||||
*/
|
*/
|
||||||
public function __toString()
|
public function __toString()
|
||||||
{
|
{
|
||||||
return $this->getAbsoluteUrl();
|
return $this->getAbsoluteUrl('&');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -315,8 +315,11 @@ class UrlParams
|
|||||||
return $this->params;
|
return $this->params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __toString()
|
public function toString($separator = null)
|
||||||
{
|
{
|
||||||
|
if ($separator === null) {
|
||||||
|
$separator = $this->separator;
|
||||||
|
}
|
||||||
$parts = array();
|
$parts = array();
|
||||||
foreach ($this->params as $p) {
|
foreach ($this->params as $p) {
|
||||||
if ($p[1] === true) {
|
if ($p[1] === true) {
|
||||||
@ -325,7 +328,12 @@ class UrlParams
|
|||||||
$parts[] = $p[0] . '=' . $p[1];
|
$parts[] = $p[0] . '=' . $p[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return implode($this->separator, $parts);
|
return implode($separator, $parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __toString()
|
||||||
|
{
|
||||||
|
return $this->toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromQueryString($queryString = null)
|
public static function fromQueryString($queryString = null)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user