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:

Lire la suite

Prestashop Votre adresse e-mail est invalide et la page magasin s'affiche mal (erreur d'analyse xml)

Le jour où Prestashop m'a donné des envies de meurtre


J'ai constaté deux problèmes sur mon site Prestashop alors que je m'apprêtais à le passer en ligne:

  1. Un premier problème avec le module Mail alert qui enregistrait bien le mail utilisateur mais répondait "votre adresse email est invalide".
  2. Un deuxième problème avec la page magasin où l'icône du magasin n'apparaissait pas

Je n'ai pas de message d'erreur dans ma console firebug pour le premier problème avec le module Mail alert.
Pour le deuxième problème, j'ai le message d'erreur:

Erreur d'analyse XML : instruction de traitement XML ou texte pas au début d'une entité externe


Très vite un constat s'impose: il s'agit d'un seul et même problème. Les retours ajax qui semblent bon au premier abord sont en fait mal formatés. Un retour chariot s'est ajouté en début de ligne, et c'est ce retour chariot qui est la cause des deux problèmes.


Deuxième constat: comme ce problème se pose uniquement sur des retours ajax, il n'est absolument pas flagrant et je n'avais donc pas la moindre fichue idée d'où pouvait bien venir ce %*!$¨de retour chariot.

Après moults essais de modification de configuration, debug et autres joyeusetés, j'ai fini par trouver.

Lire la suite