From be519fbee6b11c28a7d2a61b119c7aa2db334352 Mon Sep 17 00:00:00 2001 From: rMalie Date: Wed, 28 Mar 2012 10:06:03 +0000 Subject: [PATCH] // Improve dispatcher routes git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@14324 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Dispatcher.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php index 24f7a3ff5..99206dd11 100644 --- a/classes/Dispatcher.php +++ b/classes/Dispatcher.php @@ -406,10 +406,17 @@ class DispatcherCore 'append' => stripslashes($append), ); + $prepend_regexp = $append_regexp = ''; + if ($prepend || $append) + { + $prepend_regexp = '('.preg_quote($prepend); + $append_regexp = preg_quote($append).')?'; + } + if (isset($keywords[$keyword]['param'])) - $regexp = str_replace($m[0][$i], (($prepend) ? '('.$prepend.')?' : '').'(?P<'.$keywords[$keyword]['param'].'>'.$keywords[$keyword]['regexp'].')'.(($append) ? '('.$append.')?' : ''), $regexp); + $regexp = str_replace($m[0][$i], $prepend_regexp.'(?P<'.$keywords[$keyword]['param'].'>'.$keywords[$keyword]['regexp'].')'.$append_regexp, $regexp); else - $regexp = str_replace($m[0][$i], (($prepend) ? '('.$prepend.')?' : '').'('.$keywords[$keyword]['regexp'].')'.(($append) ? '('.$append.')?' : ''), $regexp); + $regexp = str_replace($m[0][$i], $prepend_regexp.'('.$keywords[$keyword]['regexp'].')'.$append_regexp, $regexp); } $keywords = $transform_keywords;