cakebook / branches / master / config / routes.php
history
<?php
/**
* Short description for file.
*
* In this file, you set up routes to your controllers and their actions.
* Routes are very important mechanism that allows you to freely connect
* different urls to chosen controllers and their actions (functions).
*
* PHP versions 4 and 5
*
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
* Copyright (c) 2006, Cake Software Foundation, Inc.
* 1785 E. Sahara Avenue, Suite 490-204
* Las Vegas, Nevada 89104
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @filesource
* @copyright Copyright (c) 2006, Cake Software Foundation, Inc.
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
* @package cake
* @subpackage cake.app.config
* @since CakePHP v 0.2.9
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
$defaultLang = Configure::read('Languages.default');
if (!empty($fromUrl)) {
if (strpos($fromUrl, 'admin') === 0) {
Router::connectNamed(true);
} else {
Router::connectNamed(array('node', 'user', 'language', 'status', 'query', 'collection'), array('default' => true));
}
}
Router::parseExtensions('rss', 'xml', 'ajax');
// Legacy
Router::connect('/chapter/*', array('controller' => 'redirect', 'action' => 'process', 'chapter'));
Router::connect('/appendix/*', array('controller' => 'redirect', 'action' => 'process', 'appendix'));
// Router::connect('/:section/*', array('controller' => 'redirect', 'action' => 'process'), array('pass' => array('section'), 'section' => 'chapter|index'));
// missing images
Router::connect('/img/*', array('controller' => 'attachments', 'action' => 'view'), array('lang' => $defaultLang));
$routes = array(
array('/', array('controller' => 'nodes', 'action' => 'index'), array()),
array('/comments/:id/*', array('controller' => 'comments', 'action' => 'index'), array('pass' => array('id'), 'id' => '[0-9]+')),
array('/comments/:action/*', array('controller' => 'comments', 'action' => 'index'), array()),
// array('/:action/*', array('controller' => 'nodes'), array('action' => 'add|compare|complete|edit|history|stats|toc|todo|view')),
array('/add/*', array('controller' => 'nodes', 'action' => 'add'), array()),
array('/compare/*', array('controller' => 'nodes', 'action' => 'compare'), array()),
array('/complete/*', array('controller' => 'nodes', 'action' => 'complete'), array()),
array('/edit/*', array('controller' => 'nodes', 'action' => 'edit'), array()),
array('/history/*', array('controller' => 'nodes', 'action' => 'history'), array()),
array('/stats/*', array('controller' => 'nodes', 'action' => 'stats'), array()),
array('/toc/*', array('controller' => 'nodes', 'action' => 'toc'), array()),
array('/todo/*', array('controller' => 'nodes', 'action' => 'todo'), array()),
array('/view/*', array('controller' => 'nodes', 'action' => 'view'), array()),
// array('/:action/*', array('controller' => 'revisions'), array('action' => 'search|results')),
array('/search/*', array('controller' => 'revisions', 'action' => 'search', 'collection' => 2), array()),
array('/changes/:action/*', array('controller' => 'changes', 'action' => 'index'), array()),
array('/nodes/:action/*', array('controller' => 'nodes', 'action' => 'index'), array()),
array('/revisions/:action/*', array('controller' => 'revisions', 'action' => 'index'), array()),
array('/users/:action/*', array('plugin' => 'users', 'controller' => 'users', 'action' => 'index'), array()),
array('/admin/users/:action/*', array('prefix' => 'admin', 'plugin' => 'users', 'controller' => 'users', 'action' => 'index', 'admin' => true), array()),
array('/admin', array('controller' => 'revisions', 'action' => 'pending', 'admin' => true), array()),
array('/admin/:controller/:action/*', array('controller' => 'revisions', 'action' => 'pending', 'admin' => true), array()),
array('/:controller/:action/*', array('controller' => 'nodes', 'action' => 'index'), array())
);
foreach ($routes as $route) {
$route[1]['theme'] = 'default'; // default layout
$route[1]['lang'] = $defaultLang;
$route[2]['lang'] = '[a-z]{2}';
Router::connect($route[0], $route[1], $route[2]);
Router::connect('/:lang' . $route[0], $route[1], $route[2]);
$route[1]['theme'] = 'mobile';
Router::connect('/m' . $route[0], $route[1], $route[2]);
Router::connect('/m/:lang' . $route[0], $route[1], $route[2]);
}
?>