Child pages
  • Créer un module PrestaShop

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note
titleDésactiver le cache

Si vous avez suivi ce tutoriel à la lettre et que vous ne voyez toujours rien s'afficher dans la colonne de gauche de votre thème, cela peut être dû au cache de PrestaShop, qui conserve les versions précédentes de vos templates et continue de vous les servir telles quelles. C'est pourquoi vous voyez toujours la version originale du thème, sans vos changements.

Smarty met en cache une version compilée de votre page d'accueil, pour des questions de performance. C'est extrêmement utile pour les sites en production, mais gênant pour les sites en phase de test, où vous êtes amené à rechargé recharger très régulièrement la page d'accueil afin de voir l'impact de vos modifications.

Lorsque vous modifiez ou déboguez le thème d'un site de test, vous devriez toujours désactiver le cache, afin de forcer Smarty à recompiler les templates à chaque chargement.
Pour ce faire, rendez-vous dans le menu "Paramètres avancés", ouvrez la page "Performances", et dans la section "Smarty" :

  • Cache des templates. Choisissez "Forcer la compilation à chaque appel".
  • Cache. Désactivez-le.
  • Console de débogage. Vous pouvez également faire s'ouvrir la console si vous voulez en apprendre plus sur le fonctionnement interne de Smarty.

Ne désactivez jamais le cache sur un site en production, ni n'activez la console de déboguagedébogage, car cela ralentirait tout !
Vous devriez toujours réaliser vos tests sur un site à part, idéalement installé sur votre propre ordinateur plutôt qu'en ligne.

...

Tip

Vous devriez vous assurer de donner des noms explicites à vos fichiers templates, afin de pouvoir les retrouver facilement dans votre back-office – ce qui est indispensable une fois que vous devez utiliser l'outil de traduction.

Voici nos deux fichiers :

...

La méthode setTemplate() s'occupera d'intégrer notre template ne contenant qu'une ligne, et d'en faire un une page complète, avec en-tête, pied de page et colonnes.

...

Enregistrez les deux fichiers dans leurs dossiers respectifs, et rechargez la page d'accueil, puis cliquez sur le lien "Click me!", et vous pouvez voir que vote votre lien fonctionne comme attendu. Avec juste quelques lignes, le résultat final est déjà beaucoup mieux, la ligne "Welcome" étant maintenant placée au milieu de l'interface.

...

  1. Tools::isSubmit() est une méthode propre à PrestaShop, qui vérifie si le formulaire indiqué a bien été validé.
    Dans ce cas, si le formulaire de configuration, le bloc if() entier est sauté et PrestaShop ne lit que la dernière ligne, qui affiche le formulaire de configuration avec les valeurs actuelles, tel que généré par la méthode displayForm().
  2. Tools:getValue() est une méthode propre à PrestaShop, qui récupère le contenu du tableau POST ou GET pour en tirer la valeur de la variable indiquée.
    Dans ce cas, nous récupérons la valeur de MYMODULE_NAME du formulaire, transformons sa valeur en une chaîne à l'aide de la méthode strval(), et la stockons dans la variable PHP $my_module_name.
  3. Nous vérifions ensuite l'existence de véritable contenu dans $my_module_name, notamment en utilisant Validate::isGenericName().
    L'objet Validate contient de nombreuses méthodes de validation, parmi lesquelles se trouve isGenericName(), une méthode qui vous aide à vérifier qu'une chaîne est bien un nom de variable PrestaShop valide – c'est-à-dire qu'elle ne contient pas de caractères spéciaux, pour simplifier.
  4. Si ces tests échouent, le formulaire de configuration s'ouvre avec un message d'erreur, indiquant que la validation du formulaire a échoué.
    La variable $output, qui contient le rendu final du code HTML qui compose la page de configuration, affiche en premier lieu un message d'erreur, créé à l'aide de la méthode displayError(). Cette méthode renvoie le code HTML nécessaire à nos besoins, et étant qu'il est le premier inséré dans $output, cela signifie que la page s'ouvrira avec ce message.
  5. Si ces tests réussissent, cela signifie que nous pouvons stocker la valeur dans la base de données.
    Comme nous l'avons vu plus tôt dans ce tutoriel, l'objet Configuration a exactement la méthode dont nous avons besoin : updateValue() stockera la nouvelle valeur pour MYMODULE_NAME dans la table de configuration.
    Pour cela, nous ajoutons une notification à l'utilisateur, indiquant que la valeur a bien été mise à jour : nous utilisons la méthode displayConfirmation() de PrestaShop, qui place le message en premier dans la variable $output – et donc, en haut de la page.
  6. Enfin, nous utilisons la méthode displayForm() (que nous allons créer et expliquer dans la section suivante) pour ajouter du contenu à $output (que le formulaire a ait été validé ou non), et renvoyons ce contenu dans la page.
    Notez que que nous aurions pu inclure le code de displayForm() directement dans getContent(), mais que nous avons choisi de séparer les deux pour des questions de lisibilité et de séparation des intérêts.

...