Tutorial Wix Blocks: creare un widget per il conto alla rovescia
Cosa troverai nel template
- Un widget per il conto alla rovescia. È però necessario completare il design e codificare le sue funzioni e proprietà
- Un widget di registrazione che devi completare e aggiungere al widget per il conto alla rovescia
- Alcuni programmi di utility che puoi utilizzare per implementare le funzionalità del tuo widget
- Codice di backend che puoi utilizzare per implementare le funzioni delle tue email di notifica
Passaggio 1 | Completa il design del tuo widget
- Apri il template
- Clicca su Countdown (Conto alla rovescia) sotto Widget e design
- Clicca su Aggiungi elementi nella barra in alto
- Seleziona Testo. Trascina una casella Titolo da 48 px nel widget
- Clicca su Modifica testo e modifica il testo in SS
- Cambia il colore del testo in bianco e centra il testo utilizzando il pannello Ispezione
- Seleziona la casella di testo e spostala nel quadrato della griglia sopra l'etichetta Seconds
- Ridimensiona con
Passaggio 2 | Aggiungi e definisci le proprietà API del tuo widget
- endDate: definisce la data di fine quando il conto alla rovescia raggiunge lo zero. Utilizzando questa proprietà, i creatori del sito possono modificare la data di fine in modo che il widget sia personalizzato per il loro sito
- emailId: determina il messaggio email che verrà inviato agli utenti quando si iscrivono per ricevere una notifica
Dai un ID agli elementi del widget
- Clicca sulla casella di testo
- Assegna un ID alla casella di testo nel pannello Proprietà ed eventi . In questo esempio l'ID è
secondsTxt
. Nota che agli altri elementi sono già stati assegnati ID
Definisci le proprietà "endDate" e "emailId"
- Clicca su Aggiungi nuova proprietà nel pannello API
- Inserisci il nome della proprietà,
endDate
- Seleziona il tipo di proprietà, in questo caso Data e ora (la data viene visualizzata nel formato USA mm/gg/aaaa)
- Seleziona un valore predefinito (il creatore del sito sarà in grado di modificarlo quando installerà il tuo widget nell'editor)
- Passa il mouse su Proprietà e clicca sull'icona visualizza
- Crea un'altra proprietà per l'email trigger e chiamala
emailId
. Si tratta di una proprietà di tipo testo, senza valori predefiniti
Passaggio 3 | Aggiungi un codice per far funzionare il tuo widget
Importa i tuoi programmi di utility
- Clicca sul menu Pubblico e backend
- Seleziona dateUtils.js in Pubblico. Questo apre il file nel pannello del codice
Cambia il codice per aggiornarlo con la tua nuova funzione
Crea una funzione, updateTime()
, in modo che il widget del conto alla rovescia aggiorni il conteggio. La tua nuova funzione dovrebbe apparire così:
1$widget.onPropsChanged(function () {
2});
3 function updateTime() {
4 const {days, hours, minutes, seconds} = getRemainingTime (new Date($widget.props.endDate));
5 $w('#daysTxt').text = days.toString();
6 $w('#hoursTxt').text = hours.toString();
7 $w('#minutesTxt').text = minutes.toString();
8 $w('#secondsTxt').text = seconds.toString();
9 }
È inoltre necessario impostare un intervallo per la frequenza con cui il widget aggiorna il tempo rimanente.
Per fare ciò, aggiungi il seguente codice nella tua funzione onReady()
. Questo aggiorna il widget ogni secondo.
1$w.onReady(function () {
2 updateTime();
3 if (wixWindow.viewMode !== "Editor") {
4 setInterval(updateTime, 1000);
5 }
6});
Visualizza l'anteprima del widget e testa le proprietà API
- Clicca su Anteprima Il widget dovrebbe effettuare un conto alla rovescia ogni secondo fino alla data della fine
- Clicca su Test delle proprietà API. Viene visualizzato un pannello con il valore predefinito impostato in precedenza
- Modifica la data per verificare se il widget risponde ed esegue il conto alla rovescia fino alla nuova data
Passaggio 4 | Crea e codifica un pannello personalizzato
Crea un pannello personalizzato
- Clicca sulla scheda Pannelli nella barra in alto
- Clicca su Crea pannello
- Dai un nome alla tua pannello. In questo esempio, "My settings" (Le mie impostazioni)
- Clicca su Crea pannello
- Clicca su + Aggiungi elemento
- Seleziona Input di testo. Sarà per la data della fine
- Clicca su Proprietà ed eventi . Dai un ID al tuo input di testo -
endDateInput
- Seleziona l'elemento di testo e clicca su Impostazioni
- Aggiungi il nome "End Date" nel campo Titolo campo
- Elimina il testo nel campo Testo predefinito
- Imposta il testo placeholder su "Data della fine"
- Aggiungi un divisore di sezione
- Clicca su Impostazioni. Aggiungi un titolo nel campo Sezione Titolo. In questo esempio, "Triggered email" (Email trigger)
- Aggiungi un altro input di testo Dai al tuo input di testo un ID -
emailIdInput
. - Seleziona l'elemento di testo e clicca su Impostazioni
- Aggiungi il nome "ID email" nel campo Titolo campo
- Elimina il testo nel campo Testo predefinito
- Imposta il testo placeholder su "ID email"
Aggiungi il codice al pannello personalizzato
Per consentire agli elementi del pannello di interagire con il widget ed eseguire azioni nell'Editor, puoi utilizzare nel tuo codice il modulo Velo wix-widget
.
Per utilizzare l'API Widget, importa wixWidget
dal modulo wix-widget
.
Inserisci il codice seguente prima della funzione onReady()
1import wixWidget from 'wix-widget';
Vuoi che il tuo widget si aggiorni quando i valori cambiano, quindi è necessario registrare un evento onChange
. Devi anche aggiungere async
nella tua funzione onReady ()
poiché utilizzerai alcune funzioni asincrone.
La tua funzione onReady()
dovrebbe apparire così:
1$w.onReady(async function () {
2 const { endDate, emailId } = await wixWidget.getProps();
3 $w('#endDateInput').value = endDate;
4 $w('#emailIdInput').value = emailId;
5
6 $w('#endDateInput').onChange(e => {
7 wixWidget.setProps({ endDate: e.target.value });
8 });
9
10 $w('#emailIdInput').onChange(e => {
11 wixWidget.setProps({ emailId: e.target.value });
12 });
13});
Passaggio 5 | Configura il tuo widget
Aggiungi il tuo pannello personalizzato alla barra delle azioni del widget
- Clicca su Configurazione nella barra in alto
- Seleziona il widget per il conto alla rovescia. Viene visualizzata una barra azioni
- Clicca su Impostazioni
- Clicca su Impostazioni del tasto azione. Viene visualizzato il pannello Impostazioni delle azioni principali
- Seleziona Le mie impostazioni dall'elenco a tendina per selezionare il tuo pannello personalizzato
Passaggio 6 | Aggiungi un secondo widget (interno) e implementa la logica per la registrazione
Aggiungi il widget di registrazione al widget del conto alla rovescia
- Nella scheda Design, seleziona il widget per il conto alla rovescia
- Clicca su Altre opzioni e seleziona Aggiungi widget
- Seleziona Registration. Il tuo widget interno viene visualizzato al centro del widget del conto alla rovescia
- Trascina e allunga il widget interno per adattarlo alla sezione inferiore del widget del conto alla rovescia
- Cambia il suo ID in
Registration
in Proprietà & Eventi
Implementa la logica di registrazione nel codice del widget principale
Implementerai il codice per la registrazione degli utenti nel widget principale (conto alla rovescia), utilizzando utility preinstallata contactUtils.js
. Usa l'API wix-crm
per collegare il tuo contatto alla tua raccolta
Questo codice indirizza le informazioni alla tua raccolta. Utilizza l'utilità che utilizzerai in seguito quando creerai una raccolta. Puoi vedere getSubscriptionsCollectionName()
nel codice.
- Crea una nuova funzione asincrona
- Chiamala
onSubmit
. Userà l'utility di creazione del contatto
Il tuo codice dovrebbe apparire così:
1 async function onSubmit({ email }) {
2 const contact = await createContact(email);
3 wixData.insert(getSubscriptionsCollectionName(), {
4 endDate: new Date($widget.props.endDate),
5 emailId: $widget.props.emailId,
6 contactId: contact.contactId
7 });
8 }
9
Registra per l'evento onSubmit
Nel tuo onReady()
, dopo la funzione updateTime()
, aggiungi il seguente codice:
1$w('#registration').onSubmit(onSubmit);
Passaggio 7 | Crea la tua app e assegnagli un Namespace
La tua prima build
- Clicca su Crea
- Inserisci uno spazio nomi per la tua app e clicca su Avanti
- Seleziona Versione principale e clicca su Crea
- Verrà visualizzato un messaggio che ti informa che la versione 1.0 è stata creata. Clicca su OK per continuare a lavorare sulla tua app
Passaggio 8 | Aggiungi una raccolta al tuo widget
Il template ha un'utility preinstallata chiamata getSubscriptionsCollectionName()
, in collectionUtils.js sotto Pubblico e backend. Costruisce il nome completo della raccolta in modo da non dover aggiungere lo spazio dei nomi completo dell'app ogni volta che vi fai riferimento nel codice.
Configura il tuo programma di utility di raccolta
- Clicca su collectionUtils.js sotto Pubblico e backend
- Aggiungi il namespace alla tua app
1
2const NAMESPACE = '@mywixaccount/my-app-namespace';
3
4export function getSubscriptionsCollectionName() {
5 return `${NAMESPACE}/subscriptions`;
6}
Crea la tua raccolta
- Clicca su Database
- Clicca su + Crea raccolta
- Dai un nome alla tua raccolta. In questo esempio, Subscriptions (Abbonati/Iscrizioni)
- Clicca su Crea
Aggiungi campi alla tua raccolta
- Clicca su per aggiungere un campo alla raccolta
- Seleziona Data dal menu a tendina Tipo di campo
- Inserisci endDate nel campo Nome. Questa sarà l'ultima data fino alla quale le persone potranno registrarsi.
- Clicca su Salva
- Ora aggiungi un campo di testo e chiamalo emailId per l'email trigger
- Aggiungi un altro campo di testo e chiamalo contactId. In questo modo verranno memorizzati i dettagli di contatto degli utenti registrati
- Ora crea un campo di tipo booleano e chiamalo notified (Notificato). Ciò garantisce che gli iscritti vengano avvisati una sola volta
Imposta le autorizzazioni per la raccolta
- Clicca su Altre opzioni per la raccolta dal menu Database
- Seleziona Autorizzazioni e Privacy
- Seleziona il menu a tendina Può aggiungere contenuti
- Seleziona Tutti
- Clicca su Salva
Passaggio 9 | Installa la tua app su un sito nell'Editor Wix
- Dopo aver creato la tua app, apri il tuo sito web
- Clicca su Aggiungi app
- Clicca su App personalizzate. Vedrai un elenco di tutte le tue app
- Seleziona la tua app dall'elenco App disponibili
- Clicca su Installa l'app
- Clicca su Aggiungi elementi
- Seleziona I miei widget
- Clicca due volte sul widget per aggiungerlo al tuo sito
Imposta un ID email
- Apri Il mio pannello di controllo dal menu Sito nella barra in alto
- Vai a Email trigger negli Strumentiper gli sviluppatori
- Clicca su Inizia
- Inserisci un oggetto
- Progetta il design dell'email utilizzando gli strumenti dell'Editor
- Clicca su Salva e pubblica
- Aggiungi i dettagli del mittente, il Nome mittente e l'Email di risposta e clicca su Salva
- Clicca su OK
- Clicca di nuovo su Salva e pubblica. Ricevi un codice identificativo generato che si collega all'email che hai progettato in modo che venga inviato a chiunque si registri
- Inserisci questo codice nel pannello personalizzato nel campo ID email
Usa il codice di backend nell'Editor Wix per avvisare gli iscritti
Richiama la tua funzione di notifica
- Clicca su + Nuovo modulo web sotto Backend in Pubblico e backend nell'Editor Wix
- Chiamalo
backend.jsw
- Importa la funzione di backend nella sezione codice del tuo sito sotto backend.jsw
Il tuo codice dovrebbe apparire così:
1import { notification } 'myWixId/my-application-name-backend';
Ora crea una funzione di esportazione invokeNotify
in backend.jsw nella sezione codice del tuo sito.
Il tuo codice dovrebbe apparire così:
1export function invokeNotify() {
2 return notify ();
3}
- Clicca su Aggiungi nel backend
- Clicca su Aggiungi attività pianificate Aggiungi il seguente codice sotto jobs.config nella sezione codice del tuo sito. In questo esempio la funzione di notifica viene richiamata ogni ora dopo 10 minuti
1{
2 "jobs": [{
3 "functionLocation": "/backend.jsw",
4 "functionName": "invokeNotify",
5 "description": "",
6 "executionConfig": {
7 "cronExpression": "10 * * * *"
8 }
9 }]
10}
Passaggio 10 | Prova l'app
- Pubblica il tuo sito
- Registrati per ricevere una notifica via email
- Torna all'Editor e controlla la tua raccolta
- Puoi vedere che c'è un nuovo iscritto. Quando l'email di notifica viene inviata, vedrai anche un segno di spunta nel campo notifica