GSitemap et Prestashop: URLs non réécrites

61965 vues
25 mars 2013
Cyril
prestashop

 

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.

Pour rappel, le module GSitemap est une extension pour la plateforme de commerce électronique PrestaShop. Comme son nom l'indique, il s'agit d'un outil permettant de générer un sitemap pour le site Web de l'utilisateur.

Un sitemap est une liste de toutes les pages d'un site Web, organisée hiérarchiquement pour aider les moteurs de recherche à trouver facilement le contenu de votre site. Les sitemaps sont particulièrement importants pour les sites Web avec beaucoup de pages ou de produits, car cela facilite la navigation et l'indexation pour les moteurs de recherche.

Le module GSitemap pour PrestaShop offre des fonctionnalités avancées pour la génération de sitemaps, en permettant de :

  • Générer des sitemaps XML pour Google, Bing et d'autres moteurs de recherche.
  • Inclure ou exclure des pages spécifiques du sitemap.
  • Configurer la fréquence de mise à jour des pages.
  • Ajouter des images aux pages du sitemap pour améliorer la visibilité.
  • Générer des sitemaps pour les produits, les catégories, les fabricants et les fournisseurs.

En utilisant le module GSitemap, les propriétaires de sites PrestaShop peuvent améliorer leur référencement naturel et faciliter la navigation pour les visiteurs. Le module est facile à installer et à configurer, et offre des options avancées pour personnaliser le sitemap en fonction des besoins de l'utilisateur.