Jump to content

Structure d'URL des catégories ignorée par le menu principal (Prestashop 8.1.2)


Recommended Posts

Bonjour à tous,

Après avoir modifié les structure simplifiées dans "CONFIGURER > Paramètres de la boutique > Trafic et SEO" afin que l'identifiant s'affiche tout à la fin, j'observe que cela fonctionne correctement pour les URL de pages CMS (p. ex. "Mentions légales", "Conditions générales", etc.), mais pas pour les celles de catégories telles que présentes dans le menu principal, pour lesquelles l'identifiant de catégorie reste au début.

Dans le gestionnaire, la valeur du champ "Route vers la catégorie" est établie sur : {rewrite}-{id}
mais le menu s'obstine à créer les liens vers les catégories dans l'ordre {id}-{rewrite}.

J'ai jeté un coup d'oeil à classes/Link.php, ou la règle pour les catégories semble définie dans la fonction getCategoryLink:

$rule = 'category_rule';  // ligne 455
(...)
return $url . Dispatcher::getInstance()->createUrl($rule, $idLang, $params, $this->allow, '', $idShop);  // ligne 470

et surtout à classes/Dispatcher.php qui contient la méthode createUrl.

J'ai créé un double de "classes/Dispatcher.php", comme "/overrides/classes/Dispatcher.php" et j'ai modifié ce fichier à la ligne 31

class Dispatcher extends DispatcherCore

et à la ligne 63 et suivantes (cf. ligne 65):

 'category_rule' => [
    'controller' => 'category',
    'rule' => '{rewrite}-{id}',
    'keywords' => [
     'id' => ['regexp' => '[0-9]+', 'param' => 'id_category'],
    'rewrite' => ['regexp' => self::REWRITE_PATTERN],
    'meta_keywords' => ['regexp' => '[_a-zA-Z0-9-\pL]*'],
    'meta_title' => ['regexp' => '[_a-zA-Z0-9-\pL]*'],
 ],

Mais rien n'y fait : mon menu principal continue d'insérer l'identifiant de catégorie au début (et on à la fin) des URL simplifiées.

Je pense que le problème doit se trouver du côté de la fonction createUrl débutant à la ligne 945 de Dispatcher.php.

Cette fonction a une section "// Build an url which match a route" débutant à la ligne 987
et une section construisant une url par défaut, dès la ligne 1019.

Mon hypothèse est donc qu'une route n'est pas appelée pour construire l'URL de la catégorie.
Qui saurait m'indiquer la bonne direction ?

Edited by JoliBazar
remplacement d'une partie de la question après analyse plus fine de la situation (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...