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];