From afad014e5fcbdca6ee62d431ae041a722bf54583 Mon Sep 17 00:00:00 2001 From: rMalie Date: Wed, 28 Mar 2012 10:06:03 +0000 Subject: [PATCH] // Improve dispatcher routes --- 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;