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.

 

Commentaires

Pas encore de commentaire
avatar du commentateur
Guest
lundi 27 septembre 2021

Image Captcha

captcha

By accepting you will be accessing a service provided by a third-party external to https://www.pulsar-agency.com/