Accueil

Référence développeur · PrestaShop

Websource Bandeau pour PrestaShop — référence développeur

Hooks, réglages, formats de couleur, cookie de fermeture, template et variables CSS du module Websource Bandeau.

Version 1.2.0 · PrestaShop 1.7.7 à 9.x, PHP 7.1+ · Mis à jour le 09/10/2026

Guide utilisateur

Hooks utilisés

HookRôle
displayBannerRendu du bandeau. Le thème Websource l'appelle en tête de templates/_partials/header.tpl ; sur un autre thème, ajouter {hook h='displayBanner'} au début de l'en-tête.
actionFrontControllerSetMediaviews/css/front.css et views/js/front.js, seulement si le bandeau s'affiche.
actionObjectShopAddAfterGreffe les hooks pour une boutique créée après l'installation.
actionWebsourceThemeExport, actionWebsourceThemeImportSection bandeau (version 1) du paquet de thème : réglages, messages, textes par code ISO, images par URL.

Réglages

Clé WSBD_SETTINGS (Configuration, par boutique, groupe ou valeur par défaut), JSON assaini par Websource\Bandeau\Settings\BandeauSettings::sanitize() :

{
  "enabled": 1, "preset": "sobre", "follow_theme": 1, "sticky": 0,
  "align": "center", "font_size": 14, "height": 40, "font": "inherit", "weight": 500,
  "motion": "fade", "speed": 6, "marquee_speed": 5, "pause_hover": 1,
  "pages": ["all"], "devices": ["desktop", "mobile"], "start": "", "end": "",
  "countdown": {"enabled": 0, "end": "", "label": {}, "hide_banner": 1},
  "dismiss": {"enabled": 1, "days": 7},
  "colors": {"mode": "solid", "angle": 90, "bg": "token:brand-700", "bg2": "token:brand-500", "text": "#ffffff", "icon": "token:accent-400", "cta_bg": "token:accent-400", "cta_text": "token:accent-on", "cta_border": "#00000000", "border": "#00000000", "border_w": 0, "cta_radius": 999, "close": "#ffffff"},
  "messages": [{"enabled": 1, "text": {"1": "**Livraison offerte** dès 60 €"}, "icon": "truck", "image": "", "link": {"1": "/promotions"}, "cta": {"1": "J'en profite"}, "new_tab": 0}]
}
ChampValeurs
presetsobre, accent, degrade, promo, contour, sombre
motionstatic, fade, slide, marquee
aligncenter, left, right
fontinherit, system, serif, mono
pagesall, home, category, product, cart, other
devicesdesktop, mobile (seuil 768 px)
messages5 au plus, texte de 220 caractères, bouton de 40 caractères
icontruck, gift, tag, percent, clock, star, shield, heart, bell, megaphone, check, phone, mail, sparkles, fire, info, card, return, leaf
start, end, countdown.endAAAA-MM-JJTHH:MM, heure de la boutique

La clé WSB_SETTINGS de la version 1.0.0 est migrée par Settings\LegacyMigration (elle appartient aussi à websourcebuilder et n'est jamais supprimée).

Couleurs

Formats acceptés (expression régulière stricte, sinon valeur précédente conservée) : #rgb, #rrggbb, #rrggbbaa, rgb(), rgba(), transparent, jeton du thème token:brand-600 ou token:brand-600@80 (opacité en %).

Jetons : brand-50 à brand-900, accent-50 à accent-900, ink, surface, page, line, brand-on, accent-on. Un jeton devient var(--color-brand-600,#2563eb) : repli si le thème ne définit pas la variable. Classes : Color\Color, Color\Palette, Color\Contrast.

Liens

Url\UrlValidator accepte un chemin interne /…, une ancre #…, https://, http://, mailto:, tel: ; refuse javascript:, data: et //hôte. Les liens externes reçoivent target="_blank" et rel="noopener noreferrer".

Formulaire de configuration

POST multipart/form-data sur index.php?controller=AdminModules&configure=websourcebandeau&token=…, bouton submitWsbd, traité par Admin\SettingsFormHandler.

Champs : enabled, preset, follow_theme, sticky, align, font_size, height, font, weight, motion, speed, marquee_speed, pause_hover, pages[], devices[], start, end, cd_enabled, cd_end, cd_label[id_lang], cd_hide, dismiss_enabled, dismiss_days, col[mode], col[angle], col[cta_radius], col[border_w], col[<clé couleur>], msg[i][enabled], msg[i][text][id_lang], msg[i][link][id_lang], msg[i][cta][id_lang], msg[i][new_tab], msg[i][icon], msg[i][remove_image], fichier msg_image_i.

Images : PNG, JPEG, GIF, WebP, 300 Ko, nom aléatoire, dossier modules/websourcebandeau/uploads/ (exécution de scripts interdite par .htaccess).

Fermeture

Cookie wsbd_<id boutique>, valeur = empreinte du contenu (data-hash), durée dismiss.days jours (0 = session). Lu côté serveur (le bandeau n'est pas rendu) et re-vérifié en JavaScript pour les pages servies depuis un cache. Une modification du contenu change l'empreinte : le bandeau réapparaît.

Template et CSS

Template views/templates/hook/bandeau.tpl, surchargeable dans themes/<theme>/modules/websourcebandeau/views/templates/hook/. Variable Smarty $wsbd : preset, motion, align, sticky, dismiss, dismiss_days, style, speed, marquee_speed, pause_hover, hash, cookie, messages[] (html, icon_svg, image, url, cta, new_tab, rel), countdown (iso, label, parts).

Élément racine #wsbd.wsbd (role="region", aria-label="Annonces"), classes wsbd--<preset>, wsbd--m-<motion>, wsbd--a-<align>, wsbd--sticky ; éléments .wsbd__bar, .wsbd__msg (is-active), .wsbd__link, .wsbd__cta, .wsbd__cd, .wsbd__u, .wsbd__pause, .wsbd__close.

Variable CSSRôle
--wsbd-bg, --wsbd-text, --wsbd-iconFond (couleur ou dégradé), texte, icônes.
--wsbd-cta-bg, --wsbd-cta-text, --wsbd-cta-border, --wsbd-cta-radiusBouton.
--wsbd-border, --wsbd-border-w, --wsbd-closeBordure basse, croix.
--wsbd-fs, --wsbd-h, --wsbd-font, --wsbd-weightTaille, hauteur minimale, police, graisse.
--wsbd-offsetPlace réservée en mode fixe.

Limite connue : le mode fixe utilise position: fixed ; si un parent reçoit une transform, le bandeau suit ce parent.

Tests

php tests/run.php (autonome), php tests/integration.php (instance PrestaShop avec le module installé).