Have the default controller scan be closer to Horde's default logic
authorChuck Hagenbuch <chuck@horde.org>
Tue, 1 Jun 2010 15:15:09 +0000 (11:15 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Tue, 1 Jun 2010 15:15:09 +0000 (11:15 -0400)
framework/Routes/lib/Horde/Routes/Mapper.php
framework/Routes/lib/Horde/Routes/Utils.php

index be6742e..efa9268 100644 (file)
@@ -453,7 +453,7 @@ class Horde_Routes_Mapper
     {
         if (!$this->_createdRegs && !empty($this->controllerScan)) {
             $this->createRegs();
-        } else if (!$this->_createdRegs) {
+        } elseif (!$this->_createdRegs) {
             $msg = 'You must generate the regular expressions before matching.';
             throw new Horde_Routes_Exception($msg);
         }
index af96308..9a3ab5b 100644 (file)
@@ -292,6 +292,10 @@ class Horde_Routes_Utils
                     // strip off base path: dirname/admin/users.php -> admin/users.php
                     $controller = preg_replace("/^$baseregexp(.*)\.php/", '\\1', $entry->getPathname());
 
+                    // PrepareController -> prepare_controller -> prepare
+                    $controller = strtolower(preg_replace('/([a-z])([A-Z])/', "\${1}_\${2}", $controller));
+                    $controller = substr($controller, 0, -(strlen('_controller')));
+
                     // add to controller list
                     $controllers[] = $prefix . $controller;
                 }