WebBlocks Forms

Exigences

Version du package documentée : 0.7.0. WebBlocks CMS ^1.57.0 ; PHP >=8.3.

Créez vos propres formulaires avec les champs dont vous avez besoin et collectez vous-même les soumissions site.

WebBlocks CMS est livré avec un bloc contact_form natif avec un ensemble de champs fixe : nom, e-mail, sujet, message. Cela fonctionne bien et ce plugin ne le remplace pas. Ce qu'il ajoute, c'est le chose que le bloc ne peut pas faire : un formulaire dont le propriétaire du site décide des champs.

Installer

Créez l'artefact, puis téléchargez-le via System → Plugins dans le CMS en tant que super administrateur :

composer plugin:build

Les plugins installés sont désactivés par défaut. Activez-le, puis exécutez l'action de configuration du plugin à partir de l'écran de détail du plugin pour créer les tableaux. Jusqu'à ce que l'installation soit exécutée, les écrans du plugin indiquent Plugin migrations pending plutôt que d'échouer.

Utilisation

  1. Forms → Ajouter form. Donnez-lui un nom et un handle. La poignée est ce qu'un bloc stocke pointez sur ce formulaire, donc le modifier ultérieurement détachera chaque page qui l'a déjà placé.
  2. Placez-le. Ajoutez le bloc Form à une page et choisissez le formulaire. C'est celui du bloc seul paramètre - les champs, la copie et la livraison sont tous en direct sur le formulaire, de sorte que le même formulaire peut rester sur cinq pages et une modification de copie se produit une seule fois.
  3. Submissions. Tout ce que les visiteurs envoient arrive sous Formulaires → Soumissions, filtrables par formulaire et statut, exportable au format CSV par formulaire.
  4. Notification. Chaque formulaire vous envoie un e-mail lorsqu'une soumission arrive. Quitter le destinataire vide et il revient à la valeur par défaut de ce site sous Paramètres du formulaire, puis à la valeur par défaut du site. Contacter le destinataire, puis l'environnement — une case vide est un paramètre de travail, pas un il en manque un.

Au-delà, par champ : donnez aux champs le même numéro step pour les demander sur une seule page, ou numérotez-les 1, 2, 3 pour poser une page à la fois. Définissez quand afficher ce champ pour le révéler uniquement lorsqu'une autre réponse à la même étape correspond. Ajoutez un champ file upload pour les pièces jointes. Et par formulaire : une réponse à l'expéditeur, des webhooks sortants et un abonnement à la newsletter via WebBlocks Campaigns.

Si la notification signale Not configured, l'installation n'a pas de véritable courrier sortant : log, Les courriers array et null sont signalés honnêtement plutôt que comme envoyés. Les soumissions sont stockées Quoi qu'il en soit, le stockage et la livraison sont des problèmes distincts, et un logiciel de messagerie mal configuré ne vous coûte le message.

Champs conditionnels

A peut être affiché uniquement lorsqu'une autre réponse à la même étape correspond. Le navigateur cache et s'affiche au fur et à mesure des types de visiteurs, mais c'est pratique : le serveur décide. Un domaine dont la condition non remplie n'est ni validée ni stockée.

Les deux moitiés comptent. En valider un demanderait à un visiteur de remplir une case qui ne figure pas sur le page. En stocker un enregistrerait une réponse que personne n'a donnée - une requête spécialement conçue peut avoir une valeur pour n'importe quelle entrée, et la boîte de réception se lirait comme si elle avait été donnée.

Lorsque JavaScript est désactivé, rien n’est masqué : tous les champs sont affichés et les mêmes règles du serveur déterminent toujours les réponses retenues. L’expérience réduite affiche davantage de questions, sans jamais empêcher l’envoi du formulaire.

Le script est publié sur /cms/plugins/webblocks-forms/ par le CMS, c'est pourquoi la version nécessite ^1.57.0.

Importation d'un formulaire de contact existant

Forms → Importer le formulaire de contact répertorie les blocs de formulaire de contact natifs sur le site actuel. pages. En importer un crée ici un formulaire avec les quatre mêmes champs, les mêmes étiquettes pour un visiteur vu, ainsi que le titre du bloc, l'intro, le message de réussite et la formulation du consentement dans toutes les langues dans lesquelles il est utilisé. les avait – plus son destinataire de notification.

Le bloc est laissé exactement tel quel et continue de fonctionner, ainsi que les messages déjà dans Contact Les messages y restent. Échanger le bloc sur la page est à vous lorsque vous êtes prêt. Rien à propos de l'importation est réversible par annulation, mais rien n'est destructeur non plus : le pire le cas est un formulaire que vous supprimez.

A quelques éléments que l'importation ne peut pas transmettre inchangés, et cela est indiqué à l'écran lorsqu'ils appliquer : 

  • Un bloc sans destinataire importe sans aucun, donc le formulaire continue d'hériter de la solution de secours à la place que de figer la réponse d'aujourd'hui dans un cadre explicite.
  • La notification a désactivé les importations en tant qu'action présente et désactivée.
  • Le libellé du consentement manquant dans une langue est complété à partir de la langue par défaut. Noyau seulement a montré sa boîte de consentement là où le libellé existait, de sorte que les visiteurs dans cette langue n'étaient pas demandé du tout - vérifiez le libellé avant de publier.
  • store submissions éteint est signalé, non respecté. Le CMS a stocké chaque message peu importe, donc l’honorer reviendrait à importer un bug.

Rétention

Retention est par formulaire et désactivé par défaut, car la suppression silencieuse des données d'un site est pire que de le garder. Lorsqu'une fenêtre est définie, le planificateur de l'hôte exécute : 

php artisan webblocks-forms:prune-submissions

Ajoutez --dry-run pour voir ce qui se passerait sans rien supprimer.

Deux boîtes de réception

Une installation utilisant à la fois ce plugin et le formulaire de contact natif a deux endroits à lire messages : /webadmin/contact-messages pour le bloc natif, et Formulaires → Soumissions ici. C'est un coût délibéré. L'alternative est un plugin écrivant dans une table principale, ce qui n'est pas le cas propre, ce que la limite du plugin interdit - et qui ne conviendrait pas de toute façon, puisque contact_messages a des colonnes pour un message fixe à quatre champs et nulle part où placer un schéma un instantané, un fichier ou un état de livraison par action.

Téléchargements

Les pièces jointes de soumission ne vont pas à la bibliothèque multimédia du CMS. La bibliothèque stocke tout sur le disque public sans aucun moyen de demander autre chose, et sa vérification d'utilisation ne peut pas voir de référence du plugin - donc un fichier joint à une soumission est signalé comme inutilisé et un éditeur le supprime de l’écran Média sans avertissement. Les deux sont corrects pour les actifs du site et incorrect pour le document d'un visiteur, les téléchargements utilisent donc le propre disque privé du plugin, configuré dans config/webblocks-forms.php. Les pièces jointes sont téléchargées via un lien signé de courte durée, toujours en pièce jointe et jamais en ligne : un téléchargement SVG ou HTML rendu en ligne exécuterait son script sur la propre origine de l'administrateur.