I am currently developing a custom module. What I want is to have a nice URL, because right now it looks like this:
domain.com/flower-deliveries?city=Hamburg&id_country=1&country=Germany
I already added a new page to link to the custom module, the page name is flower-deliveries, but still I have the parameters that I have to "hide".
Instead, of that link above I would like a URL like this:
domain.com/flower-deliveries-1-Hamburg-Germany.html
I tried 2 methods, but none of them worked..
The first one, was to add a hookModuleRoutes in my controller, just like below:
public function hookModuleRoutes($params)
{
return array(
'module-vpages-dpage' => array(
'controller' => 'dpage',
'rule' => 'flower-deliveries{-:id_country}{-:country}{-:city}.html',
'keywords' => array(
'id_country' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'id_country'),
'city' => array('regexp' => '[\w]+', 'param' => 'city'),
'country' => array('regexp' => '[\w]+', 'param' => 'country')
),
'params' => array(
'fc' => 'module',
'module' => 'vpages',
'controller' => 'dpage'
)
)
);
}
And then, in the controllers install:
$this->registerHook('moduleRoutes');
That didn't worked, so I tried to override the Dispatcher class, by adding a custom module route:
'module-vpages-dpage' => array(
'controller' => 'dpage',
'rule' => 'flower-deliveries{-:id_country}{-:country}{-:city}.html',
'keywords' => array(
'id_country' => array('regexp' => '[0-9]+', 'param' => 'id_country'),
'city' => array('regexp' => '[\w]+', 'param' => 'city'),
'country' => array('regexp' => '[\w]+', 'param' => 'country'),
),
'params' => array(
'fc' => 'module',
'module' => 'vpages',
'controller' => 'dpage'
)
),
When using that custom rule, the link http://domain.com/flower-deliveries?city=Hamburg&id_country=1&country=Germany
was tranformed in http://domain.com/flower-deliveries?module_action=list
and it didn't worked and was redirecting me to the first page.
Could some one tell me what am I doing wrong? I've spent hours of reading how it should be done and it should be just like the ones above..
Thank you!