Newsroom

Module GSitemap Prestashop: URLs non réécrites

Encore un problème courant mais dont la solution n'est pas toujours bien indiquée: quand on lance le module Gsitemap, les URLs ne sont pas réécrites. (Je précise que j'utilise la version 1.5.1 de Prestashop.)

J'ai fait un premier essai en modifiant le fichier gsitemap (solution trouvée sur forum), j'ai obtenu de meilleurs résultats : les URLs sont réécrites, mais pas réécrites comme dans mon site. Il faut dire que j'avais overridé la réécriture d'URLs, et manifestement mon override n'était pas pris en compte.

Après debug, j'ai donc vu qu'il suffisait en fait d'overrider le fichier Dispatcher (donc créer le fichier override/class/Dispatcher s'il n'existe pas encore) pour lui dire d'utiliser la réécriture si je suis dans le module sitemap.  Il faut recopier dans ce fichier la fonction __construct, et y ajouter une ligne comme suit:
On remplace

// Select right front controller
        if (defined('_PS_ADMIN_DIR_'))
        {
            $this->front_controller = self::FC_ADMIN;
            $this->controller_not_found = 'adminnotfound';
            $this->default_controller = 'adminhome';
        }

par:

 

// Select right front controller
        if (defined('_PS_ADMIN_DIR_'))
        {
            $this->front_controller = self::FC_ADMIN;
            $this->controller_not_found = 'adminnotfound';
            $this->default_controller = 'adminhome';
            $this->use_routes =(Tools::getValue(configure)=='gsitemap')    ?true:false; // réécriture si module sitemap
        }

Et c'est tout, pas besoin de modifier le fichier gsitemap ni autre.

Installation d'un client Blaze Ericom sur un clien...
Pulsar Informatique présente son expertise CCK SEB...
 

Commentaires

Pas encore de commentaire
Guest
jeudi 29 septembre 2022

Image Captcha

captcha