Formulaire BreezingForms, génération d'un code aléatoire (Ticket)

J'aimerais proposer à mes visiteurs un système de "ticket" et pour ce faire, il me faudrait un code aléatoire pour chaque cas. BreezingForms peut-il générer ce type de code ?

Niveau: Moyen
Version BF minimale requise: BreezingForms Lite

Disons que votre formulaire de contact, réclamation ou autre type de formulaire est déjà prêt, il ne lui manque que la génération d'un code aléatoire que nous nommerons ticket dans la suite du billet.

Nous avons deux options pour générer ce code aléatoire :

  1. À l'aide de JavaScript
  2. À l'aide de PHP

À l'aide de javascript

Créez, en tête de formulaire ou à l'emplacement que vous désirez, un champ de texte.

Rappel : Pensez à enregistrer régulièrement les modifications que vous apportez à vos éléments afin de ne pas les perdre inutilement.

  1. Libellez-le Votre ticket (ou autre comme vous le désirez).
  2. Nommez-le p.ex. ticket.
  3. Dans l'onglet Avancé, cocher la case Lecture seule afin qu'il ne puisse être modifié par l'utilisateur.
  4. Décidez de le laisser affiché sur le formulaire ou au contraire de le masquer à l'aide de la fonction Section non visible en frontend.
  5. Au bas de la page des options avancées, dans la partie Script d'initialisation, cliquez sur Personnalisé.
  6. Cochez Entrée du formulaire
  7. Cliquez ensuite le bouton Crée le code framework. Un code, identique (si vous avez nommé votre champ ticket) à ce qui suit, se place dans le champ.
    function ff_ticket_init(element, condition)
    {
        switch (condition) {
            case 'formentry':
                break;
            default:;
        } // switch
    } // ff_ticket_init
  8. Après la ligne 4 case 'formentry': faite un retour chariot et insérez le code suivant (entre  case 'formentry': et break;)
    var chars = "0123456789ABCDEFGHIJKLMNPQRSTUVWXTZabcdefghijklmnpqrstuvwxyz";
    var string_length = 12; // code à x caractères, peut être modifié
    var randomstring = '';
    for (var i=0; i<string_length; i++) {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
    }
    element.value=randomstring
  9.  Au final, vous devez obtenir un code complet ressemblant à ce qui suit :
    function ff_ticket_init(element, condition)
    {
     switch (condition) {
    case 'formentry':
    var chars = "0123456789ABCDEFGHIJKLMNPQRSTUVWXTZabcdefghijklmnpqrstuvwxyz";
    var string_length = 12; // code à 12 caractères, peut être modifié
    var randomstring = '';
    for (var i=0; i<string_length; i++) {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
    }
    element.value=randomstring;
    break;
    default:;
    } // switch
    } // ff_ticket_init
  10. Enregistrez les propriétés de ce champ suivi de l'enregistrement de votre formulaire.

La variable string_length est égale à 12 et correspond au nombre de caractères composant le code généré. Ce nombre peut être modifié afin de s'adapter à vos exigences.
Vous pouvez éventuellement ajouter un préfixe personnalisé p.ex. en entrant pref_ (ou autre chose) entre les guillemets simples de la variable randomstring.

Il ne reste qu'à tester le formulaire avant de le mettre en ligne.

À l'aide de PHP

Si vous optez pour le code php, après avoir créé votre champ ticket, comme expliqué précédemment.

Rendez-vous ensuite dans les Propriétés avancées du formulaire → Plus d'options → Onglet Pièces de formulaire → Avant le formulaire.

Activez le bouton radio Personnalisé et entrez le code suivant :

$this->execPieceByName('ff_InitLib');
    $characts = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ1234567890';
    $string_length = 12; // code à 12 caractères, peut être modifié
    $token      = '';
    for($i=0;$i < $string_length; $i++) {
        $token .= substr($characts,rand()%(strlen($characts)),1);
    }
ff_setValue('ticket', $token); // ticket étant le nom du champ visé

 Dans la version php, le chiffre 12 de la variable $string_length peut également être adapté à vos préférences.

Les lettres O et o ont été retirées pour ne pas être confondues avec le 0 (zéro) mais vous pouvez les ajouter à la chaîne de caractères si vous le désirez. Au contraire, si vous ne désirez que des codes numériques, retirez les lettres de la variable. Vous aurez compris que faire au cas où vous ne nécessiteriez que des lettres…

Dans le cas de php, si vous désirez ajouter un préfixe et / ou un suffixe aux caractères de votre code aléatoire, modifier la dernière ligne du script comme suit :

ff_setValue('ticket', 'prefixe_'. $token .'_suffixe'); // prefixe_ et _suffixe peuvent être adaptés

Bien entendu, n’omettez pas d'insérer la valeur de ce champ dans la notification pour le réceptionniste des informations du ticket ainsi que dans le mail de confirmation envoyé à l'utilisateur afin de le rappeler dans les futures correspondances.

Vous pouvez, à loisir, tester ci-dessous.
À chaque nouvelle actualisation de la page, un code aléatoire différent composé de Minuscules, majuscule et chiffres sera généré.

Cet article vous a plu ?
N'hésitez pas à laisser une évaluation en haut de page afin de me faire part de votre impression !

 Ajouter un commentaire
En utilisant ce formulaire de commentaires, vous acceptez que les informations demandées soient enregistrées, affichées ci-dessous et utilisées pour un éventuel contact (dans ce cas, n'oubliez pas de renseigner votre e-mail). L'adresse e-mail n'est jamais affichée aux visiteurs.