Wix Blocks Tutorial: Ein Countdown-Widget erstellen
Was das Template beinhaltet
- Ein Countdown-Widget. Vervollständige das Design und programmiere die Funktionen und Eigenschaften.
- Ein Registrierungs-Widget, das du fertigstellen und zu deinem Countdown-Widget hinzufügen musst.
- Einige öffentliche Dienstprogramme, mit denen du die Funktionalität deines Widgets implementieren kannst.
- Backend-Code, mit dem du die Funktionen deiner E-Mail-Benachrichtigung implementieren kannst.
Schritt 1 | Das Design deines Widgets fertigstellen
- Öffne die Vorlage.
- Klicke unter Widgets und Designauf Countdown.
- Klicke in der oberen Leiste auf Elemente hinzufügen .
- Wähle Text aus. Ziehe eine Titelbox im 48px-Format in dein Widget.
- Klicke auf Text bearbeiten und ändere den Text zu SS.
- Ändere mit dem Inspektor die Textfarbe zu Weiß und zentriere den Text.
- Wähle das Textfeld aus und verschiebe es mit in das Quadrat über der Beschriftung SEKUNDEN.
- Ändere die Größe mit .
Schritt 2 | API-Eigenschaften (Properties) deines Widgets hinzufügen und definieren
- endDate: Definiert das Enddatum, an dem der Countdown Null erreicht. Mithilfe dieser Eigenschaft (Property) können Website-Ersteller das Enddatum ändern, sodass das Widget für ihre Website angepasst werden kann.
- emailId: Legt die E-Mail-Nachricht fest, die an Benutzer gesendet wird, wenn sie sich für eine Benachrichtigung anmelden.
Deinen Widget-Elementen eine ID geben
- Klicke auf das Textfeld.
- Gib dem Textfeld im Bereich Eigenschaften & Ereignisse eine ID. In diesem Beispiel ist die ID
secondsTxt
.Beachte, dass den anderen Elementen bereits IDs gegeben wurden.
Definiere die Properties „endDate“ und „emailId“
- Klicke in der API auf Neue Eigenschaft hinzufügen .
- Gib den Namen der Eigenschaft ein,
endDate
. - Wähle den Typ der Eigenschaft, in diesem Fall Datum und Uhrzeit (das Datum wird im US-Format dd/mm/yyyy angezeigt).
- Wähle einen Standardwert. (Der Ersteller der Website kann diesen Wert bei der Installation deines Widgets im Editor ändern).
- Fahre mit der Maus über Eigenschaften und klicke auf das -Symbol, das nun erscheint.
- Erstelle eine weitere Eigenschaft (Property) für die Trigger-E-Mail und nenne sie
emailId
. Das ist eine Eigenschaft (Property) vom Typ Text ohne Standardwert.
Schritt 3 | Code hinzufügen, damit dein Widget funktioniert
Deine Dienstprogramme importieren
- Klicke auf das Menü von Öffentlich & Backend .
- Wähle unter Öffentlich die Option dateUtils.jsaus. Dadurch wird die Datei in der Codenansicht geöffnet.
Den Code ändern, um deine neue Funktion zu berücksichtigen
Erstelle die Funktion updateTime()
, damit dein Countdown-Widget den Zähler aktualisiert. Deine neue Funktion sollte wie folgt aussehen:
1$widget.onPropsChanged(function () { }); function updateTime() { const {days, hours, minutes, seconds} = getRemainingTime (new Date($widget.props.endDate)); $w('#daysTxt').text = days.toString(); $w('#hoursTxt').text = hours.toString(); $w('#minutesTxt').text = minutes.toString(); $w('#secondsTxt').text = seconds.toString(); }
Du musst auch ein Intervall festlegen, in dem das Widget die verbleibende Zeit aktualisiert.
Füge dazu den folgenden Code zu deiner Funktion onReady()
hinzu. Dadurch wird das Widget jede Sekunde aktualisiert.
1$w.onReady(function () { updateTime(); if (wixWindow.viewMode !== "Editor") { setInterval(updateTime, 1000); } });
Eine Vorschau deines Widgets ansehen und seine API-Eigenschaften (Properties) testen
- Klicke auf Vorschau. Dein Widget sollte jede Sekunde bis zum Enddatum herunterzählen.
- Klicke auf API-Eigenschaften testen. Es wird ein Panel mit dem Standardwert angezeigt, den du zuvor festgelegt hast.
- Ändere das Datum, um zu prüfen, ob das Widget reagiert und bis zum neuen Datum heruntergezählt wird.
Schritt 4 | Ein benutzerdefiniertes Panel erstellen und programmieren
Ein benutzerdefiniertes Panel erstellen
- Klicke in der oberen Leiste auf den Tab Panels.
- Klicke auf Panel erstellen.
- Gib deinem Panel einen Namen In diesem Beispiel „Meine Einstellungen“.
- Klicke auf Panel erstellen.
- Klicke auf + Element hinzufügen.
- Wähle Texteingabe. Dies gilt für das Enddatum.
- Klicke auf Eigenschaften & Ereignisse . Gib deiner Texteingabe eine ID -
endDateInput
. - Wähle das Textelement aus und klicke auf Einstellungen.
- Füge „Enddatum“ in das Feld Feldname hinzu.
- Lösche den Text im Feld Standardtext.
- Lege den Platzhaltertext auf „Enddatum“ fest.
- Füge eine Abschnitts-Trennlinie hinzu.
- Klicke auf Einstellungen. Füge im Feld Abschnittstitel einen Titel hinzu. In diesem Beispiel „Trigger-E-Mail“.
- Füge eine weitere Texteingabe hinzu:Gib deiner Texteingabe eine ID -
emailIdInput
. - Wähle das Textelement aus und klicke auf Einstellungen.
- Füge im Feld Feldname den Namen „E-Mail-ID“ hinzu.
- Lösche den Text im Feld Standardtext.
- Lege den Platzhaltertext auf „E-Mail-ID“ fest.
Code zu deinem individuellen Panel hinzufügen
Damit Panel-Elemente mit deinem Widget interagieren und Aktionen im Editor ausführen können, kannst du das Velo-Modul wix-widget
in deinem Code verwenden.
Um die Widget-API zu verwenden, importiere wixWidget
aus dem Modul wix-widget
.
Füge den folgenden Code vor der Funktion onReady()
ein.
1importiere wixWidget von 'wix-widget';
Du möchtest, dass dein Widget aktualisiert wird, wenn sich die Werte ändern, daher musst du ein onChange
-Ereignis hinzufügen. Zusätzlich musst du async
zu deiner Funktion onReady ()
hinzufügen, da du einige asynchrone Funktionen verwenden wirst.
Deine onReady()
-Funktion sollte wie folgt aussehen:
1$w.onReady(async function () { const { endDate, emailId } = await wixWidget.getProps(); $w('#endDateInput').value = endDate; $w('#emailIdInput').value = emailId; $w('#endDateInput').onChange(e => { wixWidget.setProps({ endDate: e.target.value }); }); $w('#emailIdInput').onChange(e => { wixWidget.setProps({ emailId: e.target.value }); }); });
Schritt 5 | Widget konfigurieren
Dein individuelles Panel zur schwebenden Aktionsleiste deines Widgets hinzufügen
- Klicke in der oberen Leiste auf Konfiguration.
- Wähle dein Countdown-Widget aus. Eine schwebende Aktionsleiste wird angezeigt.
- Klicke auf Einstellungen.
- Klicke auf Aktionsbutton-Einstellungen . Das Panel für die Einstellungen der Hauptaktionen wird angezeigt.
- Wähle aus dem Aufklappmenü Meine Einstellungen, um dein individuelles Panel auszuwählen.
Schritt 6 | Ein zweites (inneres) Widget hinzufügen und die Registrierungslogik implementieren
Dein Registrierungs-Widget zum Countdown-Widget hinzufügen
- Wähle im Tab Design dein Countdown-Widget aus.
- Klicke auf Weitere Optionen und wähle Widget hinzufügen aus.
- Wähle Registrierung. Dein inneres Widget erscheint in der Mitte deines Countdown-Widgets.
- Ziehe dein inneres Widget, um es an den unteren Abschnitt deines Countdown-Widgets anzupassen.
- Ändere unter Eigenschaften & Ereignisse die Registrierung .
Die Registrierungslogik im Code des Haupt-Widgets implementieren
Du implementierst den Code für die Nutzerregistrierung im Haupt-Widget (Countdown) mit dem vorinstallierten Dienstprogramm contactUtils.js
. Dieses Dienstprogramm verwendet die API von wix-crm
, um deinen Kontakt mit deiner Sammlung zu verbinden.
Dieser Code leitet die Informationen zu deiner Sammlung weiter. Er verwendet das Dienstprogramm, das du später beim Erstellen einer Sammlung verwenden wirst. Du kannst getSubscriptionsCollectionName()
im Code sehen.
- Erstelle eine neue asynchrone Funktion.
- Nenne sie
onSubmit
. Die Funktion verwendet das Dienstprogramm zum Erstellen von Kontakten.
Dein Code sollte so aussehen:
1 async function onSubmit({ email }) { const contact = await createContact(email); wixData.insert(getSubscriptionsCollectionName(), { endDate: new Date($widget.props.endDate), emailId: $widget.props.emailId, contactId: contact.contactId }); }
2
Für das onSubmit-Ereignis anmelden
Füge in deinem onReady()
, nach deiner Funktion updateTime()
den folgenden Code hinzu:
1$w('#registration').onSubmit(onSubmit);
Schritt 7 | Deine App erstellen und einen Namespace hinzufügen
Dein erster Build
- Klicke auf Build.
- Gib einen Namespace für deine App ein und klicke auf Weiter.
- Wähle Hauptversion und klicke auf Build.
- Du erhältst eine Meldung, dass Version 1.0 erstellt ist. Klicke auf Okay, um mit der Arbeit an deiner App fortzufahren.
Schritt 8 | Eine Sammlung zu deinem Widget hinzufügen
Das Template hat ein vorinstalliertes Dienstprogramm mit dem Namen getSubscriptionsCollectionName()
. Du findest es unter Public & Backend im Ordner collectionUtils.js. Das Dienstprogramm erstellt den vollständigen Namen der Sammlung, damit du nicht jedes Mal deinen vollständigen App-Namespace hinzufügen musst, wenn du im Code darauf verweist.
Das Dienstprogramm deiner Sammlung konfigurieren
- Klicke unter Öffentlich & Backend auf collectionUtils.js.
- Füge den Namespace deiner App hinzu.
1
2const NAMESPACE = '@mywixaccount/my-app-namespace'; export function getSubscriptionsCollectionName() { return `${NAMESPACE}/subscriptions`; }
Deine Sammlung erstellen
- Klicke auf Datenbanken
- Klicke auf + Kategorie erstellen
- Gib deiner Sammlung einen aussagekräftigen Namen. In diesem Beispiel Subscriptions (Abonnements).
- Klicke auf Erstellen.
Felder zu deiner Sammlung hinzufügen
- Klicke auf um ein Feld zu deiner Sammlung hinzuzufügen.
- Wähle aus dem Aufklappmenü Feldtyp die Option Datum aus.
- Gib endDate in das Feld Feldname ein. Personen können sich bis zum letzten Datum noch anmelden.
- Klicke auf Speichern.
- Füge nun ein Feld für Texttyp hinzu und nenne es emailId für die Trigger-E-Mail.
- Füge ein weiteres Feld für Text hinzu und nenne es contactId. Hier werden die Kontaktdaten der registrierten Benutzer gespeichert.
- Erstelle nun ein Feld vom Typ Boolean und nenne es notification. Dadurch werden Abonnenten nur einmal benachrichtigt.
Berechtigungen für deine Sammlung einrichten
- Klicke im Datenbanken auf Weitere Optionen für deine Sammlung.
- Wähle Berechtigungen & Datenschutz.
- Wähle das Aufklappmenü Kann Inhalte hinzufügen.
- Wähle Jeder.
- Klicke auf Speichern.
Schritt 9 | Deine App auf einer Website im Editor von Wix installieren
- Nachdem du die App erstellt hast, öffne die Website.
- Klicke auf Apps hinzufügen .
- Klicke auf Eigene Apps. Eine Liste all deiner Apps wird angezeigt.
- Wähle deine App aus der Liste Verfügbare Apps aus.
- Klicke auf App installieren.
- Klicke auf Elemente hinzufügen .
- Wähle Meine Widgets aus.
- Doppelklicke auf dein Widget, um es zu deiner Website hinzuzufügen.
E-Mail-ID festlegen
- Öffne in der oberen Leiste Meine Verwaltung über das Website-Menü.
- Öffne Trigger-E-Mails in den Entwickler-Tools.
- Klicke auf Loslegen.
- Gib einen Betreff ein.
- Gestalte die E-Mail mit den Editor-Tools.
- Klicke auf Speichern & veröffentlichen.
- Füge die Absenderangaben, den Namen des Absenders sowie die Antwort-E-Mail-Adresse hinzu und klicke auf Speichern.
- Klicke auf Alles klar.
- Klicke erneut auf Speichern & veröffentlichen. Du erhältst einen generierten Identifikationscode, der zu der E-Mail verlinkt, die du so gestaltet hast, dass sie an jeden gesendet wird, der sich registriert.
- Gib diesen Code in deinem individuellen Panel in das Feld E-Mail-ID ein.
Backend-Code im Editor von Wix verwenden, um Abonnenten zu benachrichtigen
Benachrichtigungsfunktion aufrufen
- Klicke im Editor von Wix unter Backend im Ordner Öffentlich & Backend auf + Neues Webmodul.
- Nenn es
backend.jsw
. - Importiere im Code-Abschnitt deiner Website unter backend.jsw die Backend-Funktion.
Dein Code sollte so aussehen:
1import { notify } 'myWixId/my-application-name-backend';
Erstelle nun die Exportfunktion invokeNotify
in backend.jsw im Codeabschnitt deiner Website.
Dein Code sollte so aussehen:
1export function invokeNotify() { return notify (); }
- Klicke auf Hinzufügen in Backend
- Klicke auf Scheduled-Jobs hinzufügen (geplanten Job hinzufügen)Füge den folgenden Code unter Jobs.config im Code-Abschnitt deiner Website hinzu. In diesem Beispiel wird die Benachrichtigungsfunktion 10 Minuten nach jeder vollen Stunde aufgerufen.
1{ "jobs": [{ "functionLocation": "/backend.jsw", "functionName": "invokeNotify", "description": "", "executionConfig": { "cronExpression": "10 * * * *" } }] }
Schritt 10 | App testen
- Veröffentliche deine Website.
- Registriere dich, um eine E-Mail-Benachrichtigung zu erhalten.
- Gehe zurück zum Editor und überprüfe deine Sammlung.
- Es gibt einen neuen Abonnenten. Wenn die E-Mail-Benachrichtigung gesendet wird, siehst du auch ein Häkchen im Feld Benachrichtigt.