Module · LNK Theme Preview
  • PrestaShop

Prévisualiser et tester un thème PrestaShop avant de l'activer

LNK Theme Preview affiche votre boutique PrestaShop sous un thème qui n'est pas encore actif, derrière un lien privé. Vous naviguez sur vos produits, vos prix et votre panier réels avant d'activer le thème. Pendant ce temps, vos visiteurs continuent de voir le site actuel.

  • Version 1.1.2 · PrestaShop 1.7.6 à 8.x
  • Version 1.9.2 · PrestaShop 9
  • PrestaShop 1.7.6 à 9.x
  • PHP 7.1 à 8.4
  • Contient un override du cœur

Points clés

  • Prévisualisation d'un thème non actif sur votre boutique réelle
  • Thème en préparation invisible pour vos visiteurs
  • Accès par lien signé, propre à votre installation
  • Agencement des modules par accroche, vu en aperçu puis publié dans le theme.yml
  • Sauvegarde du theme.yml avant chaque publication, accroches non touchées intactes
  • Plus de préproduction à monter et à maintenir
  • Module inerte pour les visiteurs sans lien d'aperçu
  • Contient un override du cœur (voir la section dédiée)
  • Diagnostic de compatibilité offert avant achat
  • PrestaShop 1.7.6 à 9.x, PHP 7.1 à 8.4
  • Aucune ressource externe, aucun cookie tiers

Changement de thème PrestaShop et préproduction

Pour voir un nouveau thème en conditions réelles, les marchands et les agences disposent aujourd'hui de deux options, qui ont chacune leurs défauts.

La première consiste à monter une copie du site, avec installation, copie de la base, synchronisation et maintenance. Les données de la copie s'éloignent chaque jour de la boutique réelle. Un thème qui s'affiche bien sur la copie peut révéler des problèmes le jour de la bascule, sur des produits qu'il n'avait jamais affichés.

La seconde consiste à activer le thème en production pour voir le résultat. Les visiteurs assistent alors aux travaux, et les ventes en pâtissent.

Prévisualisation d'un thème sur votre boutique réelle

Vous cliquez sur « Aperçu » sur la carte du thème : l'aperçu privé s'active et un lien magique ouvre votre boutique avec le thème en préparation. Le module applique ses templates, ses feuilles de style et ses scripts, y compris les surcharges de templates de modules propres au thème.

Vous vérifiez les pages importantes sur votre catalogue réel, par exemple la fiche d'un produit à quinze déclinaisons, une catégorie de trois cents références ou le tunnel de commande.

Pendant ce temps, les visiteurs voient le site normal. L'aperçu exige un lien magique, signé et propre à votre installation. Sans ce lien, l'accès reste fermé. Vous pouvez l'envoyer à un client pour validation ; « Régénérer » coupe l'accès à tous les liens déjà envoyés.

Agencement des modules du thème, publié dans le theme.yml

Chaque thème PrestaShop décide, dans son fichier theme.yml, quels modules s'affichent sur quelles accroches et lesquels sont désactivés. Ce fichier s'écrit à la main, et une erreur décroche des modules de leurs autres emplacements à l'activation du thème.

L'écran Agencement range les accroches par zone de page (en-tête, accueil, fiche produit, panier et commande…) et présente, pour chacune, ses modules dans l'ordre. Vous les montez, les descendez, les retirez, en ajoutez un (seulement parmi ceux qui savent s'afficher à cet endroit), et désactivez un module pour ce thème. Enregistrer la configuration actuelle la montre aussitôt dans l'aperçu privé.

Quand l'agencement vous convient, Enregistrer dans le theme.yml l'écrit dans le fichier du thème. L'ancien fichier est d'abord sauvegardé hors du dossier du thème. Le module ne liste que les accroches qui changent et celles qu'il doit protéger : à l'activation du thème, les autres accroches restent intactes, back-office compris. Nous l'avons vérifié au banc sur PrestaShop 9.2 et 8.1 en comparant toute la table des accroches avant et après activation.

Module inerte hors aperçu

Tant qu'aucun aperçu n'a été ouvert, la première instruction exécutée rend la main. Ensuite, un visiteur sans lien d'aperçu repart aussitôt avec le thème actif : le module ne charge aucun thème et n'effectue aucun calcul.

Pendant un aperçu, l'ensemble du chemin est protégé. En cas d'anomalie, l'affichage normal reprend la main. Le fonctionnement de votre boutique ne dépend à aucun moment de ce module.

Léger et rapide

Chiffres mesurés sur le module livré, compressé en gzip (niveau 9). Sur la boutique : aucun JavaScript et aucune feuille de style, pour vos visiteurs comme pendant l'aperçu, où seuls les fichiers du thème prévisualisé sont servis. Dans le back-office, sur les écrans du module seulement : 1,8 Ko de JavaScript écrit sans bibliothèque et 0,6 Ko de CSS de mise en page, les couleurs et composants restant ceux de PrestaShop.

Override du cœur de PrestaShop (FrontController et Hook)

Nous l'indiquons avant l'achat, comme PrestaShop Addons le fait désormais sur ses fiches.

Ce module contient des surcharges (override) de deux classes du cœur, FrontController et Hook.

Une surcharge est la seule voie possible pour cette fonction. Le thème actif et les gestionnaires de feuilles de style et de scripts sont fixés dans le constructeur de FrontController, avant l'exécution du premier hook. Aucun point d'accroche de PrestaShop n'intervient assez tôt. Cette contrainte explique très probablement l'absence d'équivalent. Nous n'avons identifié aucun module proposant cette fonction sur le marché PrestaShop.

Conséquences concrètes :

  • si un autre module surcharge déjà la même méthode, PrestaShop refuse l'installation avec un message clair, sans laisser votre boutique dans un état intermédiaire ;
  • la surcharge doit être revalidée à chaque version majeure de PrestaShop. Nous l'avons fait pour 1.7, 8 et 9, et ce suivi fait partie de notre travail ;
  • la désinstallation retire les fichiers de surcharge, sans rien laisser derrière elle.

Diagnostic de compatibilité offert avant achat. Envoyez-nous la liste des modules de votre boutique, ou simplement le contenu de votre dossier override/. Nous vous indiquons en 24 h si le module est compatible, sans engagement.

Gain de temps pour les agences et intégrateurs

Le module évite de monter, synchroniser, héberger, sécuriser puis supprimer une préproduction. Le thème se développe et se valide sur l'installation du client. Le client n'a aucun accès supplémentaire à ouvrir et travaille avec un seul site.

Le client valide sur son site, avec ses produits, ce qui réduit les allers-retours.

Compatibilité PrestaShop 1.7, 8 et 9

PrestaShop 1.7.6 → 9.x
PHP 7.1 → 8.4
Livraison Deux archives : 1.9.N pour PrestaShop 9, 1.1.N pour 1.7.6 à 8.x
Back-office Symfony natif sur PrestaShop 9, contrôleur d'administration classique en dessous
Contient un override Oui (FrontController, Hook)
Multiboutique Oui
Ressources externes Aucune

Chaque version est vérifiée par une installation réelle : PrestaShop 1.7.8 et 8.1 pour l'archive 1.1.N, PrestaShop 9.0 pour l'archive 1.9.N. Les essais portent sur l'installation, l'affichage, le back-office et la désinstallation.

Questions fréquentes

Mes visiteurs peuvent-ils tomber sur le thème en préparation ?

Non. L'entrée en prévisualisation exige un lien contenant un jeton signé avec un secret propre à votre installation. Sans ce lien, un visiteur voit le thème actif, même s'il devine l'adresse, s'il partage un cache ou s'il arrive depuis un moteur de recherche.

Ce module contient-il un override du cœur ?

Oui, deux. Le module surcharge les classes FrontController et Hook, et nous l'indiquons dès la fiche produit. Une surcharge est la seule voie possible. _PS_THEME_DIR_ est une constante définie avant l'exécution de tout code de module, et les gestionnaires d'assets sont instanciés dans le constructeur de FrontController. Au moment où le premier hook s'exécute, le thème et les assets sont déjà fixés.

Cette contrainte explique l'absence de module de prévisualisation de thème sur le marché. Les hooks seuls ne permettent pas de réaliser cette fonction proprement.

Un override présente-t-il un risque ?

Le risque réel est un conflit avec un autre module qui surchargerait les mêmes méthodes. PrestaShop refuse alors l'installation proprement, sans laisser la boutique dans un état intermédiaire. Notre diagnostic gratuit avant achat lève ce doute en quelques minutes. Écrivez-nous simplement la liste de vos modules.

Que se passe-t-il si je désactive le module ?

Aucun effet visible. La surcharge sort dès sa toute première instruction. La désinstallation retire les fichiers de surcharge et le cœur retrouve son état d'origine.

Ce module ralentit-il ma boutique ?

Hors prévisualisation, il exécute une lecture de configuration par page, et, une fois l'aperçu armé, la lecture du cookie d'aperçu. Il n'ajoute ni requête supplémentaire, ni appel réseau, ni asset côté client.

Est-il compatible avec ma version de PrestaShop ?

Oui, de PrestaShop 1.7.6 à PrestaShop 9, avec une seule licence et deux archives : 1.9.N pour PrestaShop 9, dont les écrans sont des contrôleurs Symfony natifs, et 1.1.N pour 1.7.6 à 8.x. Avant chaque publication, chaque version est réellement installée puis désinstallée dans notre matrice d'intégration.

Puis-je prévisualiser un thème enfant ?

Oui, y compris les gabarits hérités du thème parent.

Est-ce que cela remplace une préproduction ?

Pour le travail sur le thème, oui. Vous voyez le nouveau thème sur vos produits, vos prix et votre catalogue réels. Une montée de version de PrestaShop ou une migration de base de données relève d'un autre sujet et demande une vraie préproduction.

Je ne suis pas développeur, est-ce pour moi ?

Oui. Le module sert à regarder le thème avant de basculer, sans couper la boutique. Il ne demande aucune ligne de code.

Comment se comporte-t-il en multiboutique ?

L'aperçu est lié au navigateur qui a ouvert le lien magique, et reste cantonné à une seule boutique. « Régénérer » coupe l'accès à tous les liens déjà envoyés, y compris dans les navigateurs déjà entrés.

Que reste-t-il si je désinstalle le module ?

Les fichiers de surcharge sont retirés, les réglages et configurations enregistrés supprimés. Les theme.yml que vous avez publiés restent, avec leurs sauvegardes dans var/lnk_themepreview/ : ils appartiennent à vos thèmes. Si un autre module avait surchargé les mêmes classes, PrestaShop aurait refusé l'installation dès le départ. Aucune surcharge partagée n'est donc à démêler.

Le module dépose-t-il des cookies ?

Le jeton de prévisualisation est conservé dans la session PrestaShop de la personne qui l'utilise, c'est-à-dire vous ou votre intégrateur. Aucun cookie n'est posé chez vos visiteurs, et votre bandeau de consentement reste inchangé.

La publication dans le theme.yml peut-elle décrocher mes autres modules ?

Non. À l'activation d'un thème, PrestaShop retire un module cité dans le theme.yml de toutes les accroches où il n'est pas cité, et active tout module cité. Le module n'écrit donc que les accroches qui changent et celles qui portent un module qu'il cite, telles quelles, et ne cite jamais un module inactif ou désactivé pour le thème. Le theme.yml précédent est sauvegardé avant chaque publication. Seule exception : si vous retirez un module d'une accroche et ne l'affichez nulle part ailleurs, les modules inactifs ou désactivés de cette accroche en sont décrochés.

Pourquoi les images n'apparaissent-elles pas dans l'aperçu d'un autre thème ?

Chaque thème déclare ses formats d'image dans son theme.yml, et PrestaShop ne les crée qu'à l'activation du thème. Hummingbird, par exemple, demande des formats que Classic n'a pas. La carte du thème et la barre de l'aperçu comptent ces formats absents. « Préparer les images » les crée, eux seuls, puis génère leurs vignettes par lots avec une barre de progression ; vous pouvez l'arrêter et la reprendre. Un format qui existe déjà n'est jamais modifié, même quand le thème lui donne d'autres dimensions. En attendant la préparation, l'aperçu montre la taille existante la plus proche au lieu d'une image vide (selon la version de PrestaShop, voir docs/COMPATIBILITY.md). À l'activation du thème, PrestaShop remplace la liste des formats par celle du thème.

Journal des versions

6 versions publiées pour PrestaShop

  1. Version 1.9.2 PrestaShop 9

    Pages refaites d'après la maquette de Fouad.

    Nouveautés

    • Onglet Aide : le parcours en quatre étapes, qui voit quoi, le lien magique, les deux enregistrements, les modules désactivés et des questions fréquentes, avec un sommaire latéral.
    • Aperçu sur la carte d'un thème : ouvre la boutique sous ce thème par son lien magique ; « Voir en aperçu » depuis l'agencement fait de même. « Régénérer » et « Quitter l'aperçu sur ce navigateur » en bas de l'onglet Thèmes.
    • Noms des accroches en aperçu : chaque accroche d'affichage rendue est entourée de deux commentaires HTML, et un calque séparé dessine par-dessus la page son contour et son nom, sans déplacer un pixel (vérifié sur l'accueil, une catégorie et une fiche produit). Case flottante « Afficher les accroches ». Une accroche vide n'est pas marquée : les thèmes testent sa sortie avant d'afficher son conteneur. Jamais pour un visiteur : hors aperçu, la page ne change pas d'un octet.
    • Régénérer les liens magiques : les liens déjà envoyés ne fonctionnent plus, navigateurs déjà entrés compris (le cookie d'aperçu porte le jeton, revérifié à chaque requête). « Copier le lien magique » sur chaque thème.
    • Page Agencement par zones de page (en-tête, accueil, catégories, colonnes latérales, fiche produit, panier et commande, compte client, contact, pied de page, documents PDF, technique), avec filtre, compteurs et modules à désactiver avec recherche.
    • Barre fixe d'enregistrement : état des modifications, « Enregistré le … · non publié » ou « Publié le … », « Enregistrer la configuration actuelle », « Enregistrer dans le theme.yml », « Annuler les modifications ».
    • Images d'un thème en aperçu : la carte d'un thème et la barre d'aperçu comptent les formats d'image que le thème déclare et que la boutique n'a pas encore. « Préparer les images » crée ces formats, eux seuls, puis génère leurs vignettes par lots, avec une barre de progression, reprenable ; un format existant n'est jamais modifié. En attendant, l'aperçu montre la taille existante la plus proche au lieu d'une image vide. Le bouton de la barre n'apparaît que dans le navigateur qui a ouvert l'aperçu depuis le back-office.

    Modifications

    • Les accroches du back-office, du tableau de bord et des formulaires d'administration ne sont jamais proposées dans l'agencement. Au banc, après activation d'un thème publié, elles restent identiques dans la table des accroches.
    • Une seule page, commune aux deux branches du module.
    • La carte « Aperçu privé » et son interrupteur sont retirés : le premier « Aperçu » sur un thème arme l'aperçu privé, « Quitter l'aperçu sur ce navigateur » en sort.
    • Adresses de admin.css et admin.js versionnées par l'empreinte de leur contenu : un cache ou un CDN ne sert jamais un ancien fichier sous la même adresse.
    • Nom affiché, onglet du menu et titre de la page : « LNK Aperçu de thème » (« LNK » + nom traduit), renommés aussi à la mise à jour. L'écran d'un thème garde son titre « Agencement · <thème> ».
    • Code relu par les contrôles de l'usine, sans changement visible : PHPDoc de toutes les méthodes publiques, analyse statique sans constat au niveau 5 (mode de recadrage des formats d'image détecté par le champ du cœur, appel de ImageManager::resize selon la version de PrestaShop).
  2. Version 1.9.0 PrestaShop 9

    Branche 9 : PrestaShop 9.0 à 9.x seulement. PrestaShop 1.7.6 à 8.x passent sur la branche prestashop/legacy (1.1.0).

    Nouveautés

    • Écran Agencement (Apparence → Agencement des thèmes), dans le back-office Symfony : pour chaque accroche d'affichage, ses modules dans l'ordre ; monter, descendre, retirer, ajouter un module qui sait s'afficher sur l'accroche, ajouter une accroche, désactiver un module pour le thème.
    • Brouillon enregistré par thème, appliqué par l'aperçu ; écart avec la version publiée affiché accroche par accroche.
    • Publication dans le theme.yml : global_settings.hooks.modules_to_hook et global_settings.modules.to_disable, sauvegarde datée du fichier précédent dans var/lnk_themepreview/<thème>/, cache JSON du thème purgé.
    • Téléchargement du theme.yml avec le brouillon appliqué, pour un générateur de thèmes.
    • Export exact : seules les accroches qui changent, et celles qui portent un module cité, sont listées ; aucun module inactif ou désactivé n'est cité (PrestaShop activerait tout module cité). tests/test-layout.php rejoue l'algorithme du cœur sur 3 000 cas aléatoires.
    • Traductions XLF français, anglais et arabe (Modules.Lnkthemepreview.Admin).
    • Mise à jour depuis la 1.0 : les cartes de hooks enregistrées deviennent des brouillons.

    Modifications

    • Grille des thèmes et écran Agencement en contrôleur Symfony natif et Twig, avec les composants du back-office ; plus de page de configuration de module.
    • config/routes.yml et config/services.yml livrés en place.

    Retraits

    • Le contrôleur d'administration legacy et les gabarits Smarty, désormais sur la branche prestashop/legacy.
  3. Version 1.1.2 PrestaShop 1.7.6 à 8.x

    Pages refaites d'après la maquette de Fouad.

    Nouveautés

    • Onglet Aide : le parcours en quatre étapes, qui voit quoi, le lien magique, les deux enregistrements, les modules désactivés et des questions fréquentes, avec un sommaire latéral.
    • Aperçu sur la carte d'un thème : ouvre la boutique sous ce thème par son lien magique ; « Voir en aperçu » depuis l'agencement fait de même. « Régénérer » et « Quitter l'aperçu sur ce navigateur » en bas de l'onglet Thèmes.
    • Noms des accroches en aperçu : chaque accroche d'affichage rendue est entourée de deux commentaires HTML, et un calque séparé dessine par-dessus la page son contour et son nom, sans déplacer un pixel (vérifié sur l'accueil, une catégorie et une fiche produit). Case flottante « Afficher les accroches ». Une accroche vide n'est pas marquée : les thèmes testent sa sortie avant d'afficher son conteneur. Jamais pour un visiteur : hors aperçu, la page ne change pas d'un octet.
    • Régénérer les liens magiques : les liens déjà envoyés ne fonctionnent plus, navigateurs déjà entrés compris (le cookie d'aperçu porte le jeton, revérifié à chaque requête). « Copier le lien magique » sur chaque thème.
    • Page Agencement par zones de page (en-tête, accueil, catégories, colonnes latérales, fiche produit, panier et commande, compte client, contact, pied de page, documents PDF, technique), avec filtre, compteurs et modules à désactiver avec recherche.
    • Barre fixe d'enregistrement : état des modifications, « Enregistré le … · non publié » ou « Publié le … », « Enregistrer la configuration actuelle », « Enregistrer dans le theme.yml », « Annuler les modifications ».
    • Images d'un thème en aperçu : la carte d'un thème et la barre d'aperçu comptent les formats d'image que le thème déclare et que la boutique n'a pas encore. « Préparer les images » crée ces formats, eux seuls, puis génère leurs vignettes par lots, avec une barre de progression, reprenable ; un format existant n'est jamais modifié. En attendant, l'aperçu montre la taille existante la plus proche au lieu d'une image vide. Le bouton de la barre n'apparaît que dans le navigateur qui a ouvert l'aperçu depuis le back-office.

    Modifications

    • Les accroches du back-office, du tableau de bord et des formulaires d'administration ne sont jamais proposées dans l'agencement. Au banc, après activation d'un thème publié, elles restent identiques dans la table des accroches.
    • Une seule page, commune aux deux branches du module.
    • La carte « Aperçu privé » et son interrupteur sont retirés : le premier « Aperçu » sur un thème arme l'aperçu privé, « Quitter l'aperçu sur ce navigateur » en sort.
    • Adresses de admin.css et admin.js versionnées par l'empreinte de leur contenu : un cache ou un CDN ne sert jamais un ancien fichier sous la même adresse.
    • Nom affiché, onglet du menu et titre de la page : « LNK Aperçu de thème » (« LNK » + nom traduit), renommés aussi à la mise à jour. L'écran d'un thème garde son titre « Agencement · <thème> ».
    • Code relu par les contrôles de l'usine, sans changement visible : PHPDoc de toutes les méthodes publiques, analyse statique sans constat au niveau 5 (mode de recadrage des formats d'image détecté par le champ du cœur, appel de ImageManager::resize selon la version de PrestaShop).
Voir les 3 versions précédentes
  1. Version 1.1.1 PrestaShop 1.7.6 à 8.x

    Corrections

    • Back-office en anglais de PrestaShop 1.7.6 à 1.7.7 : ces versions ne chargent pas les traductions XLF des modules. Cette branche passe au système de traduction natif des modules (translations/fr.php, translations/ar.php), chargé de 1.7.6 à 8.x.
    • Les accroches du tableau de bord du back-office (displayDashboardTop…) ne sont plus proposées dans l’écran Agencement.
  2. Version 1.1.0 PrestaShop 1.7.6 à 8.x

    Branche 1 : PrestaShop 1.7.6 à 8.x. PrestaShop 9 passe sur la branche main (1.9.0).

    Nouveautés

    • Écran Agencement (Apparence → Agencement des thèmes) : pour chaque accroche d'affichage, ses modules dans l'ordre ; monter, descendre, retirer, ajouter un module qui sait s'afficher sur l'accroche, ajouter une accroche, désactiver un module pour le thème.
    • Brouillon enregistré par thème, appliqué par l'aperçu ; écart avec la version publiée affiché accroche par accroche.
    • Publication dans le theme.yml : global_settings.hooks.modules_to_hook et global_settings.modules.to_disable, sauvegarde datée du fichier précédent dans var/lnk_themepreview/<thème>/, cache JSON du thème purgé.
    • Téléchargement du theme.yml avec le brouillon appliqué, pour un générateur de thèmes.
    • Export exact : seules les accroches qui changent, et celles qui portent un module cité, sont listées ; aucun module inactif ou désactivé n'est cité (PrestaShop activerait tout module cité). tests/test-layout.php rejoue l'algorithme du cœur sur 3 000 cas aléatoires.
    • Traductions XLF français, anglais et arabe (Modules.Lnkthemepreview.Admin).
    • Mise à jour depuis la 1.0 : les cartes de hooks enregistrées deviennent des brouillons.

    Modifications

    • Grille des thèmes et écran Agencement en contrôleur d'administration (ModuleAdminController) et gabarits Smarty, avec les composants du back-office ; plus de page de configuration de module.
    • Compatibilité minimale portée à PrestaShop 1.7.6, première version où un module utilise le système de traduction du back-office.

    Retraits

    • Le back-office Symfony, src/, config/*.yml et vendor/, désormais sur la branche PrestaShop 9.
  3. Version 1.0.0 PrestaShop 1.7.6 à 8.x Correctif de sécurité

    Première version distribuable. La version d'origine était développée pour une seule boutique et déclarée PrestaShop 9 uniquement.

    Sécurité

    • Gardes index.php dans chaque dossier.
    • Le nom de thème est assaini avant de construire un chemin vers theme.yml : la traversée de répertoire et l'octet nul sont neutralisés (couvert par les tests).

    Nouveautés

    • Compatibilité PrestaShop 1.7.0 → 9.x. Vérifié dans les sources de 1.7.8, 8.1 et 9.0 : stylesheetManager, javascriptManager et cccReducer sont des propriétés protected instanciées dans FrontController::__construct avec les mêmes arguments, et SmartyResourceModule, SmartyResourceParent, ThemeRepository et Hook::getHookModuleExecList sont identiques. La surcharge est donc portable telle quelle.
    • Back-office Symfony sur PrestaShop 9 : PrestaShopAdminController, #[AdminSecurity], gabarit Twig, onglet pointant sur la route via Tab::$route_name. PS 1.7 et 8 conservent l'éditeur HelperForm.
    • composer.json + autoloader PSR-4 versionné : PrestaShop 9 inclut modules/<module>/vendor/autoload.php via ContainerBuilder.
    • classes/LnkThemePreviewCompat.php : tout ce qui dépend de la version y est isolé.
    • docs/OVERRIDES.md : ce que le module surcharge, pourquoi aucun hook ne peut le faire, et ce que ça implique pour l'acheteur.
    • Tests unitaires du jeton HMAC et de l'assainissement du nom de thème (15 assertions).

    Corrections

    • Le type object en paramètre et en retour dans la surcharge — PHP 7.2+, alors que PrestaShop 1.7.8 tourne dès PHP 7.1. Le module ne démarrait pas.
    • PreviewSession utilisait la promotion de constructeur avec readonly — PHP 8.1+, donc inutilisable sur 1.7 et 8.
    • <style> et <script> écrits à la main dans le back-office : extraits vers views/css/admin.css et views/js/admin.js, chargés par addCSS / addJS.
    • ps_versions_compliancy passe de 9.0.0 à 1.7.0.0.

Votre panier

Votre panier est vide.