EnZZoooOOO Posted November 20, 2018 Share Posted November 20, 2018 Bonjour, Je suis en train de développer un nouveau module, et je souhaiterai personaliser l'URL. Le module s'appelle modulebox, et le controller boxdetail J'aimerai pouvoir acceder à la box 1 en écrivant : https://www.urldusite.com/boxdetail/1 J'ai implémenté une fonction hookModuleRoutes : public function hookModuleRoutes() { return array( 'module-modulebox-boxdetail' => array( 'controller' => 'boxdetail', 'rule' => 'boxdetail{/:id_box}', 'keywords' => array('id_box' => array('regexp' => '[0-9]+', 'param' => 'id_box'),), 'params' => array('fc' => 'module','module' => 'modulebox','controller' => 'boxdetail') ) ); } Dans le function install j'ai mis : if ((!parent::install())&&(!$this->registerHook('ModuleRoutes'))) return false; Pouvez vous me dire ou je peux me tromper ? car cela me renvoi une erreur 404. Link to comment Share on other sites More sharing options...
EnZZoooOOO Posted November 20, 2018 Author Share Posted November 20, 2018 J'ai oublié de dire je suis sur la 1.7.4.4 😉 Link to comment Share on other sites More sharing options...
doekia Posted November 20, 2018 Share Posted November 20, 2018 l'url devient donc module/modulebox/boxdetail/1 On peut éventuellement forcer l'url autrement mais c'est assez compliqué car on s'oppose au fonctionnement normal de PS. Je l'ai eu fait en 1.5/1.6 mais je doute (et n'ai pas l'envie de ) que cela fonctionnerai en 1.7. Et au moindre changement de version, ça ne fonctionnera surement pas Link to comment Share on other sites More sharing options...
EnZZoooOOO Posted November 20, 2018 Author Share Posted November 20, 2018 Merci pour ton retour, mais même https://www.urldusite.com/module/modulebox/boxdetail/1 ne fonctionne pas par contre ça oui : module/modulebox/boxdetail?id_box=1 Link to comment Share on other sites More sharing options...
coeos.pro Posted November 20, 2018 Share Posted November 20, 2018 Attention c'est modules avec un s Link to comment Share on other sites More sharing options...
doekia Posted November 20, 2018 Share Posted November 20, 2018 (edited) @coeos.pro Non justement c'est module au singulier dans le cas d'une route 'module' => array( 'controller' => null, 'rule' => 'module/{module}{/:controller}', 'keywords' => array( 'module' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'module'), 'controller' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'controller'), ), 'params' => array( 'fc' => 'module', ), ), Edited November 20, 2018 by doekia (see edit history) Link to comment Share on other sites More sharing options...
coeos.pro Posted November 20, 2018 Share Posted November 20, 2018 10 minutes ago, EnZZoooOOO said: https://www.urldusite.com/module/modulebox/boxdetail/1 ne fonctionne pas je faisait référence à cette url. A mon avis il faut rajouter un htaccess dans le module si ceci fonctionne : boxdetail?id_box=1 et pas boxdetail/1 Link to comment Share on other sites More sharing options...
doekia Posted November 20, 2018 Share Posted November 20, 2018 .../boxdetail/1 Celles-ci non plus ne fonctionne pas tant que la route n'est pas enregistré via le hook Hook::exec('moduleRoutes', array('id_shop' => $id_shop), null, true, false); Hélas, nombre de fois ce hook est lancé trop tard. Il faut souvent bricoller avec des need_instance et autre misère de code Link to comment Share on other sites More sharing options...
coeos.pro Posted November 20, 2018 Share Posted November 20, 2018 sinon il y a https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Link.php#L662 mais comme elle rajoute la langue dans l'url ça à tendance à donner un 404... sinon 'keywords' => array('id_box' => array('regexp' => '[0-9]+', 'param' => 'id_box'),), ce ne serait pas plutot 'keywords' => array('rewrite' => array('regexp' => '[0-9]+', 'param' => 'id_box'),), edit: avec 'rule' => 'boxdetail{/:rewrite}', Link to comment Share on other sites More sharing options...
EnZZoooOOO Posted November 20, 2018 Author Share Posted November 20, 2018 J'essai et je vous tiens informé de suite Link to comment Share on other sites More sharing options...
EnZZoooOOO Posted November 29, 2018 Author Share Posted November 29, 2018 Je ne vous ai pas encore répondu car j'ai mis ce developpement de côté. Je vous tiens informé. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now