X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/11fc033324d7f8988c422129b6e13f6e3053e05a..ba224fe1e6f6212651818538d7770690d821bfe0:/lib/MECON/HTML/Link.php diff --git a/lib/MECON/HTML/Link.php b/lib/MECON/HTML/Link.php index dc86a68..1252dff 100644 --- a/lib/MECON/HTML/Link.php +++ b/lib/MECON/HTML/Link.php @@ -112,30 +112,13 @@ class MECON_HTML_Link extends HTML_Common { $attrs = ''; foreach ($this->getAttributes() as $key => $val) { if ($key == 'href') { - $vars = array(); - foreach ($this->_getVars as $var => $v) { - if (is_object($v) and method_exists($v, 'tostring')) { - $v = $v->tostring(); - } elseif (is_object($v)) { - $v = serialize($v); - } - if (is_array($v)) { - foreach ($v as $i) { - $vars[] = urlencode($var) . '[]=' . urlencode($i); - } - } else { - $vars[] = urlencode($var) . '=' . urlencode($v); - } - } - if ($vars) { - $val .= '?' . join('&', $vars); - } + $val = $this->getURI(); } else { $val = htmlentities($val); } $attrs .= ' ' . $key . '="' . $val . '"'; } - return "" . $this->getContents() . ''; + return "" . $this->getContents() . ''; } /** @@ -258,6 +241,42 @@ If they doesn't exists, they are added, if they exists, they are updated. return '/MECON/css/html/link'; } + /** + * Gets the query string generated with the GET vars. + * + * @return GET query string. + */ + function getQueryString() + { + $vars = array(); + foreach ($this->_getVars as $var => $v) { + if (is_object($v) and method_exists($v, 'tostring')) { + $v = $v->tostring(); + } elseif (is_object($v)) { + $v = serialize($v); + } + if (is_array($v)) { + foreach ($v as $i) { + $vars[] = urlencode($var) . '[]=' . urlencode($i); + } + } else { + $vars[] = urlencode($var) . '=' . urlencode($v); + } + } + return join('&', $vars); + } + + /** + * Gets the URI (base page with the query string). + * + * @return URI string. + */ + function getURI() + { + $query = $this->getQueryString(); + return $this->getAttribute('href') . ($query ? "?$query" : ''); + } + } ?> \ No newline at end of file