SPIP permet une grande interaction du site avec les visiteurs ; pour cela, il propose de nombreux formulaires sur le site public, permettant tantôt de gérer les accès à l’espace privé, tantôt d’autoriser l’ajout de messages et signatures.
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.
Le formulaire dépend évidemment du choix des forums modérés a posteriori, a priori ou sur abonnement.
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
Le #FORMULAIRE_SIGNATURE autorise la signature des pétitions associées aux articles (ce formulaire se place donc dans une boucle ARTICLES.
N.B. 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
[SPIP 1.4] Le #FORMULAIRE_SITE affiche une interface 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
[SPIP 1.4] Placé à l’intérieur d’une boucle AUTEURS, ce formulaire permet d’envoyer un mail à l’auteur (d’un article). Cela permet, en modifiant les squelettes (qui, par défaut, affichent les liens contenant les adresses email des auteurs des articles), de pouvoir écrire aux auteurs sans afficher leur adresse email sur le site public.
Inscription, authentification...
#FORMULAIRE_INSCRIPTION
Sans doute le plus important, le #FORMULAIRE_INSCRIPTION gère l’inscription des nouveaux rédacteurs. Il n’affiche une interface d’inscription que si vous avez autorisé l’inscription automatique depuis le site public (sinon, cette balise n’affiche rigoureusement rien).
L’inscription nécessite l’envoi des informations de connexion (login et mot de passe) par email ; donc ce formulaire ne fonctionne que si votre hébergeur autorise l’envoi de mails par PHP.
#LOGIN_PRIVE
[SPIP 1.4] Tout aussi important (sinon plus), le #LOGIN_PRIVE 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_login.php3
, c’est-à-dire en standard par le squelette nommé login-dist.html
. En effet, lors des accès directs à l’adresse « /ecrire » de votre site, c’est vers spip_login.php3
que SPIP va vous rediriger.
#LOGIN_PUBLIC
[SPIP 1.4] D’une utilisation beaucoup plus spécifique, #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. Elle peut aussi servir de brique de base pour restreindre l’accès à certains contenus sur le site public : mais cela reste d’un maniement complexe, et nécessitera encore des développements et la rédaction de tutoriels complets avant d’être facilement utilisable par tous ; néanmoins, un exemple d’utilisation avancée est donné plus bas.
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 :
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 [SPIP 1.5] est le pendant de #LOGIN_PUBLIC
; il donne un URL permettant à un visiteur authentifié de se déconnecter.
Voici un exemple simple, mais complet, d’utilisation de ces deux balises. Il faut passer par un peu de php pour tester la variable $auteur_session
, qui indique qu’un auteur est identifié ou non. Si c’est le cas, on peut récupérer (voire tester) son statut, son login, etc., via $auteur_session['statut']
....
Notez bien que le contenu n’est « sécurisé » que sur ce squelette. Si votre squelette « imprimer cet article », par exemple, ne vérifie par $auteur_session
, tout le monde (y compris les moteurs de recherche !) pourra avoir accès à ce fameux contenu que vous souhaitez protéger.
Feuilles de style
On peut notablement modifier l’interface graphique des formulaires par l’intérmédiaire des feuilles de style, notamment les classes forml, spip_encadrer et spip_bouton.