A different search pagination fix (see ticket #1333) that doesn't require fixing the upstream code, thus undoing the change made in d64be5108d

Merged.
This commit is contained in:
CiaranG 2009-03-25 15:39:58 +00:00 committed by Evan Prodromou
parent d92926f892
commit 55e8a6ca1b
2 changed files with 13 additions and 8 deletions

View File

@ -241,12 +241,7 @@ class Net_URL_Mapper_Path
}
$path = '/'.trim(Net_URL::resolvePath($path), '/');
if (!empty($qstring)) {
if (!strpos($path, '?')) {
$path .= '?';
} else {
$path .= '&';
}
$path .= http_build_query($qstring);
$path .= '?'.http_build_query($qstring);
}
if (!empty($anchor)) {
$path .= '#'.ltrim($anchor, '#');
@ -432,4 +427,4 @@ class Net_URL_Mapper_Path
}
?>
?>

View File

@ -429,6 +429,16 @@ class Router
$args = $action_arg;
}
return $this->m->generate($args, $params, $fragment);
$url = $this->m->generate($args, $params, $fragment);
// Due to a bug in the Net_URL_Mapper code, the returned URL may
// contain a malformed query of the form ?p1=v1?p2=v2?p3=v3. We
// repair that here rather than modifying the upstream code...
$qpos = strpos($url,'?');
if ($qpos !== false) {
$url = substr($url, 0, $qpos+1) .
str_replace('?', '&', substr($url, $qpos+1));
}
return $url;
}
}