Bug Prestashop, la liste des magasins n’apparait pas

By | 16/05/2011

Cette article est sponsorisé par odience.net¦works

En plein developpement

En plein développement de plusieurs modules PrestaShop, j’ai rencontrer plusieurs souci dans les code du package PrestaShop. Ce qui m’étonne, c’est qu’il y a beaucoup de gens qui utilise PrestaShop, même si c’est du gros n’importe quoi en terme de codage et programmation.

 

Alors pourquoi je créer des module?

Tout simplement parcequ’il y a de la demande.

(Restez connecté pour avoir des nouvelles de mes modules:

Ces modules sont créer pour odience.net et seront sont disponible sur odience.net)

Retour à nos moutons

Je vous explique un bug que j’ai trouver aujourd’hui et la solution.

Le problème est ceci:

La variable SMARTY qu’utilise PrestaShop pour stocker les informations des magasin est nomée “$stores”. On peut y acceder et donc afficher les details de nos magasin un peu partout dans les pages et les modules sans diriger le visiteur sur la page de “nos-magasin”.Module Contact PrestaShop avec formulaire de contact et carte google maps

Quand vous changez la configuration de l’affichage simplifié dans le Back Office, la variable $stores devient VIDE partout sur votre boutique. Donc vous ne pouvez plus afficher les details comme un numéro téléphone ou une photo tiré directement de la variable $stores.

Ceci est du au faite que une fois la configuration dans le Back Office modifié, PrestaShop relance une requete vers la base de donnée pour recréer $stores, mais cette fois il relance la requete en cherchant a calculer un distance! Donc la variable $stores reste vide.

Essayez d’ouvrir votre boutique en ligne en ajoutant “?all=1” à la fin de votre URL et vous verrez que la variable $stores fonctionne correctement et affiche bien les infos de vos magasins.

Remède, Solution

Le remède a ceci est de modifier le fichier

qui gère la variable $stores.

 

Au environs de la ligne 73, on ajoute une nouvelle requete SQL qui remplit la variable $stores avec la liste de tous nos magasins, et une deuxième requete SQL qui servira a calculer la distance en cas de recherche.

A savoir que la variable $results sera vide si il n’y a pas de demande de recherche de distance et donc StoresController.php ne genèrera pas de fichier XML servant a la mise en place d’une carte Google Maps dans le Store Locator. Pour assurer que le fichier XML sera créer seulement si $results contient quelque chose, je fait une verification avec:

Téléchargez, tout simplement

Vous pouvez télécharger la version corrigée de ce fichier dans la page téléchargement de Gibni.com (nom du fichier: StoresController-1.4.Amir.zip)

 

Pour l’utiliser,

1- Allez dans:

2- Renommez votre present fichier StoresController.php en StoresController.php.bak,

3- Placez le fichier php que vous avez télécharger et décompresser dans le même dossier.

 

Maintenant la variable $stores est de nouveau accessible, quelconque la configuration dans le Back Office de PrestaShop.

Je souhaite un grand succès à la communauté PrestaShop et j’espère qu’un jour ils auront du code concrete, correcte, scientifiquement étudié et structuré.


Cette article est sponsorisé par odience.net¦works

Category: Ramblings Tags: , ,

About Gi

I love new technologies and try to use them in my everyday life. Since many years ago, I write about these technologies, and provide solutions to the issues people might get using the new world. I tested and experienced the solutions I provide. I love helping people, and that's why my publications have been free until now.

3 thoughts on “Bug Prestashop, la liste des magasins n’apparait pas

  1. Benoît

    Bonjour,

    I think that PrestaShop is very badly done! lot of problems are in the package.

    Can you check the Mail sending process? It’s not working for me.

    Reply
  2. DSI94

    Bonjour,

    Est-ce que cette “astuce” fonctionne avec la 1.5 de prestashop ?

    Cordialement,

    Reply
    1. Gi Post author

      @DSI94: Bonjour. Je n’ai pas tester cette astuce sur PS 1.5. Tenez nous au courant si vous faites le teste.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

CommentLuv badge