I want to direct all requests that haven't got a valid controller action to my custom page controller.
I.e. I want /pages/new
& /users/login
etc to work correctly, but a request for /foo
or /foo/bar
should be directed to /pages/display/$path
.
The following code works, but I'm pretty certain I'm not doing something the right way(tm).
// In app/Config/routes.php
Router::connect('/', array('controller' => 'pages', 'action' => 'displayHome'));
$controllerList = App::objects('controller');
foreach ($controllerList as $controller) {
$contstr = substr($controller, 0, strlen($controller)-10);
$contstr = Inflector::tableize($contstr);
if($contstr != 'app') {
Router::connect('/'. $contstr, array('controller'=>$contstr));
Router::connect('/'. $contstr .'/:action', array('controller'=>$contstr));
Router::connect('/'. $contstr .'/:action/*', array('controller'=>$contstr));
// FIXME: Check if admin routing is set
Router::connect('/admin/'. $contstr, array('controller'=>$contstr, 'admin'=>true));
Router::connect('/admin/'. $contstr .'/:action', array('controller'=>$contstr, 'admin'=>true));
Router::connect('/admin/'. $contstr .'/:action/*', array('controller'=>$contstr, 'admin'=>true));
}
}
Router::connect('/**', array('controller'=>'pages', 'action'=>'display'));
Would someone please be able to review this and tell me if this is okay/horribly wrong?