I created a controller plugin to "route" the request to the cms controller. Has someone suggestions to do this with a router.
class My_Controller_Plugin_CmsRouter extends Zend_Controller_Plugin_Abstract { /** * Routes all (public) request to unknown modules to the standard * Cms module / Page controller * * @param Zend_Controller_Request_Abstract $request */ public function preDispatch (Zend_Controller_Request_Abstract $request) { $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher(); if (! $dispatcher->isDispatchable($request, $request)) { $request->setModuleName('cms'); $request->setControllerName('page'); $request->setActionName('index'); } } } berthausmans wrote: > > I'm building a small CMS and i want to create a router to route the > request to the right module/controller. Below a list with some valid urls: > > # http://www.domain.com/rss/ > module = rss > controller = index > action = index > > # http://www.domain.com/system/sitemap/google/ > module = system > controller = sitemap > action = google > > # http://www.domain.com/news/archive/ > module = cms > controller = page > action = index > url = /news/archive/ > page_id = 1 (search in database by url) > (news is no module, if there's a page '(/news/archive/)' available route > to the cms module) > > # > http://www.domain.com/news/archive/item/the-item-alias-in-the-database/param2/value2/ > module = cms > controller = page > action = index > url = /news/archive/ > page_id = 1 (search in database by url) > item = the-item-alias-in-the-database > param2 = value2 > (news is no module, if there's a page '(/news/archive/)' available route > to the cms module) > > Is it possible to create a router/route(s) to handle above url's? I've > already tried a number of implementations, but I have not succeeded. > > Who can help me? > -- View this message in context: http://www.nabble.com/Problem-by-creating-a-custom-router-with-%22fall-back%22-to-a-%22CMS-database-module%22-tp19646242p19664328.html Sent from the Zend Framework mailing list archive at Nabble.com.