aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-05 03:20:27 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-05 03:20:27 +0000
commit2cd3ef9e9b25a9166b6c816d622f593a41256898 (patch)
treee1b9b947662080d6953513f6714e8a6abfd186f0 /engine
parente53bf6cc34137cee9bec69cbe5c35c3851567fe9 (diff)
downloadelgg-2cd3ef9e9b25a9166b6c816d622f593a41256898.tar.gz
elgg-2cd3ef9e9b25a9166b6c816d622f593a41256898.tar.bz2
Fixes #1481: Applie Mike's patch and created function elgg_http_add_url_query_elements() to handle what the pagination view was trying to do.
git-svn-id: http://code.elgg.org/elgg/trunk@3903 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/elgglib.php38
1 files changed, 32 insertions, 6 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index 357141baa..76f8430b7 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -2576,12 +2576,12 @@ function elgg_validate_action_url($link) {
* @return string
*/
function elgg_http_remove_url_query_element($url, $element) {
- $url = parse_url($url);
+ $url_array = parse_url($url);
- if (isset($url['query'])) {
- parse_str($url['query'], $query);
+ if (isset($url_array['query'])) {
+ parse_str($url_array['query'], $query);
} else {
- // nothing to remove.
+ // nothing to remove. Return original URL.
return $url;
}
@@ -2589,13 +2589,39 @@ function elgg_http_remove_url_query_element($url, $element) {
unset($query[$element]);
}
- $url['query'] = http_build_query($query);
- $string = elgg_http_build_url($url);
+ $url_array['query'] = http_build_query($query);
+ $string = elgg_http_build_url($url_array);
return $string;
}
/**
+ * Adds get params to $url
+ *
+ * @param str $url
+ * @param array $elements k/v pairs.
+ * @return str
+ */
+function elgg_http_add_url_query_elements($url, array $elements) {
+ $url_array = parse_url($url);
+
+ if (isset($url_array['query'])) {
+ parse_str($url_array['query'], $query);
+ } else {
+ $query = array();
+ }
+
+ foreach ($elements as $k => $v) {
+ $query[$k] = $v;
+ }
+
+ $url_array['query'] = http_build_query($query);
+ $string = elgg_http_build_url($url_array);
+
+ return $string;
+}
+
+/**
* Returns the PHP INI setting in bytes
*
* @param str $setting