Geplande Seizoensdecoratie: volledige gids
Geplande Seizoensdecoratie installeren en configureren: een campagne maken, datums plannen, effecten, banner en kleurenpalet inschakelen, veilig voorvertonen, jaarlijkse herhaling en multistore beheren.
De Geplande Seizoensdecoratie (module dfthemescheduler) kleedt uw PrestaShop-winkel automatisch aan voor elk commercieel hoogtepunt. U maakt campagnes met datums, zoals Kerst, Black Friday, uitverkoop of Valentijnsdag, die een balk, banner, kleurenpalet, visuele effecten en een blok op de startpagina combineren. Elke campagne schakelt zichzelf op de geplande datums in en weer uit, zonder enige geplande taak.
Overzicht
De module berust op een eenvoudige logica: een campagne is een reeks visuele elementen die aan een datumbereik is gekoppeld. Valt de huidige datum binnen dat bereik, dan gaat de campagne « live » en wordt de aankleding op de frontoffice toegepast. Daarbuiten krijgt de winkel zijn gewone uiterlijk terug, zonder sporen na te laten.
Er wordt telkens maar één campagne getoond. Overlappen meerdere campagnes elkaar, dan wint die met de hoogste prioriteit. Zo kunt u een lange kerstcampagne combineren met een Black Friday-piek met hogere prioriteit in het midden.
Elke campagne kan naar keuze de volgende elementen combineren: een balk boven aan de pagina met bericht en afteller, een bannerafbeelding per taal, een palet van zeven kleuren, een sfeereffect (sneeuw, confetti, hartjes, bladeren, sterren, vuurwerk), een HTML-blok op de startpagina en eigen CSS. Al deze elementen zijn optioneel.
Installatie
Installeer de module zoals elke andere PrestaShop-module:
- Ga in de backoffice naar Modules > Modulebeheer.
- Klik op Een module uploaden en selecteer het bestand
dfthemescheduler.zip. - Klik na de installatie op Configureren om de campagneplanner te openen.
De module maakt zijn tabellen aan, registreert zijn weergavehooks en voegt een beheertabblad toe dat via de knop Configureren bereikbaar is. Er is geen enkele externe afhankelijkheid nodig: geen Composer, geen jQuery, geen externe dienst.
Gebruikt u al versie 1.0.0, vervang dan gewoon de map van de module door 1.1.0: het updatescript voegt de kolom voor de bannerpositie automatisch toe en registreert de nieuwe hooks. Opnieuw installeren is niet nodig.
Een campagne aanmaken
Klik in het configuratiescherm op Een campagne toevoegen. Het formulaire loopt van het belangrijkste naar het meest optionele.
Algemene informatie
- Naam van de campagne: interne benaming, bijvoorbeeld « Kerst 2026 » of « Black Friday ». Die wordt nooit aan bezoekers getoond.
- Ingeschakeld: hoofdschakelaar. Een uitgeschakelde campagne wordt nooit getoond, ook niet binnen haar datumbereik.
- Prioriteit: geheel getal. Bij overlap wint de campagne met de hoogste prioriteit. Laat 0 staan als u maar één campagne tegelijk voert.
Datums
De velden Begindatum en Einddatum gebruiken een native datum- en tijdkiezer, nauwkeurig tot op de seconde. De datums worden geïnterpreteerd in de tijd van de server van uw winkel.
Toont uw browser een tekstveld in plaats van de kiezer, dan is het verwachte formaat JJJJ-MM-DD UU:MM:SS, bijvoorbeeld 2026-11-27 00:00:00.
Jaarlijkse herhaling
Vink Elk jaar herhalen aan zodat een campagne jaar na jaar automatisch op dezelfde datums terugkeert. Alleen de maand, de dag en het uur worden vergeleken: het jaartal wordt genegeerd.
De module gaat van nature om met campagnes die over de jaarwisseling heen lopen. Een campagne van 20 december tot 6 januari werkt probleemloos en wordt elke winter opnieuw actief, zonder dat u die hoeft te splitsen.
Bij een herhalende campagne is de controle « einddatum na begindatum » bewust uitgeschakeld, omdat het einde in het volgende kalenderjaar kan vallen.
Balk boven aan de pagina
Het veld Bericht van de balk (meertalig) toont een balk boven aan alle pagina’s. Het accepteert eenvoudige HTML: links en vet. Laat het leeg om de balk te verbergen.
Schakel Afteller tonen in om een realtime aftelling tot de einddatum van de campagne toe te voegen, in de vorm « 12d 04:31:07 ». Bij een herhalende campagne richt de aftelling zich automatisch op de eerstvolgende einddatum.
De kleuren van de balk (achtergrond en tekst) stelt u in in het gedeelte Palet.
Bannerafbeelding
U kunt per taal een andere banner uploaden, met een klikbare link en een alternatieve tekst. De aanvaarde formaten zijn jpg, png, gif en webp. Een royale breedte is aan te raden (bijvoorbeeld 1920 × 300).
Het veld Positie van de banner bepaalt in welke zone van het thema de afbeelding verschijnt:
- Bovenbalk, displayBanner: standaardpositie, boven aan de pagina.
- Onder de header, volle breedte, displayNavFullWidth: net onder het hoofdmenu.
- Boven de inhoud, displayWrapperTop: boven de hoofdinhoud van de pagina.
Verschijnt uw banner niet, dan gebruikt uw thema doorgaans de gekozen hook niet. Probeer eenvoudigweg een andere positie uit de lijst.
Kleurenpalet
De campagne stelt zeven kleuren beschikbaar: primair, secundair, links, achtergrond van de header, achtergrond van de footer, achtergrond van de balk en tekst van de balk.
Deze zeven waarden worden altijd als CSS-variabelen aangeboden (--dfts-primary, --dfts-secondary en zo verder), die uw thema of uw eigen CSS kan hergebruiken.
Schakel Palet op het thema toepassen in zodat de module deze kleuren zelf toepast op knoppen, links, header en footer. Laat de optie uit als u de aankleding liever uitsluitend via de CSS-variabelen en uw eigen stylesheet stuurt.
Visuele effecten
Het veld Visueel effect biedt zes animaties in pure JavaScript, getekend op een schermvullend canvas: sneeuw, confetti, hartjes, herfstbladeren, fonkelende sterren en vuurwerk. Kies Geen om het effect uit te schakelen.
De Intensiteit (laag, gemiddeld, hoog) regelt de dichtheid van de deeltjes. Het aantal deeltjes is begrensd om de prestaties te sparen.
De effecten worden alleen geladen wanneer er een campagne actief is. Ze schakelen zichzelf uit voor bezoekers die de systeemvoorkeur « verminderde beweging » hebben aangezet, en gaan op pauze zodra het tabblad niet zichtbaar is.
Blok op de startpagina en eigen CSS
Het veld Blok startpagina (meertalig, visuele editor) toont vrije HTML-inhoud op de startpagina gedurende de hele campagne: ideaal voor een aanbieding, een uitgebreide promobanner of een seizoensbericht.
Het veld Eigen CSS laat u verder gaan. De CSS wordt vóór injectie opgeschoond (pogingen om buiten de stijlcontainer te breken worden onschadelijk gemaakt) en wordt alleen geladen wanneer de campagne actief is. U kunt er de variabelen --dfts-* in gebruiken.
Beveiligde voorvertoning
Elke campagne beschikt over een voorvertoningslink die is beveiligd met een uniek token van 32 tekens. Klik in de lijst met campagnes op de knop Preview: de winkel opent met de aankleding van de campagne toegepast, precies zoals uw bezoekers die op de dag zelf te zien krijgen.
De voorvertoning blijft actief terwijl u navigeert: u kunt alle pagina’s van de winkel doorlopen. Linksonder verschijnt een vaste balk « Voorvertoning: {naam}, Afsluiten »; klik op Afsluiten om naar de normale weergave terug te keren.
De voorvertoning is volledig onzichtbaar voor uw bezoekers: zij wordt alleen geactiveerd door de geheime link met het juiste token. Zo kunt u uw kerstaankleding midden in augustus controleren of de link ter goedkeuring met een klant delen, zonder dat er iets verandert voor het publiek.
Jaarplanner
Boven aan de lijst met campagnes toont de backoffice een beknopt dashboard: aantal campagnes, actieve campagnes, de campagne die nu « live » staat en de eerstvolgende campagne met het aantal resterende dagen.
Daaronder geeft een tijdlijn over twaalf maanden elke campagne weer als een gekleurde balk op basis van haar datums. Een verticale markering geeft de huidige dag aan, herhalende campagnes die over de jaarwisseling lopen worden in twee segmenten getoond, en elke balk is aanklikbaar om de campagne meteen te bewerken.
Dupliceren, exporteren, importeren
De actie Dupliceren in de lijst maakt een kopie van de campagne met een nieuw voorvertoningstoken, standaard uitgeschakeld, waarvan de bannerafbeeldingen fysiek worden meegekopieerd: de ene verwijderen heeft nooit gevolgen voor de andere. De winkelkoppelingen blijven behouden.
De knop JSON exporteren (in de werkbalk) downloadt al uw campagnes naar een bestand. Met het formulier JSON importeren op het dashboard voert u dat bestand in op een andere winkel. Geïmporteerde campagnes komen standaard uitgeschakeld binnen; de bannerafbeeldingen zitten niet in de export.
Multistore en meertaligheid
In een multistore-omgeving koppelt u elke campagne via het gedeelte Winkelkoppeling van het formulier aan de winkels van uw keuze. Een campagne verschijnt alleen op de winkels waaraan zij gekoppeld is.
Het bericht van de balk, de banner (afbeelding, link, alternatieve tekst) en het blok op de startpagina zijn per taal vertaalbaar. Vul elke taal in via de taaltabbladen van het formulier.
Integratie voor themaontwikkelaars
Wanneer een campagne actief is, voegt de module klassen toe aan de body-tag: dfts-active, dfts-campaign-{id}, dfts-effect-{effect}, en dfts-preview in voorvertoningsmodus. Zo kunt u uw CSS nauwkeurig richten.
Zodra het script is geïnitialiseerd, wordt op het document ook een JavaScript-gebeurtenis dfts:ready uitgestuurd, met de configuratie van de campagne in de detail-eigenschap. In combinatie met de CSS-variabelen --dfts-* maakt dat maatwerkintegraties mogelijk zonder de module aan te raken.
Prestaties
De module is licht van opzet. Het bepalen van de actieve campagne gebeurt in één enkele SQL-query die per weergave wordt gememoïseerd. De CSS en JavaScript van de frontoffice worden alleen geladen wanneer er daadwerkelijk een campagne actief is. Er wordt geen enkele class-override gebruikt, uitsluitend native PrestaShop-hooks.
Problemen oplossen
De banner verschijnt niet
Uw thema gebruikt waarschijnlijk de gekozen positiehook niet. Wijzig de Positie van de banner naar een andere waarde uit de lijst.
De kleuren worden niet toegepast
Controleer of de optie Palet op het thema toepassen aanstaat. Staat die aan maar blijven bepaalde elementen ongewijzigd, dan gebruikt uw thema eigen selectors: voeg enkele regels toe in het veld voor eigen CSS, steunend op de variabelen --dfts-*.
Het effect animeert niet
De animaties staan bewust uit voor bezoekers die verminderde beweging in hun besturingssysteem hebben aangezet, en gaan op pauze wanneer het tabblad op de achtergrond staat. Controleer ook of er een ander effect dan « Geen » is gekozen.
Twee campagnes overlappen elkaar
Dat is het verwachte gedrag: er verschijnt maar één campagne, die met de hoogste prioriteit. Pas de prioriteiten aan om te bepalen welke voorgaat.
De campagne start niet op het geplande tijdstip
De datums worden geïnterpreteerd in de tijd van de server, die van uw lokale tijd kan afwijken. Controleer de tijdzone van uw winkel in de PrestaShop-instellingen.