+ /**
+ * 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" : '');
+ }
+