I am currently looking at trying to generate custom urls/routing using magento, currently I have set a default route in config.xml within the local module.
&
Code below is untested, but should work
If you don't want to define custom rewrite for each protfolio item, just follow these steps:
Write your custom router class extended from Mage_Core_Controller_Varien_Router_Standard and implement match method:
public function match(Zend_Controller_Request_Http $request)
{
$path = explode('/', trim($request->getPathInfo(), '/'));
// If path doesn't match your module requirements
if (count($path) > 2 && $path[0] != 'portfolios') {
return false;
}
// Define initial values for controller initialization
$module = $path[0];
$realModule = 'Custom_Portfolios';
$controller = 'index';
$action = 'action';
$controllerClassName = $this->_validateControllerClassName(
$realModule,
$controller
);
// If controller was not found
if (!$controllerClassName) {
return false;
}
// Instantiate controller class
$controllerInstance = Mage::getControllerInstance(
$controllerClassName,
$request,
$this->getFront()->getResponse()
);
// If action is not found
if (!$controllerInstance->hasAction($action)) {
return false; //
}
// Set request data
$request->setModuleName($module);
$request->setControllerName($controller);
$request->setActionName($action);
$request->setControllerModule($realModule);
// Set your custom request parameter
$request->setParam('url_path', $path[1]);
// dispatch action
$request->setDispatched(true);
$controllerInstance->dispatch($action);
// Indicate that our route was dispatched
return true;
}
Define your custom router in config.xml:
frontend
Custom_Portfolios_Controller_Router_Custom
Enjoy your custom routing in Magento :)