Identifiants personnels


Moi ... Moi ... et re Moi
« [UBUNTU] Compiler Flvtool2   Informatique  [SPIP] Spip.ici.ous »

[Spip] Inscription2 : Le profil crayonné

dimanche 12 août 2007, modifié le 13 août 2007, par Quentin Drouet

Aucun tag n'est associé

Inscription2 propose au webmaster un profil utilisateur complet et "crayonné"...

Cet article mettra en évidence ses fonctionnalités...

L’idée de ce squelette de profil utilisateur est d’avoir, en fonction des choix du webmestre sur les champs activés dans la configuration d’Inscription2, un crayon afin de modifier chaque champs.

Les controleurs / vues

Pour pouvoir utiliser la validation Javascript des formulaires (les crayons), nous sommes obligés de passer par des controleurs spécifiques. Afin d’éviter la création d’un couple controleur/vue spécifque par champ possible, on va essayer de regrouper certains champs au sein d’un même contrôleur.

Ainsi, on peut lister les couples controleurs / vues suivants dans inscription2 :

- nomcomplet : prenom, nom_famille
- adressecomplete : adresse, code_postal, ville, pays
- adressecompletepro : adresse_pro, code_postal_pro, ville_pro, pays_pro
- pays (uniquement la boucle pays utilisable dans des balises conditionnelles pour les adresses complêtes)

Et dans Echoppe :

- adressecompletelivraison : adresse_livraison, code_postal_livraison, ville_livraison, pays_livraison

Validation Jquery

2Les regexp de validations2

3Les codes postaux :3

- Il peuvent être de 2 manières différentes : internationale (F-75010) ou nationaux (75010 par exemple pour la France ou NY 10010 aux États-Unis)
- Le code national peut mélanger chiffres et lettres et être de taille différentes, on va lister ici toutes les possibilités :

    • OK CCCCCC : Chine - Inde - Roumanie - Russie - Singapour
    • OK CCCCC : Algérie - Allemagne - Croatie - Espagne - Etats-Unis (ou CCCCC-CCCC) - Estonie - Finlande - France - Israel - Italie - Malaisie - Maroc - Mexique - Pakistan - Serbie-et-Monténégro - Sri Lanka - Turquie
    • OK CCCC : Argentine (ou LCCCCLLL) - Australie - Autriche - Belgique - Chypre - Danemark - Hongrie - Lettonie - Luxembourg - Macédoine - Norvège - Nouvelle-Zélande Philippines - Suisse - Tunisie
    • OK CCC : Afrique du sud - Taiwan
    • OK CCC CC : Suède - République Tchèque - Slovaquie
    • OK CC-CCC : Pologne
    • OK CCC-CCC : Corée du Sud
    • OK CCC-CCCC : Japon
    • OK CCCC-CCC : Portugal
    • OK CCCCC-CCC : Brésil - Cambodge
    • OK CCCCC-CCCC : Etats-Unis (rarement utilisé)
    • OK CCCC LL : Pays-Bas
    • NOTOK LCCCCLLL : Argentine
    • OK LCL CLC : Canada (Mutualisable avec le Royaume uni sans être trop restrictif) ;
    • OK LCC CLL - LCC CLL - LLCC CLL - LCL CLL - LLCL CLL : Royaume Uni - (Donc en gros : 3 ou 4 chiffres ou lettres espace chiffre-lettre-lettre) ;
    • NOTOK LLCCCC : Brunei ;

La regexp qui va bien sans être trop restrictive non plus ... le but n’est pas de contraindre forcément mais juste signaler que le code donné est foncièrement impossible en évitant les codes postaux hyper farfelus...

^[A-Z]{1,2}[-|\s][0-9]{3,6}$|^[0-9]{3,6}$|^[0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$|^[A-Z]{1,2} [0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$

Si vous pensez pouvoir l’améliorer, les suggestions sont bonnes à prendre...

Pour résumer, les méthodes ajoutées au plugin jquery de validation :

  1. jQuery.validator.addMethod("chaine", function(value, element) {
  2.         return !jQuery.validator.methods.required(value, element) || /^[A-Za-z\-\'\.ÒÁ‡ËÈ‚ÍÓÙ˚ ]+$/.test(value);
  3. }, "<:inscription2:champ_obligatoire:>, <:inscription2:chaine_valide:>");
  4. jQuery.validator.addMethod("postal", function(value, element) {
  5.         return !jQuery.validator.methods.required(value, element) || /^[A-Z]{1,2}[-|\s][0-9]{3,6}$|^[0-9]{3,6}$|^[0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$|^[A-Z]{1,2} [0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$/.test(value);
  6. }, "<:inscription2:champ_obligatoire:>, <:inscription2:cp_valide:>");
  7. jQuery.validator.addMethod("numero", function(value, element) {
  8.         return !jQuery.validator.methods.required(value, element) || /^[0-9\+\. \-]+$/.test(value);
  9. }, "<:inscription2:champ_obligatoire:>, <:inscription2:numero_valide:>");

Répondre à cet article


commentaires fermes
Propulsé par : SPIP 2.1.26 SVN [21335]