SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [vi] [zh] Espace de traduction

Télécharger

Les formulaires

Août 2002 — mis à jour le : Septembre 2013

Toutes les versions de cet article :

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 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.

[SPIP 1.8.2] 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.

Historique : Pour les versions antérieures à [SPIP 1.9], il aurait fallu écrire merci.php3.

Jusqu’à [SPIP 1.9] , les fichiers de spip avaient une extension en .php3 et non en .php.

  • [(#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

Introduite dans [SPIP 1.4], 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

[SPIP 1.4] 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.

[SPIP 1.8.2] Placé dans une boucle ARTICLES, ce formulaire permet d’envoyer un mail à tous les auteurs de cet article.

[SPIP 1.8.2] 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 de nouveaux rédacteurs. Celui-ci ne s’affiche 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 ; ce formulaire ne fonctionne donc que si votre hébergeur autorise l’envoi de mails par PHP.

-  [(#FORMULAIRE_INSCRIPTION{6forum})]

Est l’équivalente de la précédente, pour l’inscription des visiteurs, appelés à écrire dans les forums (réservés aux visiteurs enregistrés), option qui se détermine dans la partie privée configuration/interactivité/Mode de fonctionnement par défaut des forums publics. Le paramètre « 6forum » correspond à l’intitulé du statut d’auteur désiré lors de l’inscription.

Après la validation, un message avertit le visiteur : "Votre nouvel identifiant vient de vous être envoyé par email."

-  #LOGIN_PRIVE

SPIP 1.4 Tout aussi importante (sinon plus), cette balise 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.

Historique : Pour les versions antérieures à SPIP 1.9, il s’agit du squelette appelé par la page spip_login.php3, c’est-à-dire en standard par le squelette nommé spip_login.html

De façon générale jusqu’à SPIP 1.9, les urls des pages générées par SPIP étaient de la forme http://monsite.net/xxx.php3 et non pas http://monsite.net/spip.php?page=xxx.


-  #LOGIN_PUBLIC

SPIP 1.4 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. 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 :

Une autre écriture est possible (et elle est la seule possible avec SPIP 2), il suffit de passer l’url en paramètre et non plus au travers du filtre. Ce qui donne :

Historique : Dans les versions antérieures à SPIP 1.9 il aurait fallu écrire mapage.php3 et non spip.php?page=mapage

De façon générale jusqu’à SPIP 1.9, les urls des pages générées par SPIP étaient de la forme http://monsite.net/xxx.php3 et non pas http://monsite.net/spip.php?page=xxx .

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 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.

[SPIP 1.8.2] On peut passer un paramètre à cette balise pour spécifier l’adresse de retour après la déconnexion. Par exemple [(#URL_LOGOUT{spip.php?page=sommaire})] renverra vers la page de sommaire.

Historique : Dans les versions antérieur à SPIP 1.9, il aurait fallu écrire [(#URL_LOGOUT{sommaire.php3})] et non pas [(#URL_LOGOUT{spip.php?page=sommaire})]

De façon générale jusqu’à SPIP 1.9, les urls des pages générées par SPIP étaient de la forme http://monsite.net/xxx.php3 et non pas http://monsite.net/spip.php?page=xxx.

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.

Depuis SPIP 2.0, il n’est plus utile d’utiliser du code php dans votre squelette ; vous pouvez désormais écrire :

pour afficher au choix le formulaire de login ou le lien de déconnexion en fonction de l’état (identifié/pas identifié) du visiteur.

En [SPIP 3.0], vous devez désormais écrire dans votre squelette :

Styles

On peut sensiblement modifier l’interface graphique des formulaires par l’intermédiaire des feuilles de style. Voir : « Ils sont beaux, mes formulaires ! ».

Notes

[1article, rubrique, brève, site ou forum


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé