From a35f33b950e3a8faccce3f837bb0f3db5114eb83 Mon Sep 17 00:00:00 2001 From: rMalie Date: Thu, 22 Dec 2011 23:28:09 +0000 Subject: [PATCH] // Fix dispatcher::createURL() --- classes/Dispatcher.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php index a16eb9f54..64374ef8c 100644 --- a/classes/Dispatcher.php +++ b/classes/Dispatcher.php @@ -497,18 +497,22 @@ class DispatcherCore if ($this->use_routes && $use_routes) { $url = $route['rule']; + $add_param = array(); foreach ($params as $key => $value) { if (!isset($route['keywords'][$key])) - continue; - $data = $route['keywords'][$key]; - if ($params[$key]) - $replace = $route['keywords'][$key]['prepend'].$params[$key].$route['keywords'][$key]['append']; + $add_param[$key] = $value; else - $replace = ''; - $url = preg_replace('#\{([^{}]+:)?'.$key.'(:[^{}])?\}#', $replace, $url); + { + if ($params[$key]) + $replace = $route['keywords'][$key]['prepend'].$params[$key].$route['keywords'][$key]['append']; + else + $replace = ''; + $url = preg_replace('#\{([^{}]+:)?'.$key.'(:[^{}])?\}#', $replace, $url); + } } $url = preg_replace('#\{([^{}]+:)?[a-z0-9_]+?(:[^{}])?\}#', '', $url); + $url .= '?'.http_build_query($add_param); } // Build a classic url index.php?controller=foo&... else