From: Michael Vogel <icarus@dabo.de>
Date: Sun, 8 Dec 2013 19:10:28 +0000 (+0100)
Subject: Bugfix: Page switching had a problem with the search. And automatic reloading hadn... 
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=d20d2f74ae7c50064af6c4b703e9990beccf1df9;p=friendica.git

Bugfix: Page switching had a problem with the search. And automatic reloading hadn't worked with some search terms
---

diff --git a/include/text.php b/include/text.php
index ea36a2a016..d41e7689e2 100644
--- a/include/text.php
+++ b/include/text.php
@@ -21,7 +21,7 @@ if(! function_exists('replace_macros')) {
  * @return string substituted string
  */
 function replace_macros($s,$r) {
-	
+
 	$stamp1 = microtime(true);
 
 	$a = get_app();
@@ -55,7 +55,7 @@ function random_string($size = 64,$type = RANDOM_STRING_HEX) {
 
 if(! function_exists('notags')) {
 /**
- * This is our primary input filter. 
+ * This is our primary input filter.
  *
  * The high bit hack only involved some old IE browser, forget which (IE5/Mac?)
  * that had an XSS attack vector due to stripping the high-bit on an 8-bit character
@@ -278,12 +278,18 @@ function paginate_data(&$a, $count=null) {
 	$stripped = str_replace('q=','',$stripped);
 	$stripped = trim($stripped,'/');
 	$pagenum = $a->pager['page'];
+
+	if (!strstr($stripped, "?")) {
+		$pos = strpos($stripped, "&");
+		$stripped = substr($stripped, 0, $pos)."?".substr($stripped, $pos + 1);
+	}
+
 	$url = $a->get_baseurl() . '/' . $stripped;
 
 
 	$data = array();
-	function _l(&$d, $name, $url, $text, $class="") { 
-		
+	function _l(&$d, $name, $url, $text, $class="") {
+
 		$d[$name] = array('url'=>$url, 'text'=>$text, 'class'=>$class); 
 	}
 
@@ -359,7 +365,7 @@ if(! function_exists('paginate')) {
  * @return string html for pagination #FIXME remove html
  */
 function paginate(&$a) {
-	
+
 	$data = paginate_data($a);
 	$tpl = get_markup_template("paginate.tpl");
 	return replace_macros($tpl, array("pager" => $data));
diff --git a/index.php b/index.php
index 98c7bce111..e751dcbaf9 100644
--- a/index.php
+++ b/index.php
@@ -471,7 +471,7 @@ if ($_GET["mode"] == "raw") {
 
 	foreach ($_GET AS $param => $value)
 		if (($param != "page") AND ($param != "q"))
-			$reload_uri .= "&".$param."=".$value;
+			$reload_uri .= "&".$param."=".urlencode($value);
 
 $a->page['htmlhead'] .= <<< EOT
 <script type="text/javascript">
diff --git a/mod/network.php b/mod/network.php
index 4c24943b07..ae1097e58e 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -115,21 +115,21 @@ function network_init(&$a) {
 			'/network?f=&bmark=1',			//bookmarked
 			'/network?f=&spam=1',			//spam
 		);
-		
+
 		// redirect if current selected tab is 'no_active' and
-		// last selected tab is _not_ 'all_active'. 
+		// last selected tab is _not_ 'all_active'.
 		// and this isn't a date query
 
 		if ($sel_tabs[0] == 'active' && $last_sel_tabs[0]!='active' && (! $is_a_date_query)) {
 			$k = array_search('active', $last_sel_tabs);
-          
+
             // merge tab querystring with request querystring
             $dest_qa = array();
             list($dest_url,$dest_qs) = explode("?", $tab_urls[$k]);
             parse_str( $dest_qs, $dest_qa);
             $dest_qa = array_merge($query_array, $dest_qa);
             $dest_qs = build_querystring($dest_qa);
-            
+
             // groups filter is in form of "network/nnn". Add it to $dest_url, if it's possible
             if ($a->argc==2 && is_numeric($a->argv[1]) && strpos($dest_url, "/",1)===false){
                 $dest_url .= "/".$a->argv[1];