Zum Hauptinhalt springen
24 Türchen, hinter jedem ein Angebot. Der Adventskalender ist kein eigenes Modul, sondern eine Darstellungsform für 24 Produkte. Alles, was dafür gebraucht wird, steckt im Template. 20200915 Adventskalender

Zwei Wege zu denselben 24 Produkten

Alles Weitere, also Gestaltung der Türchen, Tagesabhängigkeit und Freischaltung, ist in beiden Fällen gleich und steht weiter unten. Eine Freischaltung durch WEBSALE ist für keinen der beiden Wege nötig.

Weg 1: Als eigene Kategorie

Legen Sie in der Warenwirtschaft eine Kategorie an, beispielsweise “Adventskalender”, und ordnen Sie ihr die 24 Produkte zu. Die Reihenfolge der Zuordnung bestimmt, welches Produkt hinter welchem Türchen liegt. Die Kategorie bekommt ein eigenes Template, beispielsweise ws_category_adventskalender.htm. Alternativ steuern Sie die abweichende Darstellung über eine ST-CatIndex-Klammerung im gewöhnlichen Kategorietemplate. Die Produkte stehen dann in der üblichen Schleife zur Verfügung:

Die Sortierung abschalten

Die Reihenfolge aus der Warenwirtschaft gilt nur, solange der Shop die Liste nicht umsortiert. Setzen Sie die Auswahlliste für die Sortierung deshalb unsichtbar auf das Template und wählen Sie darin “keine Sortierung” vor:
Verwenden Sie ~CAT-SortSelectName~ und ~CAT-NoSortSelect~ statt eines fest geschriebenen Feldnamens. Die internen Namen können sich ändern, die Tags nicht.

Ersatzprodukt für ausverkaufte Türchen

Der zweite Block fehlt in der bisherigen Beschreibung. Ohne ihn bleibt ein Türchen leer, solange das Produkt nicht ausverkauft ist, also im Normalfall. Referenz: PR-SoldOut · PR-LoadData() · ST-CatIndex · Wegweiser: Produktlisten sortieren

Weg 2: Als statische Seite

Legen Sie ein Template an, beispielsweise tpl_adventskalender.htm. Die Produktnummern stehen kommasepariert in einer Textvariablen, die Sie in der Textpflege bearbeiten:
Dieser Weg hat den Vorteil, dass die Reihenfolge ohne Umweg über die Warenwirtschaft festgelegt wird. Wer im nächsten Jahr andere Produkte einsetzen will, ändert eine Zeile in der Textpflege. Referenz: DC-DynamicLoopX · PR-LoadData()

Die Türchen gestalten

Jedes Türchen braucht eine eigene Kennung, damit es im Stylesheet angesprochen und frei auf der Fläche platziert werden kann. Dafür zählt ein Zähler die Durchläufe mit.
Das ~DC-Counter1_reset~ vor der Schleife ist nicht optional. Von DC-Counter1 bis DC-Counter3 gibt es nur drei Stück, und sie gelten für die gesamte Seite. Wurde DC-Counter1 weiter oben schon verwendet, beginnt der Kalender sonst bei einer beliebigen Zahl.In der bisherigen Beschreibung fehlt hinter dem Klassennamen das schließende Anführungszeichen:
Dadurch verschmelzen Klasse und Kennung zu einem einzigen Attributwert, und weder die eine noch die andere lässt sich im Stylesheet ansprechen. Achten Sie beim Übernehmen darauf.
Die Türchen müssen auf der Seite nicht in der Reihenfolge 1 bis 24 stehen. Über das Stylesheet platzieren Sie sie beliebig, beispielsweise mit einem Raster und order oder mit absoluten Positionen. Für den Umschlageffekt eignet sich eine der gängigen Flipcard-Lösungen aus CSS. Referenz: DC-Counter1…3

Welches Türchen heute dran ist

Die Zahl des Türchens entspricht dem Tag im Dezember. Türchen 7 gehört also zum 7. Dezember. Über den Vergleich des Zählers mit dem Tagesdatum bekommt jedes Türchen seinen Zustand.
~DC-DateTime_set~ muss vor der ersten Zeitabfrage stehen.Alle DC-DateTime-Tags beziehen sich auf den Zeitpunkt, den dieses Tag gesetzt hat. In der bisherigen Beschreibung fehlt es, und damit steht die Tagesabfrage auf unsicherem Grund.Die bisherige Beschreibung vergleicht an den beiden unteren Stellen DC-Counter2, erhöht aber nur DC-Counter1. DC-Counter2 bleibt deshalb stehen, und jedes Türchen wird gleich eingestuft. In der Fassung oben ist durchgängig DC-Counter1 eingesetzt.
DC-DateTime_day gibt den Tag ohne führende Null aus, also 7 und nicht 07. Der Zähler ebenso. Der Vergleich mit DC-CompareStringInList() passt deshalb. Verwenden Sie an dieser Stelle nicht ~DC-DateTime_day(true)~, sonst stünde 07 gegen 7 und das heutige Türchen würde nie gefunden. Der Zustand entscheidet nur über die Darstellung. Ob ein Produkt tatsächlich erst am passenden Tag bestellbar ist, regeln Sie darüber nicht. Dafür brauchen die Produkte eigene Gültigkeitszeiträume oder eine Aktion. Referenz: DC-DateTime_set · DC-DateTime_day() · DC-CompareStringInList() · DC-CompareDigitLT()

Den Kalender zeitgesteuert ein- und ausblenden

Vor dem 1. Dezember und nach dem Fest soll statt der Türchen ein Hinweis stehen. Das übernimmt WS-Event().
Die Zeiträume müssen lückenlos aneinander anschließen. In der bisherigen Beschreibung endet der mittlere Zeitraum am 24. Dezember um 00:00 Uhr und der letzte beginnt am 25. Dezember um 00:01 Uhr. Am 24. Dezember, dem Tag des letzten Türchens, wäre damit keiner der drei Blöcke aktiv und die Seite bliebe leer.Achten Sie außerdem darauf, dass die öffnende und die schließende Klammerung genau denselben Zusatz tragen. In der bisherigen Beschreibung steht im schließenden Tag ein Komma mehr.Die Jahreszahlen stehen fest im Template. Der Kalender muss deshalb jedes Jahr angefasst werden. Notieren Sie das dort, wo Sie Ihre jährlichen Aufgaben führen, sonst bleibt der Kalender im nächsten Jahr dauerhaft unsichtbar.
WS-Event() arbeitet mit der Serverzeit. Für einen Kalender, der um Mitternacht umspringen soll, ist das die richtige Grundlage, weil alle Besucher denselben Stand sehen. Referenz: WS-Event()

Die Türchen öffnen

Ein Klick auf das Türchen führt zum Produkt. Dafür genügt ein Link über ~PR-Link~. Alternativ öffnen Sie das Produkt in einem überlagernden Fenster, dann bleibt der Käufer im Kalender. Referenz: PR-Link

Verwandte Themen