SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 227 visiteurs en ce moment

Accueil > Améliorations de l’espace privé > Champs extra > Champs extras à l’inscription des visiteurs/rédacteurs (SPIP 1.7 ET (...)

Champs extras à l’inscription des visiteurs/rédacteurs (SPIP 1.7 ET 1.8)

16 juin 2004 – par GoUaRfIg ! – 18 commentaires

0 vote

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Qu’un visiteur puisse remplir ses coordonnées pendant son inscription

Introduction

Cette contribution va vous permettre de vous familiariser avec les champs extra des auteurs et/ou visiteurs, et aussi de pouvoir les gérer plus facilement : L’administrateur ne sera plus obligé de les remplir soi-même, puisque le visiteur aura la possibilité de les saisir pendant son inscription.

Pourquoi ?

Le constat est simple, j’ai eu besoin pour mon site sous SPIP de limiter l’accès visiteur aux membres de notre association (un club sportif).

Comme nous sommes beaucoup d’adhérents, il n’est pas possible de créer en début d’année associative les accès des membres après leur inscription au club.

C’est pourquoi j’ai eu besoin que les membres puissent s’inscrire avec leurs données personnelles pour que je puisse les vérifier à posteriori.

Ce que nous allons réaliser

Pour ne pas que vous vous engagiez sur une pente trop glissante, voici ce que nous allons réaliser :

-  Prendre un SPIP 1.7 (DISTRIB ou CVS)
-  Créer quatre champs extras au niveau des ’auteurs’.
-  Ajouter un nouveau fichier à votre installation
-  Modifier légèrement un fichier source de SPIP : inc-formulaire.php3 (le fichier complet et modifié est fourni)

Ca ne vous fait pas peur ? Tant mieux !

Parce que j’explique d’abord tout ce que j’ai fait, mais à la fin, j’ai mis un .ZIP récapitulatif à décompresser directement dans votre installation de SPIP, et ca se fera tout seul, elle est pas belle la vie ?

Les champs utilisés

Ce dont j’ai besoin pour reconnaître mes adhérents, c’est une adresse postale et/ou un numéro de téléphone.

C’est pourquoi nous allons créer les champs ’auteurs’ suivants :

-  Adresse
-  Code postal
-  Ville
-  Téléphone

Les champs extra se définissent dans le fichier ecrire/mes_options.php3 dont voici un exemple :

<?

$GLOBALS['champs_extra'] = Array (
        'auteurs' => Array (
                "adresse" => "ligne|propre|Adresse",
                "cp" => "ligne|propre|Code Postal",
                "ville" => "ligne|propre|Ville",
                "tel" => "ligne|propre|T&eacute;l&eacute;phone"
                )
        );

$GLOBALS['champs_extra_proposes'] = Array (
        'auteurs' => Array (
                // Définition des champs extra utilisés pendant l'inscription
                'inscription' => 'adresse|cp|ville'
                )
        );
?>

Nous pouvons remarquer que j’ai créé une nouvelle entité inscription dans le tableau $GLOBALS[’champs_extra_proposes’] et qui contient la liste des champs extras qui seront demandés à l’inscription des ’auteurs’.

Cette entrée spécifique n’est pas indispensable : En son absence, l’inscription va demander tous les champs extras disponibles pour les auteurs.

Modification du formulaire proprement dit

Il n’y a qu’une fonction à ajouter (formulaire_inscription_etendue), celle qui affiche et enregistre le formulaire d’inscription. Nous la mettrons dans un nouveau fichier dans le répertoire de base de spip. Elle a été très largement inspirée de l’originale : formulaire_inscription de la distribution de SPIP :

fonction formulaire_inscription_etendue

Vous remarquerez que j’utilise une nouvelle chaine
(_T(’local:inscription_champs_supplementaires’))
dans la table « local » des langues de SPIP.

Cette chaine est définie dans le fichier de langue local_fr.php3 qui est fourni dans l’archive. Pour en comprendre le principe, voir la gestion des langues dans SPIP.

Inclure ce fichier de langue dans votre distribution permet simplement d’ajouter un message entre les deux boites de saisie nom/email et vos boites de saisies personnalisées.

Si vous n’avez pas besoin de ce message, ignorez simplement ce fichier (local_fr.php3) !

Par exemple avec cette ligne :

'inscription_champs_supplementaires' => 'Veuillez &eacute;galement saisir vos coordonn&eacute;es personnelles :<br>',

dans le fichier ecrire/lang/local_fr.php3, on obtient l’affichage suivant pendant l’inscription :

Message

A ce propos, pour ceux qui n’ont pas peur du PHP, vous pouvez personnaliser l’affichage du formulaire (20 dernières lignes de la fonction formulaire_inscription_etendue)

Relier le tout à SPIP

C’est le fichier spip_pass.php3 qui appelle la fonction qui gère le formulaire. Il doit doit maintenant appeler la nouvelle fonction.

Changer la fonction dans spip_pass.php3 permet de rester le plus simple possible avec les squelettes de SPIP. En effet, le nouveau formulaire est maintenant affiché sur le tag #LOGIN_PUBLIC, mais aussi à partir du lien "s’inscrire" sur le formulaire d’un forum modéré sur abonnement.

Remplacer donc

formulaire_inscription(($inscriptions_ecrire)? 'redac' : 'forum');

par

formulaire_inscription_etendue(($inscriptions_ecrire)? 'redac' : 'forum');

Résultat

Voici ce qu’est devenu la fenêtre d’inscription lorqu’on demande à s’inscrire sur le site :

Résultat

Les quatre champs supplémentaires sont maintenant demandés.

Quand vous allez dans la partie privée du site, et que vous visualisez la fiche de l’utilisateur, vous avez maintenant ses champs supplémentaires qui sont remplis :

Fiche utilisateur

Voilà. Je l’ai installé sur mon site (SPIP 1.7 distrib fr) et ca a l’air de tourner sans bugs visibles. De toute façon je n’ai repris que des bouts de codes de la partie privée pour l’intégrer dans le formulaire d’inscription.

Télécharger la distribution

Voici l’archive qui contient tous les fichiers modifiés. Vous pouvez l’extraire directement à la racine de votre SPIP pour écraser les anciens fichiers.

Archive complète

A l’avenir...

Le seul fichier original de SPIP qui est modifié est spip_pass.php3. Regardez le source complet fourni dans l’archive, il contient des gros commentaires (entre des lignes de #) sur les deux lignes modifiées du fichier.

Donc si vous avez déjà un spip_pass de votre cru, vous pouvez aisément appliquer les modifications.

Bon courage !


18 Mai 2005 - Mise à jour SPIP 1.8

Nous savons tous que l’heure n’est plus aux champs extras. Toutefois, pour ceux qui ont un base actuelle avec, et qui n’ont pas spécialement envie de tout retranscrire, voici la nouvelle version des champs extra à l’inscription pour SPIP 1.8

Résultat

Le but de la manoeuvre est de pouvoir afficher (et traiter) une fenêtre d’inscription au site de cette forme :

Inscription

Pré-requis

Cet exemple se base sur la définition des champs extras suivants (dans le fichier ecrire/mes_options.php3) :

$GLOBALS['champs_extra'] = Array (
        'auteurs' => Array (
                'adresse' => "ligne|propre|Adresse",
                'cp' => "ligne|propre|Code Postal",
                'ville' => "ligne|propre|Ville",
                'tel' => "ligne|propre|T&eacute;l&eacute;phone",
                'section' => "ligne|propre|Section du NCR"
                ),
        );

$GLOBALS['champs_extra_proposes'] = Array (
        'auteurs' => Array (
                // Définition des champs extra utilisés pendant l'inscription
                'inscription' => 'adresse|cp|ville|tel|section'
                )
        );

Comment faire

Les modifications concernent simplement deux fichiers du dossier formulaires. J’ai pris comme point de départ les fichiers fournis avec spip 1.8.1

Fichier formulaire_inscription.html :

Concernant l’affichage des champs extras, voici la modification à apporter à la ligne 23 :

<br />
<:local:inscription_champs_supplementaires:>
<br />
<br />
<?
   include_ecrire("inc_extra.php3");
   extra_saisie($extra, 'auteurs', 'inscription');
?>

La chaine <:local:inscription_champs_supplementaires:> est à ajouter au fichier local_fr.php3. Pour cela, se reporter à la documentation sur les chaines personnalisées.

Voici le fichier complet modifié :

Fichier inc-formulaire_inscription.php3 :

Il suffit de remplacer en ligne 45 le code suivant

$id_auteur = spip_abstract_insert('spip_auteurs',
      '(nom, email, login, statut)',
      "('".addslashes($nom_inscription)."',
      '".addslashes($mail_inscription)."', '$login', '$statut')");

par le code

include_ecrire("inc_extra.php3");
$extras = extra_recup_saisie('auteurs');
$id_auteur = spip_abstract_insert('spip_auteurs',
      '(nom, email, login, statut, extra)',
      "('".addslashes($nom_inscription)."',
      '".addslashes($mail_inscription)."', '$login', '$statut', '$extras')");

Voici le fichier complet modifié :

Pour clore le débat

Par ailleurs, je pense que je vais tout doucement évoluer vers les nouvelles fonctionnalités de la version 1.8, à savoir les champs supplémentaires. Je ne manquerai pas de réviser ma contribution avec ce nouveau système !

A bientôt.

Dernière modification de cette page le 18 mai 2005

Retour en haut de la page

Vos commentaires

  • Le 22 janvier 2007 à 09:30, par Pégase En réponse à : Champs extras à l’inscription pour SPIP 1.9

    Bonjour, j’aimerais savoir si quelqu’un a essayé d’utiliser cette fonctionnalité supplémentaire sur SPIP 1.9
    La façon de déclarer les extras et les noms de fichiers ayant apparemment complètement changé par rapport aux versions antérieures, je suis un peu perdu !

    • Le 26 mai 2009 à 13:15, par Birdy En réponse à : Et pour 2.0 ?

      Existe-t-il une mise à jours plus simple de tout cela pour la version 2.0 de Spip et du plugin ChampsExtra2 ?

    Répondre à ce message

  • Le 25 septembre 2006 à 20:30, par Lili En réponse à : Champs extras à l’inscription des visiteurs/rédacteurs (SPIP 1.7 ET 1.8)

    Bonjour,
    j’ aimerai savoir si il est possible d’ adapter cette contrib. pour la signature de petition,
    elle me sert pour l’ inscriptions à une adhesion.J’ ai donc besoin d’ avoir les coordonnees de chaque adherent
    pour le moment j’ ai modifier « nom/login » en « saisissez vos nom et prenom » et la partie « laisser un message » par « votre adresse complete » .Ce procedé serait vraiment mieux, malheureusement je ne vois pas tres bien quels sont les fichiers a modifier, qui peut m’ aider ?

    ..
    ^

    Répondre à ce message

  • Le 3 avril 2006 à 10:09, par GoUaRfIg ! En réponse à : Fichiers pour la 1.8.3

    Les fichiers modifiés pour la version 1.8.3 :

    Il fallait demander...

    http://gouarfig.free.fr/spip-contrib/article434/spip1.8.3.zip

    Hop

    • Le 2 mai 2006 à 16:16, par Archos En réponse à : Fichiers pour la 1.8.3

      Bonjour, serait-il possible de mettre se formulaire ailleur que lors de l’inscription, et d’y ajouter un champs « avatar » par upload ou par URL ?

    • Le 27 juillet 2006 à 06:26, par matthieu En réponse à : Au secour champs extras pour la 1.9 ?

      J’ai installé spip 1.9 avec la spip list, et, sur le formulaire d’inscription au forum, je souhaite rajouter des champs extras pour l’inscription à la mailing list, seulement probléme, le fichier « formulaire_inscription.php » a changé et impossible de trouver comment insérer les données récupérer dans le formulaire dans la base. Précisément ce serait savoir quel code est a ajouter dans ce fichier pour récupérer mes champs extras.

    Répondre à ce message

  • Le 18 août 2005 à 19:51, par manar En réponse à : > Champs extras pour espace prive : ajout auteurs

    bonjour,
    j’utilise spip 1.8.1 et j’aimerais bien ajouter, au formulaire d’ajout des auteurs, les champs : adresse|ville|Tel. J’ai lu votre contrib mais je ne sais pas comment l’adapter à mon besoin.

    Merci pour l’aide.

    Répondre à ce message

  • Le 1er mai 2005 à 02:17, par pegguy En réponse à : > Champs extras à l’inscription des visiteurs/rédacteurs

    Salut à tous ;

    J’ai installer l’archive proposé permettant d’ajouter des champs extras lorsqu’on clique sur le lien ’s’inscrire’, j’ai crée une autre table dans la base spip avec les différents champs extras mais ce que je ne comprend pas c’est pourquoi lorsqu’on rempli ces champs, ils ne s’enregistre pas dans la base de données.

    Comment faire pour que les informations s’enregistrent dans la base de donnée.

    Répondre à ce message

  • Le 18 août 2004 à 12:55, par Stef En réponse à : > Champs extras à l’inscription des visiteurs/rédacteurs

    J’ai un problème, les personnes peuvent s’inscrire pour consulter ma partie restreinte mais comment fait-on pour que la rubrique de la partie restreinte demande l’identifiant de la personne pour se connecter. (dans la rubrique, j’ai plusiuers articles).

    Merci beaucoup.
    STEF

    Répondre à ce message

  • Le 16 août 2004 à 18:31, par yendel En réponse à : > envoie de mail à l inscription d un visiteur

    Bonjour !

    J’aimerais savoir si quelqu un sait quels sont les fichiers de SPIP qui permettent l’envoie de mail par la fonction mail() de php.

    En fait mon hebergeur ne prend pas en compte la fonction mail de php, c’est pourquoi j’ai besoin de trouver où elle est utilisée afin de la remplacer par une fonction acceptée par mon hebergeur.

    Je parle de l’envoie de mail suite à l’inscription d’un visiteur à la newsletter ou l’envoie de la bloogletter...

    De mon côté je n’ai repérer que inc_mail.php3, est-ce le seul fichier ?
    quelles sont les lignes à modifier ?

    Merci !

    Répondre à ce message

  • Le 12 août 2004 à 11:12, par Nicolas En réponse à : > Champs extras à l’inscription des visiteurs/rédacteurs

    Salut,
    Merci bcp pour ce poste fort interressent.
    J’ai cependant quelques petits soucis :
    -  j’aimerai sur la page d’accueil mettre 2 champs pour que le visiteur s’identifie et un bouton pour qu’il s’inscrive
    -  et j’aimerai protogé l’accés aux pages articles, rubriques, breves... aux utilisateurs identifiers

    merci pour votre aide

    Répondre à ce message

  • Le 19 juin 2004 à 21:55, par mtcocktail En réponse à : > Champs extras à l’inscription des visiteurs/rédacteurs

    Génial !
    Est-ce que kkun peut me dire dans quel table ou quel fichier sont stocké ces données supplémentaires ?

    • Le 21 juin 2004 à 18:46, par aly En réponse à : > Champs extras à l’inscription des visiteurs/rédacteurs

      il y a un champ « extra » dans les table spip_rubriques, articles, mots et auteurs (peut-être j’en oublie...) où sont stockées toutes les données dans un longblob (il y a donc plusieurs « sous-champs » rangés dans un seul champ, ce longblob « extra », de la table).

      Personnelement je trouve ça moyen comme solution, car difficile d’y accéder en php (ok c’est du bricolage, mais justement les champs extra c’est du bricolage) et impossible d’utiliser ça pour les documents ou les images, pour le moment en tous cas.

      J’aurai préféré une approche « objet » : on crée une table « spip_extra » avec des tables liant les autres objets à celle-ci (articles-extras, rubriques-extras, etc.)

      ... et au final, quand on en a marre de créer plein de tables partout, on refond le modèle de données de SPIP, pour enfin obtenir un vrai modèle objet (genre Zope) qui permet de faire ce qu’on veut. Avis aux amateurs

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Thélia

    26 juin 2007 – 937 commentaires

    Une approche basée sur l’utilisation conjointe des deux logiciels SPIP et Thélia pour la réalisation de sites de publication et de vente en ligne

  • Ferme à SPIP

    3 janvier 2008 – 140 commentaires

    Un petit article synthétique qui explique en quelques mots et captures d’écrans comment faire une « ferme à SPIP » avec le plugin "Mutualisation" à partir d’un nom de domaine principal.

  • Japibas, squelette responsive

    11 octobre 2013 – 91 commentaires

    Japibas est un squelette responsive, multilingue (français, anglais et espagnol), dont l’habillage conviendrait à un site de type blog ou webzine. Le graphisme est inspiré du template Wordpress Japibas réalisé par Jesper Johansen et distribué sous (...)

  • GIS 4

    11 août 2012 – 1340 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Massicot

    7 octobre 2015 – 63 commentaires

    Recadrez et redimensionnez vos images directement dans l’espace privé de SPIP ! Inspiré par le plugin photospip, ce plugin plus minimaliste permet de recadrer et redimensionner les images dans l’espace privé de SPIP. Une fois le plugin installé (...)