Les formulaires s’insèrent dans les squelettes par une simple balise ; SPIP se charge ensuite de gérer le comportement (souvent complexe) de ces formulaires en fonction de l’environnement et des configurations effectuées dans l’espace privé.
Fonctions interactives
- #FORMULAIRE_RECHERCHE
Il s’agit du formulaire du moteur de recherche intégré à SPIP. Il est présenté dans l’article sur les boucles de recherche.
- #FORMULAIRE_FORUM
Le #FORMULAIRE_FORUM
gère l’interface permettant de poster des messages dans les forums publics. Il concerne donc en premier chef la boucle FORUMS mais peut être utilisé dans toutes les boucles acceptant un forum :
Le formulaire dépend évidemment du choix des forums modérés a posteriori, a priori ou sur abonnement.
Par défaut, une fois le message posté, le visiteur est renvoyé vers la page de l’élément [1] auquel il a répondu. On peut décider de renvoyer le visiteur vers une autre page en passant une url en paramètre à cette balise. Par exemple :
-
[(#FORMULAIRE_FORUM{'spip.php?page=merci'})]
renverra vers la page spip ?page=merci.
-
[(#FORMULAIRE_FORUM{#SELF})]
renverra vers la page où le formulaire de forum est placé (voir la balise #SELF).
Dans le cas (très spécifique) où l’on a autorisé la présence de mots-clés dans les forums publics, on peut affiner le comportement de ce formulaire avec des variables de personnalisation.
- #FORMULAIRE_SIGNATURE
La balise #FORMULAIRE_SIGNATURE
affiche un formulaire permettant aux visiteurs du site de signer les pétitions associées aux articles. Cette balise se place donc dans une boucle ARTICLES.
La signature des pétitions réclame obligatoirement une validation des signataires par email. Ce formulaire n’a donc d’intérêt que si votre hébergeur autorise l’envoi de mails par PHP.
- #FORMULAIRE_SITE
La balise #FORMULAIRE_SITE
affiche un formulaire permettant aux visiteurs du site de proposer des référencements de sites. Ces sites apparaîtront comme « proposés » dans l’espace privé, en attendant une validation par les administrateurs.
Ce formulaire ne s’affiche que si vous avez activé l’option « Gérer un annuaire de sites » dans la Configuration sur site dans l’espace privé, et si vous avez réglé « Qui peut proposer des sites référencés » sur « les visiteurs du site public ».
Les sites référencés étant, dans SPIP, attachés aux rubriques, on ne peut placer ce #FORMULAIRE_SITE
qu’à l’intérieur d’une boucle RUBRIQUES.
- #FORMULAIRE_ECRIRE_AUTEUR
Placée à l’intérieur d’une boucle AUTEURS, cette balise affiche le formulaire qui permet d’envoyer un mail à l’auteur. Cela permet d’écrire aux auteurs sans divulguer leur adresse email sur le site public.
Placé dans une boucle ARTICLES, ce formulaire permet d’envoyer un mail à tous les auteurs de cet article.
Placé dans une boucle FORUMS, ce formulaire permet d’envoyer un mail directement à l’auteur du message si l’auteur est enregistré sur le site.
Inscription, authentification...
- #FORMULAIRE_INSCRIPTION
Sans doute le plus importante, la balise #FORMULAIRE_INSCRIPTION
affiche le formulaire permettant l’inscription. Voir la documentation sur cette balise.
- #FORMULAIRE_LOGIN
Depuis SPIP 3.0, cette balise généralise et remplace les balises #LOGIN_PRIVE
et #LOGIN_PUBLIC
. Elle peut recevoir 3 arguments
- l’URL de destination après identification. Cas spécifique : la valeur @page_auteur permet d’être redirigé après connexion sur le squelette public de l’auteur qui se connecte.
- le login de la personne à identifier, s’il est connu.
- une valeur qui indique si le login mène à l’espace privé (si elle n’est pas vide) ou public (si c’est une chaîne vide).
Par exemple, dans le squelette distribué avec SPIP, le fichier login.html contient l’appel suivant :
[(#FORMULAIRE_LOGIN{#ENV{url}|sinon{#URL_ECRIRE{accueil}}})]
Depuis SPIP 4.0, cette balise peut recevoir ses paramètres sous une nouvelle forme :
- l’URL de destination
- un tableau associatif d’options dont les valeurs peuvent être :
-
login
-
prive
-
autofocus
: lorsque cette valeur est false (une chaîne vide), il n’y aura pas d’autofocus sur le champ login (sinon, celui-ci reçoit le focus automatiquement).
Dans cet exemple théorique, le login redirige vers la page ’cible’ du privé, l’identifiant proposé est ’toto’ et il n’y a pas d’autofocus :
#FORMULAIRE_LOGIN{cible,#ARRAY{login,toto,prive,1,autofocus,""}}
- #LOGIN_PRIVE
(supprimée en SPIP 4.0)
Cette balise est dépréciée : utilisez plutôt #FORMULAIRE_LOGIN.
Elle affiche le formulaire d’accès à l’espace privé (la partie « /ecrire » du site).
Important : cette balise doit impérativement être présente dans le squelette appelé par la page spip.php?page=login
, c’est-à-dire dans le squelette nommé login.html
. En effet, lors des accès directs à l’adresse « /ecrire » de votre site, c’est vers spip.php?page=login
que SPIP va vous rediriger.
- #LOGIN_PUBLIC
(supprimée en SPIP 4.0)
Cette balise est dépréciée : utilisez plutôt #FORMULAIRE_LOGIN.
D’une utilisation beaucoup plus spécifique, la balise #LOGIN_PUBLIC
affiche un formulaire permettant à vos utilisateurs de s’identifier tout en restant sur le site public (sans entrer dans l’espace privé). Cette balise sert notamment à authentifier les visiteurs pour les sites proposant des forums modérés sur abonnement.
Le #LOGIN_PUBLIC
, par défaut, « boucle sur lui-même », c’est-à-dire que le formulaire revient sur la page où il se trouve. On peut cependant indiquer une page vers laquelle le formulaire mènera, sous la forme :
[(#LOGIN_PUBLIC{#URL_PAGE{mapage}})]
Si votre site offre une inscription automatique à l’espace privé, les données de connexion à l’espace public sont identiques à celles de l’espace privé ; c’est-à-dire que les données envoyées à l’utilisateur pour s’identifier à l’espace public lui permettent également d’accéder à l’espace privé. Si, au contraire, vous avez interdit l’inscription automatique à l’espace privé, il faut impérativement avoir au moins un article dont les forums seront réglés en mode « sur abonnement » pour activer cette balise ; dès lors, SPIP pourra fournir des informations de connexion pour le site public sans accès à l’espace privé.
- #URL_LOGOUT
C’est le pendant de #LOGIN_PUBLIC
; il donne une URL permettant à un visiteur authentifié de se déconnecter.
Noter que #URL_LOGOUT
étant une balise dynamique, elle renverra toujours quelque chose de sorte que les parties conditionnelles (La syntaxe des balises SPIP) de la balise seront toujours affichées. Ainsi une notation du type [<a href="(#URL_LOGOUT)">déconnexion</a>]
retournera le source html <a href="">déconnexion</a>
lorsque le visiteur n’est pas connecté. Pour un affichage conditionnel du lien de déconnexion, voir plus bas.
On peut passer un paramètre à cette balise pour spécifier l’adresse de retour après la déconnexion.
Par exemple
[(#URL_LOGOUT{#URL_PAGE{sommaire}})]
renverra vers la page d’accueil.
Exemple complet pour gérer la connexion / déconnexion
[(#SESSION{id_auteur}|non) #LOGIN_PUBLIC]
[(#SESSION{id_auteur}|oui)<a href="#URL_LOGOUT">déconnexion</a>]
Styles
On peut sensiblement modifier l’interface graphique des formulaires par l’intermédiaire des feuilles de style. Voir : « Ils sont beaux, mes formulaires ! »