#FORMULAIRE_INSCRIPTION

La balise #FORMULAIRE_INSCRIPTION{…} affiche le formulaire permettant à vos visiteurs de s’inscrire automatiquement, c’est à dire sans aucune intervention du ou des responsables du site.

Une fois inscrit…

Ces nouveaux inscrits pourront alors profiter de services tel que :

  • accéder à l’espace privé et participer à la vie éditoriale du site ;
  • participer à un forum ;
  • poster un commentaire sur un article (ou autre objet éditorial) ;
  • accéder à des parties restreintes de l’espace public [1] ;
  • etc.

Pré requis et configuration nécessaire

Pré requis
Que votre hébergeur accepte l’envoi de mail.

Configuration
Depuis l’espace privé, rendez-vous dans Configuration → Interactivité
et activez une des deux options suivantes :

  • Accepter les inscriptions dans le bloc « Inscription automatique de nouveaux rédacteurs » ;
  • Accepter l’inscription de visiteurs du site public dans le bloc « Visiteurs »

…sans quoi, la balise n’affichera rien.

Attention
Si vous êtes connecté, la balise n’affiche rien.

Principe de fonctionnement

Une fois le formulaire rempli (nom ou pseudo + email) et validé, trois choses :

  1. un message avertit le visiteur : "Votre nouvel identifiant vient de vous être envoyé par email." ;
  2. un email de confirmation est envoyé à l’adresse indiquée ;
  3. un nouveau compte est créé dans SPIP avec le statut nouveau (affiché « Inscription à confirmer » sur la page de cet auteur dans l’interface privée).
Menu Activité → Afficher les visiteurs

Le mail contient deux informations importantes :

  1. un lien de confirmation d’inscription ;
  2. ses codes d’accès (login et mot de passe).

La confirmation d’une inscription se fait soit au clic du lien dans l’email, soit à la première connexion. Si rien n’est fait dans les 45 jours, le compte est supprimé.

Dans vos squelettes

Le formulaire vient avec 3 arguments, tous facultatifs.
[(#FORMULAIRE_INSCRIPTION{statut, id_rubrique, url_destination})]

L’utilisation la plus simple est la balise sans argument.
#FORMULAIRE_INSCRIPTION

Elle permet l’inscription automatique de nouveaux rédacteurs.
Ces rédacteurs ont accès à l’espace privé avec des droits restreints.

Argument statut
[(#FORMULAIRE_INSCRIPTION{6forum})] est l’équivalente de la précédente, pour l’inscription des visiteurs (forums ou espace restreint réservé aux visiteurs enregistrés).
La valeur « 6forum » correspond à l’intitulé du statut de visiteur désiré lors de l’inscription.

Pour en savoir plus sur Le statut des auteurs dans SPIP

Argument id_rubrique
Est utilisé pour l’inscription d’administrateur restreint…à une rubrique précise.
Note : cet argument est en général très peu utilisé.

Argument url_destination
URL de destination utilisé dans le lien de confirmation d’inscription.

[(#FORMULAIRE_INSCRIPTION{6forum, 0, #URL_PAGE{bienvenue}})]

Si pas précisé, le lien renvoi vers la page d’accueil du site pour les visiteurs, et la page d’accueil de l’espace privé pour les rédacteurs et administrateurs.

Forcer la confirmation d’une inscription

Rappel : La confirmation d’une inscription se fait soit au clic du lien inséré dans l’email d’authentification, soit à la première connexion.

Il est possible de forcer l’utilisation du lien de confirmation contenu dans l’email. Il faut alors surcharger l’autorisation [2] autoriser_loger_dist(). Pour cela il faut ajouter dans un fichier mes_options.php la fonction suivante :

function autoriser_loger($faire, $type, $id, $qui, $opt) {
    if (in_array($qui['statut'], array('nouveau','5poubelle'))) {
        return false;
    }
    return true;
}

Enfin…

Une fois la personne connectée, la balise #FORMULAIRE_INSCRIPTION ne retourne plus rien.

Notes

[1La notion de partie publique avec accès restreint à des visiteurs authentifiés n’est pas une fonctionnalité proposée par défaut. Mais vous pouvez vous aider des balises #SESSION et #AUTORISER, ainsi que de ces plugins

[2Voir Surcharger une fonction _dist sur le site programmer.spip.net

Auteur peetdu, Teddy Publié le : Mis à jour : 17/07/23

Traductions : català, English, français, Nederlands