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
Compatibilité Joomla! 4/5 :

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'; // Caractères autorisés
$token = '';
$length = 12; // nombre de caractères composant la chaîne, peut être modifié
$bytes = random_bytes($length);
for ($i = 0; $i < $length; $i++) {
    $index = ord($bytes[$i]) % strlen($characts);
    $token .= $characts[$index];
}

ff_setValue('ticket', $token); // On envoie la chaîne aléatoire dans le champs "ticket"

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é.

Ce formulaire n'étant pas muni de bouton de soumission et n'étant pas connecté à notre base de données, il ne traite et n'enregistre aucune donnée personnelle, il n'est présenté qu'à titre d'information et de test.

Prérequis : html, css, utilisation de l'inspecteur du navigateur

 

Pas encore de commentaires.

Connectez-vous pour poster un commentaire

Afin d'éviter les messages indésirables, les commentaires sont réservés aux membres inscrits. Veuillez vous inscrire ou vous connecter pour publier votre commentaire

FAIRE UN DON

paypal btn

Via PayPal

PLUGIN UP DE LOMART

Universal Plugin : UP

De très nombreuses actions pour vos articles en un unique plugin.
up lomart