TUTO – Modifier le thème de Prestashop 1.7 avec nodeJS
Dans notre précédent article, nous avons vu comment modifier simplement notre thème de base.
Or depuis la version 1.7, Prestashop met à disposition un StarterTheme https://github.com/PrestaShop/StarterTheme
vous le trouverez sur github.com librement.
Comment utiliser le StarterTheme ?
Pour le modifier « dans les règles de l’art » il faut utiliser la technologie mise à place à l’aide de nodeJS.
Si on analyse de plus près la structure du thème:
on s’aperçoit qu’il y a un dossier _dev
Tout se passe dans celui-ci.
Prérequis:
Pour modifier ce thème il vous faudra:
- Installer nodeJS sur votre ordinateur ou serveur https://nodejs.org/en/ prenez toujours une version stable.
- Avoir un éditeur de code, pour ma part j’utilise depuis peu Visual Studio Code que je trouve vraiment top https://code.visualstudio.com/
- Savoir utiliser la console de son ordinateur (CMD windows Terminal mac / linux)
- Avoir git d’installé sur votre ordinateur / serveur (pas obligatoire mais fortement conseillé)
Une fois tout ça mis en place, on peut commencer.
Installer le thème
Pour commencer, rendez vous dans le dossier /themes/ de prestashop et faites un clone du starterTheme ou collez le dossier si vous n’utilisez pas git.
Je me rends dans mon dossier thèmes:
Je clone le StarterTheme:
Le dossier /themes/ de prestashop ressemble donc à ça:
Rendez vous ensuite dans le dossier du theme et renommez le theme.dist.yml par theme.yml
modifiez ensuite ce fichier et rentrez vos informations:
Activez le thème dans Prestashop:
Par défaut le thème ne ressemble à rien:
Toujours dans votre console:
rendez vous dans le dossier _dev de votre thème
lancez la commande:
Si vous avez des erreurs sous mac ou linux lancer la en sudo:
ça mouline un petit moment:
Pour ma part tout semble s’être bien déroulé:
Maintenant, toujours dans la console, tapez la commande:
Les fichiers se sont bien compilés
Du coup, le theme reste vide, car il n’y a rien, aucun composant ou autre.
Vous pouvez utiliser le StarterTheme si vous voulez faire un theme de A-Z, cela dit, ça vous prendra beaucoup plus de temps que de partir sur une base existante, je vous conseille de partir sur le thème classic, mais tout en utilisant les outils de développement du StarterTheme.
Voici comment faire:
je fais un copie du classic en et je le nomme classicdev
puis je me place dans le classicdev/_dev
je créé le fichier package.json et je place ce code la:
J’ai pris le code du package.json du classic theme de la version prestashop de développement sur github
https://github.com/PrestaShop/PrestaShop/blob/1.7.2.x/themes/classic/_dev/package.json
Je lance à nouveau la commande:
ou
une fois que tout est installé, je peux lancer la commande
Si vous avez une erreur éditez le ficher webpack.config.js et passez le en mode strict:
Rajoutez:
au début du fichier après les commentaires:
Une fois la commande watch lancée, webpack attendra que je modifie un fichier pour compiler automatiquement.
Maintenant, je n’ai plus qu’a modifier un fichier .scss comme par exemple le theme.scss
je change la couleur du #header
webpack mouline et la compilation se lance:
Du coup sur le frontoffice:
Les couleurs sont changés automatiquement.
Une fois que vous avez fini faites en CTRL + C pour quitter webpack car ce dernier tourne en permanence.
Voila, vous savez comment modifiez votre theme avec les vrai outils,
ces technologies sont un peu compliquées à mettre en place, mais sont vraiment pratiques quand on les maitrise.
Je vous invite à vous renseigner sur la technologie Sass et Less, si vous voulez plus de détails, mais pour faire simple, c’est du css « programmé ».
Petite explication:
Dans le dossier _dev, il y a un sous dossier _partials, qui contient un fichier _variables.scss,
je vous invite à jetter un oeil et modifier un peu les variables présentes, vous verrez alors votre theme changer à
allure grand V assez simplement.
Si je change la variable $gray_darker,
le system va recompiler automatiquement tous les fichiers ou cette variable est présente, et les transformer en css automatiquement dans le fichier (theme.css du thème), ce qui vous évite d’ouvrir tous vos fichiers css, rechercher la couleur, la remplacer etc…
En espèrent que cet article vous aidera à faire de belles modifications sur votre theme Prestashop
Enjoy 😉