Child pages
  • Créer un module PrestaShop

Versions Compared

Key

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

...

Les principes techniques derrière un module

Un module PrestaShop est compris de comprend :

  • un Un dossier racine, portant le même nom que le module, qui contient tous les fichiers du module et se trouve dans le dossier /modules de PrestaShop.
  • un Un fichier PHP principal, portant le nom du module, placé à la racine de ce dossier. Ce fichier PHP doit avoir le même nom que le dossier du module.
  • Deux fichiers icônes, afin de représenter le module dans le back-office :
    • Un fichier pour PrestaShop 1.4 (si besoin) : logo.gif, 16*16 pixels.
    • Un fichier pour PrestaShop 1.5 : logo.png, 32*32 pixels.
  • Facultatif : un fichier template .tpl, contenant le thème du module.
  • Facultatif : un fichier de langue, si le module ou son thème affichent des chaînes de texte (qui doivent, de fait, être traduites).
  • Facultatif : dans un dossier /themes/modules, un dossier avec le même nom que le module, contenant les fichiers .tpl et de traduction si nécessaire. Ce dernier dossier est essentiel pendant les modifications d'un module existant, afin que vous puissiez l'adapter sans jamais à toucher ses fichiers originaux. Notamment, il vous permet de gérer l'affichage d'un module de différentes manières en fonction du thème actuel.

...

  • Le fichier de démarrage : nom_du_module.php
  • Le fichier de configuration du cache : config.xml
  • Les contrôleurs spécifiques au module, stockés dans le dossier /controllers
  • Les classes de surcharge, stockées dans le dossier /override (installation et désinstallation automatique par copie ou par fusion du code)
  • Les fichiers de vue (templates, JavaScript, CSS, etc.). À partir de la v1.5, ces fichiers peuvent être placés dans ces sous-dossiers :
    • dossier /views/css pour les fichiers CSS
    • dossier /views/js pour les fichiers JavaScript
    • dossier /views/templates/front pour les fichiers utilisés par les contrôleurs du module
    • dossier /views/templates/hooks pour les fichiers utilisés par les hooks du module
  • Logo du module en 16x16 : nom_du_module.jpg (format JPG ou GIF)
  • Logo du module en 32x32 : name_om_du_module.png (format PNG)
  • Fichiers de traduction : fr.php, en.php, es.php, etc. À partir de la v1.5, tous ces fichiers peuvent être placés dans le dossier /translations.

...

Il y en a de nombreuses autres, comme getInt() ou hasContext(), mais les quatre présentées sont celles que vous utiliserez le plus souvent.
Comme vous pouvez le voir, c'est un objet très utile et très facile à utiliser, et vous y aurez certainement recours dans de nombreuses situations. La plupart des modules s'en servent pour leurs propres réglages.

Info
titleMultiboutique

Toutes Par défaut, toutes ces méthodes se rapportent au contexte en cours. Par défaut, ces méthodes s'appliquent donc à la boutique actuellement utilisée par l'administrateur au moment de l'appel de la méthode.Elles disposent toutes de fonctionnent dans le contexte de la boutique actuelle, que PrestaShop soit en mode multiboutique ou non.

Cependant, il est possible de les faire travailler en dehors du contexte en cours, et d'avoir un impact sur les autres boutiques connues. Cela peut se faire à l'aide de trois paramètres optionnels (non présentés ci-dessus) :

  • id_lang : permet de forcer la langue avec laquelle on souhaite travailler ;
  • id_shop_group : permet de préciser le groupe de boutiques de la boutique cible ;
  • id_shop : permet de préciser l'identifiant de la boutique cible.

Ces Par défaut, ces trois paramètres utilisent par défaut les valeurs du contexte en cours dans le contexte.Il est donc possible de surcharger ces trois paramètres dans le cadre d'un module multiboutique, afin de travailler en dehors du contexte actuel, mais vous pouvez leur faire cibler une autre boutique.

Notez bien qu'il est déconseillé de modifier les valeurs par défaut de ces variables, surtout si le module que vous créez est destiné à être utilisé sur d'autres boutiques que la vôtre. Elles ne devraient être utilisée que si le module est conçu pour votre propre installation de PrestaShop, et que vous connaissez les identifiants et groupe de boutique de toutes les autres boutiques.

Vous n'êtes pas limité à vos propres variables : PrestaShop stocke également tous ses réglages de configuration dans la table ps_configuration. Des centaines de réglages s'y trouvent, et vous pouvez y accéder aussi facilement que vous accéder aux vôtres. Par exemple :

...

  • is_configurable indique que le module a une page de configuration ou non.
  • need_instance indique qu'une instance du module doit être créé créée lorsque s'affiche la liste des modules. Cela peut se révéler utile lorsque le module doit réaliser des tests sur la configuration de PrestaShop, et afficher des notifications en fonction du résultat.
  • limited_countries est utilisé pour indiquer les pays auxquels le module est limité. Par exemple, si le module doit être limité à la France et l'Espagne, utilisez <limited_countries>fr,es</limited_countries>.

...

Fichier / dossier

Description

img_ps_dir

URL for PrestaShop's image folderAdresse du dossier image de PrestaShop.

img_cat_dir

URL for the categories images folderAdresse du dossier des images des catégories.

img_lang_dir

URL for the languages images folderAdresse du dossier des images des langues.

img_prod_dir

URL for the products images folderAdresse du dossier des images des produits.

img_manu_dir

URL for the manufacturers images folderAdresse du dossier des images des fabricants.

img_sup_dir

URL for the suppliers images folderAdresse du dossier des images des fournisseurs.

img_ship_dir

URL for the carriers (shipping) images folderAdresse du dossier des images des transporteurs.

img_dir

URL for the theme's images folderAdresse du dossier des images du thème.

css_dir

URL for the theme's CSS folderAdresse du dossier des fichiers CSS du thème.

js_dir

URL for the theme's JavaScript folderAdresse du dossier des fichiers JavaScript du thème.

tpl_dir

URL for the current theme's folderAdresse du dossier du thème actuel.

modules_dir

URL the modules folderAdresse du dossier des modules.

mail_dirURL for the mail templates folder

Adresse du dossier des modèles d'e-mails.

pic_dir

URL for the pictures upload folderAdresse du dossier des images mises en ligne.

lang_iso

ISO code for the current languageCode ISO de la langue actuelle.

come_from

URL for the visitor's originAdresse d'origine du visiteur.

shop_nameShop name

Nom de la boutique.

cart_qtiesNumber of products in the cart

Nombre de produits dans le panier.

cartThe cart

Le panier.

currenciesThe various available currencies

Les différentes devises disponibles.

id_currency_cookieID

of the current currencyIdentifiant de la devise actuelle.

currency

Objet Currency object (currently used currency(la devise actuellement utilisée).

cookieUser cookie

Cookie de l'utilisateur.

languagesThe various available languages

Les différentes langues disponibles.

loggedIndicates whether the visitor is logged to a customer account

Indique si le visiteur est connecté à un compte utilisateur.

page_namePage name

Nom de la page.

customerName

Client name (if logged inNom du client (s'il est connecté).

priceDisplay

Price display method (with or without Méthode d'affichage du prix (avec ou sans les taxes...).

roundModeRounding

method in useMéthode d'arrondi utilisée.

use_taxesIndicates whether

taxes are enabled or notIndique si les taxes sont activées ou non.

Il y a de nombreux hooks contextuels. Si vous avez besoin d'afficher toutes les variables de la page en cours, utiliser l'appel suivant :

...