Tutoriel Wix Blocks : Créer un widget de compte à rebours
Ce que vous obtenez dans le template
- Un widget de compte à rebours. Vous devez terminer son design et coder ses fonctions et propriétés.
- Un widget d'inscription que vous devez remplir et ajouter à votre widget de compte à rebours.
- Quelques services publics que vous pouvez utiliser pour implémenter la fonctionnalité de votre widget.
- Une partie du code back-end que vous pouvez utiliser pour implémenter les fonctions de votre notification par e-mail.
Étape 1 | Compléter le design de votre widget
- Ouvrez le modèle.
- Cliquez sur Compte à rebours sous Widgets et design.
- Cliquer sur Ajouter des éléments dans la barre supérieure.
- Sélectionnez Texte. Faites glisser et déposez une boîte de titre 48px dans votre widget.
- Cliquez sur Modifier le texte et remplacez le texte par.
- Changez la couleur du texte en blanc et centrez le texte à l'aide de l'inspecteur .
- Sélectionnez la zone de texte et déplacez-la dans le carré de la grille au-dessus du libellé SECONDS à l'aide de .
- Redimensionnez-le avec .
Étape 2 | Ajouter et définir les propriétés de l'API de votre widget
- endDate: Définit la date de fin à laquelle le compte à rebours atteint zéro. En utilisant cette propriété, les créateurs de sites peuvent modifier la date de fin afin que le widget soit personnalisé pour leur site.
- emailId: Détermine l'e-mail qui sera envoyé aux utilisateurs lorsqu'ils s'inscriront à une notification.
Donnez un ID aux éléments de votre widget
- Cliquez sur la zone de texte.
- Donnez à la zone de texte un identifiant dans les propriétés et événements . Dans cet exemple, l'ID est
secondsTxt
. Veuillez noter que les autres éléments ont déjà reçu des ID.
Définissez les propriétés "endDate" et "emailId"
- Cliquez sur Ajouter une nouvelle propriété dans l'API .
- Saisissez le nom de la propriété,
endDate
. - Sélectionnez le type de propriété, dans ce cas, la date et l'heure (la date est affichée au format américain jj/mm/aaaa).
- Sélectionnez une valeur par défaut (le créateur du site pourra modifier cela lorsqu'il installera votre widget dans les éditeurs).
- Survolez Propriétés et cliquez sur l'icône qui apparaît.
- Créez une autre propriété pour l'e-mail déclenché et appelez-la
emailId
. Il s'agit d'une propriété de type Texte sans valeur par défaut.
Étape 3 | Ajouter du code pour faire fonctionner votre widget
Importer vos utilités
- Cliquez sur Public et back-end menu.
- Sélectionnez dateUtils.js sous Public. Cela ouvre le fichier dans le panneau de code.
Modifier le code pour prendre en compte votre nouvelle fonction
Créez une fonction, updateTime()
, pour que votre widget de compte à rebours mette à jour le compte. Votre nouvelle fonction devrait ressembler à ceci :
1$widget.onPropsChanged(function () { }); fonction updateTime() { const {jours, heures, minutes, secondes} = getRemainingTime (new Date($widget.props.endDate)); $w('#daysTxt').text = jours.toString(); $w('#hoursTxt').text = heures.toString(); $w('#minutesTxt').text = minutes.toString(); $w('#secondsTxt').text = secondes.toString(); }
Vous devez également définir un intervalle pour la fréquence à laquelle le widget met à jour le temps restant.
Pour ce faire, ajoutez le code suivant dans votre fonction onReady()
. Cela met à jour le widget toutes les secondes.
1$w.onReady(function () { updateTime (); if (wixWindow.viewMode !== "Editor") { setInterval (updateTime, 1000); } });
Prévisualisez votre widget et testez ses propriétés d'API
- Cliquez sur Aperçu. Votre widget doit compter à rebours toutes les secondes jusqu'à la date de fin.
- Cliquez sur Tester les propriétés de l'API. Un panneau apparaît avec la valeur par défaut que vous avez définie précédemment.
- Modifiez la date pour vérifier si le widget répond et compte à rebours jusqu'à la nouvelle date.
Étape 4 | Créer et coder un panneau personnalisé
Créer un panneau personnalisé
- Cliquez sur l'onglet Panneaux dans la barre du haut.
- Cliquez sur Créer un panneau.
- Donnez un nom à votre panneau. Dans cet exemple, "Mes paramètres".
- Cliquez sur Créer un panneau.
- Cliquez sur + Ajouter élément.
- Sélectionnez Saisie de texte. Ce sera pour la date de fin.
- Cliquez sur Propriétés et événements . Donnez un ID à votre saisie de texte
endDateInput
. - Sélectionnez l'élément de texte et cliquez sur Paramètres.
- Ajoutez le nom "Date de fin" dans le champ Titre du champ.
- Supprimez le texte dans le champ Texte par défaut .
- Définissez le texte de l'espace réservé sur « Date de fin ».
- Ajoutez un séparateur de section.
- Cliquez sur Paramètres. Ajoutez un titre dans le champ Titre de la section . Dans cet exemple, il s'agit d'un « e‑mail déclenché ».
- Ajoutez une autre saisie de texte. Donnez un ID à votre saisie de texte -
emailIdInput
. - Sélectionnez l'élément de texte et cliquez sur Paramètres.
- Ajoutez le nom "Email ID" dans le champ Titre du champ.
- Supprimez le texte dans le champ Texte par défaut .
- Définissez le texte de l'espace réservé sur « ID d'e-mail ».
Ajouter du code à votre panneau personnalisé
Pour permettre aux éléments du panneau d'interagir avec votre widget et d'effectuer des actions dans l'éditeur, vous pouvez utiliser le module Velo wix-widget
dans votre code.
Pour utiliser l'API Widget, importez wixWidget
à partir du module wix-widget
.
Insérez le code suivant avant votre fonction onReady()
.
1import wixWidget from 'wix-widget';
Vous souhaitez que votre widget soit mis à jour lorsque les valeurs changent, vous devez donc enregistrer un événement onChange
. Vous devez également ajouter async
dans votre fonction onReady ()
car vous utiliserez certaines fonctions asynchrones.
Votre fonction onReady()
devrait ressembler à ceci :
1$w.onReady(async fonction () { const { finDate, emailId } = attend wixWidget.getProps(); $w('#endDateInput').value = endDate; $w('#emailIdInput').value = emailId; $w('#endDateInput').onChange(e => { wixWidget.setProps({ finDate : e.target.value }) ; }) ; $w('#emailIdInput').onChange(e => { wixWidget.setProps({ emailId: e.target.value }); }) ; }) ;
Étape 5 | Configurer votre widget
Ajoutez votre panneau personnalisé à la barre d'action flottante de votre widget
- Cliquez sur Configuration dans la barre supérieure.
- Sélectionnez votre widget de compte à rebours. Une barre d'action flottante apparaît.
- Cliquez sur Paramètres.
- Cliquez Paramètres du bouton d'action. Le panneau Paramètres de l'action principale apparaît.
- Sélectionnez Mes paramètres dans la liste déroulante pour sélectionner votre panneau personnalisé.
Étape 6 | Ajouter un deuxième widget (interne) et implémenter la logique d'inscription
Ajoutez votre widget d'inscription au widget de compte à rebours
- En travaillant dans l'onglet Design, sélectionnez votre widget de compte à rebours.
- Cliquez sur Plus d'options et sélectionnez Ajouter un widget.
- Sélectionnez Inscription. Le widget qui est en vous apparaît au milieu du widget du compte à rebours.
- Faites glisser et étirez votre widget intérieur pour l'adapter à la section inférieure de votre widget de compte à rebours.
- Changer son identifiant pour
registration
dans Propriétés et événements .
Implémenter la logique d'inscription dans le code du widget principal
Vous implémenterez le code d'enregistrement des utilisateurs dans le widget principal (compte à rebours), à l'aide de l'utilitaire préinstallé contactUtils.js
. Il utilise l'API wix-crm
pour connecter votre contact à votre collection.
Ce code redirige l'information vers votre collection. Il utilise l'utilité que vous utiliserez plus tard lorsque vous créerez une collection. Vous pouvez voir getSubscriptionsCollectionName()
dans le code.
- Créez une nouvelle fonction asynchrone.
- Appelez-la
onSubmit
. Il utilise la fonction de création de contact
Votre code devrait ressembler à ceci :
1 async fonction onSubmit({ email }) { const contact = ask createContact(email); wixData.insert(getSubscriptionsCollectionName(), { finDate: new Date($widget.props.endDate), emailId : $widget.props.emailId, contactId: contact.contactId }); }
2
S'inscrire à l'événement onSubmit
Dans votre onReady()
, après votre fonction updateTime()
, ajoutez le code suivant :
1$w('#registration').onSubmit(onSubmit);
Étape 7 | Créer votre appli et lui donner un espace de noms
Votre première version
- Cliquez sur Créer.
- Saisissez un espace de nom pour votre appli et cliquez sur Suivant.
- Sélectionnez Version majeure et cliquez sur Créer.
- Vous recevez un message indiquant que la version 1.0 est compilée. Cliquez sur OK pour continuer à travailler sur votre appli.
Étape 8 | Ajouter une catégorie à votre widget
Le template a un utilité préinstallée appelé getSubscriptionsCollectionName()
, dans collectionUtils.js sous Public & Backend. Il construit le nom complet de la collection afin que vous n'ayez pas à ajouter l'espace de nommage complet de votre appli chaque fois que vous y faites référence dans le code.
Configurer votre utilité de collection
- Cliquez sur collectionUtils.js sous Public et back-end .
- Ajoutez l'espace de nom de votre appli.
1
2const NAMEspace = '@mywixaccount/my-app-namespace'; export fonction getSubscriptionsCollectionName() { return `${NAMEspace}/subscriptions`; }
Créer votre collection
- Cliquez sur Base de données
- Cliquez + Créer une collection
- Donnez à votre collection un nom significatif. Dans cet exemple, Abonnements.
- Cliquez sur Créer.
Ajouter des champs à votre collection
- Cliquez pour ajouter un champ à votre collection.
- Sélectionnez Date dans le menu déroulant Type de champ .
- Saisissez endDate dans le Nom de champ du champ. Ce sera la dernière date jusqu'à laquelle les personnes pourront s'inscrire.
- Cliquez sur Enregistrer.
- Ajoutez maintenant un champ Type de texte et appelez-le emailId pour l'e-mail déclenché.
- Ajoutez un autre champ de type Texte et appelez-le contactId. Les coordonnées des utilisateurs enregistrés seront stockées.
- Créez maintenant un champ de type booléen et appelez-le notifié. Cela garantit que les abonnés ne seront notifiés qu'une seule fois.
Définir les autorisations pour votre collection
- Cliquez sur Plus d'options pour votre collection dans le menu Bases de données.
- Sélectionnez Autorisations et confidentialité.
- Sélectionnez le menu déroulant Peut ajouter du contenu.
- Sélectionnez Tout le monde .
- Cliquez sur Enregistrer.
Étape 9 | Installer votre appli sur un site dans l'Éditeur Wix
- Après avoir créé votre appli, ouvrez votre site.
- Cliquez sur Ajouter des applis .
- Cliquez sur Applis personnalisées. Une liste de toutes vos applis apparaît.
- Sélectionnez votre appli dans la liste Applis disponibles .
- Cliquez sur Installer l'appli.
- Cliquer sur Ajouter des éléments .
- Sélectionnez Mes widgets.
- Double-cliquez sur votre widget pour l'ajouter à votre site.
Définir un identifiant d'e‑mail
- Ouvrez Mon tableau de bord depuis le menu du site dans la barre supérieure.
- Accédez à l'onglet E-mails déclenchés dans les outils développeurs.
- Cliquez sur Commencer.
- Saisissez un sujet.
- Concevez le design de l'e-mail en utilisant les outils de l'Éditeur.
- Cliquez sur Enregistrer et publier.
- Ajoutez les détails de l'expéditeur, le Nom d'expéditeur et l'e-mail de réponse, puis cliquez sur Enregistrer.
- Cliquez sur OK.
- Cliquez à nouveau sur Enregistrer et publier . Vous recevez un code d'identification généré qui renvoie à l'e-mail que vous avez créé afin qu'il soit envoyé à toute personne qui s'inscrit.
- Saisissez ce code dans votre panneau personnalisé dans le champ ID d'e-mail .
Utiliser le code back-end dans l'Éditeur Wix pour notifier les abonnés
Invoquez votre fonction de notification
- Cliquez sur + Nouveau module web sous Backend dans Public et Backend dans l'Éditeur Wix.
- Appelez-le
backend.jsw
. - Importez la fonction back-end dans la section de code de votre site sous backend.jsw.
Votre code devrait ressembler à ceci :
1import { notification } 'myWixId/my-application-name-backend';
Créez maintenant une fonction d'exportation invokeNotify
dans backend.jsw dans la section code de votre site.
Votre code devrait ressembler à ceci :
1export fonction refund () { return notifier () ; }
- Cliquez sur Ajouter . dans le back- end
- Cliquez Ajoutez des tâches planifiées.Ajoutez le code suivant sous Jobs.config dans la section code de votre site. Dans cet exemple, la fonction de notification est appelée toutes les heures toutes les heures.
1{ "jobs": [{ "functionLocation": "/backend.jsw", "functionName": "invokeNotify", "description": "", "executionConfig": { "cronExpression": "10 * * * *" } }] }
Étape 10 | Tester votre appli
- Publiez votre site.
- Inscrivez-vous pour recevoir une notification par e-mail.
- Retournez dans l'Éditeur et vérifiez votre collection.
- Vous pouvez voir qu'il y a un nouvel abonné. Lorsque l'e-mail de notification sera envoyé, vous verrez également une coche dans le champ notifié .