diff --git a/cake/libs/router.php b/cake/libs/router.php index b38dbd4a5..c5042c9ea 100644 --- a/cake/libs/router.php +++ b/cake/libs/router.php @@ -164,6 +164,31 @@ class Router { */ var $__defaultsMapped = false; +/** + * Constructor for Router. + * Builds __prefixes + * + * @return void + **/ + function Router() { + $this->__setPrefixes(); + } + +/** + * Sets the Routing prefixes. + * + * @return void + * @access private + **/ + function __setPrefixes() { + $routing = Configure::read('Routing'); + if (isset($routing['admin'])) { + $this->__prefixes[] = $this->__admin = $routing['admin']; + } + if (isset($routing['prefixes'])) { + $this->__prefixes = array_merge($this->__prefixes, $routing['prefixes']); + } + } /** * Gets a reference to the Router object instance * @@ -176,7 +201,6 @@ class Router { if (!$instance) { $instance[0] =& new Router(); - $instance[0]->__admin = Configure::read('Routing.admin'); } return $instance[0]; } @@ -722,7 +746,7 @@ class Router { foreach (get_class_vars('Router') as $key => $val) { $_this->{$key} = $val; } - $_this->__admin = Configure::read('Routing.admin'); + $_this->__setPrefixes(); } /** diff --git a/cake/tests/cases/libs/router.test.php b/cake/tests/cases/libs/router.test.php index 11484d1bc..b2d36e88e 100644 --- a/cake/tests/cases/libs/router.test.php +++ b/cake/tests/cases/libs/router.test.php @@ -1655,7 +1655,7 @@ class RouterTest extends CakeTestCase { $this->assertEqual($result, $expected); $result = Router::prefixes(); - $expected = array('protected', 'admin'); + $expected = array('admin', 'protected'); $this->assertEqual($result, $expected); }