Une page de contact dans mon SPIP

21 avril 2011,
par Romy Têtue

Mots-clefs associés à cet article :

Comment afficher simplement un formulaire de contact dans un site SPIP ? Facile, puisqu’il y en a autant que d’auteurs !

Beaucoup cherchent comment ajouter une « page contact » à leur site SPIP, avec un formulaire dédié, en installant des plugins pour ce faire... sans savoir que c’est déjà possible, dans SPIP, naturellement.

Y’a autant de formulaires de contact que d’auteurs !

Pour comprendre, reprenons depuis le début... À la première installation de SPIP, un premier compte utilisateur est créé, celui du « webmestre », qui est l’auteur numéro 1. Vérifiez que son adresse email est renseignée et qu’il est auteur d’au moins un article publié [*], puis rendez-vous sur le site public, à la page de cet auteur (en ajoutant « /?auteur1 » après le nom de domaine) : cette page affiche un formulaire qui permet d’écrire à l’auteur. Le voilà votre formulaire de contact !

Formulaire de contact de SPIP

De même, chaque nouvel auteur dont l’adresse courriel est renseignée [*], dispose d’un formulaire personnel, qui permet de le contacter sans divulguer son adresse. C’est ainsi dans SPIP, par défaut. Il n’y a effectivement pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs.

Ce n’est pas exactement ce que nous cherchons, mais cela révèle que le mécanisme est présent dans SPIP, nativement, sans qu’il soit nécessaire d’ajouter quoique ce soit. À partir de là, il ne faut plus grand chose, comme nous allons le voir, pour réaliser une page contact. Un peu d’astuce, d’espièglerie...

Transformer un auteur en page « contact »

Voici la méthode la plus simple, qui utilise le squelette auteur.html de la distribution de SPIP.

  1. Créez un utilisateur dédié, appelé « Contact », par exemple l’auteur n°1
  2. N’oubliez pas de renseigner son adresse email [*]
  3. Vous pouvez utiliser le champ « bio » pour donner d’autres informations de contact, comme par exemple l’adresse postale
  4. Pour que l’auteur existe en tant que tel, attribuez-lui un article publié [*]
  5. Affichez la page ?auteur1 pour vérifier que tout fonctionne
  6. Faites un lien vers cette page, depuis votre barre de navigation ou dans le pied de page, en ajoutant cette ligne à l’endroit voulu de vos squelettes :
    <a href="#URL_AUTEUR{1}">Contact</a>
    ou mieux :
    <BOUCLE_contact(AUTEURS){id_auteur=1}><a href="#URL_AUTEUR">#NOM</a></BOUCLE_contact>

C’est tout !

Transformer un article en page « contact »

Cette seconde méthode est moins évidente, mais néanmoins aussi facile que la précédente. Elle repose sur le fonctionnement spécifique du formulaire SPIP.

SPIP est distribué avec plusieurs formulaires prêts à l’emploi. Vous aviez spontanément et désespérément cherché la balise « #FORMULAIRE_CONTACT », mais il faut le savoir, c’est le tag « #FORMULAIRE_ECRIRE_AUTEUR » qui fabrique et affiche ce formulaire. Cette balise est un peu magique : elle fonctionne dans une boucle AUTEURS, évidemment, mais aussi dans les boucles ARTICLES, entre autres. Comme le dit la doc en ligne sur les formulaires SPIP : placé dans une boucle ARTICLES, ce formulaire permet d’envoyer un mail à tous les auteurs de cet article, sans autre forme de prise de tête. Ça ouvre des perspectives intéressantes, en permettant notamment de contacter plusieurs personnes d’un coup, façon mailing list !

  1. Créez un article intitulé « Contact » ou « Écrivez-nous », par exemple le n°7. Vous pouvez utiliser les champs pour afficher d’autres informations de contact, comme l’adresse postale, etc.
  2. Associez à cet article le (ou les) auteur(s) à contacter
  3. Ajoutez simplement la balise #FORMULAIRE_ECRIRE_AUTEUR dans votre squelette article.html. Pour que ce formulaire ne s’affiche pas dans tous les articles, mais seulement dans celui-ci, conditionnez sa présence ainsi :
    [(#ID_ARTICLE|=={7}|oui)#FORMULAIRE_ECRIRE_AUTEUR]
  4. N’oubliez pas de publier l’article ! Il est consultable à l’adresse URL ?article7 : vérifiez son bon fonctionnement.
  5. Pour finir, faites un lien vers cette page, en ajoutant cette ligne à l’endroit voulu de vos squelettes :
    <a href="#URL_ARTICLE{7}">Contact</a>
    ou mieux :
    <BOUCLE_contact(ARTICLES){id_article=7}><a href="#URL_ARTICLE">#TITRE</a></BOUCLE_contact>
Ma page contact

Je préfère utiliser un article pour fabriquer la page de contact, afin de pouvoir le ranger dans une rubrique et l’afficher dans l’arborescence du site, en bénéficiant de la jolie ré-écriture d’URL des articles et surtout pour pouvoir le dépublier facilement si besoin était — bref, pouvoir le manipuler comme n’importe quelle autre page du site, juste depuis l’espace privé.

- Mieux : un modèle prêt à l’emploi

On rêverait pouvoir tout faire depuis l’espace privé, sans devoir toucher aux squelettes du site, en insérant par exemple <formulaire_ecrire_auteur> dans le champ d’un article... Ce n’est malheureusement pas possible. Mais il suffit de fabriquer une noisette pour cela :

  1. Dans le sous-repertoire /modeles de votre dossier « squelettes », créez un fichier formulaire_contact.html contenant notre balise magique dans une boucle, nécessairement :
    <BOUCLE_article(ARTICLES){id_article}>#FORMULAIRE_ECRIRE_AUTEUR</BOUCLE_article>
  2. Vous pouvez ensuite utiliser ce formulaire dans n’importe quel article, sans oublier de passer son identifiant en paramètre, en saisissant <formulaire_contact|id_article=7>.

Cette noisette est distribuée dans ma trousse (qui fait aussi plein d’autres choses astucieuses et bien pratiques — ou pas). C’est la méthode que j’emploie sur tous mes sites, parce que codée une bonne fois pour toutes, prête à l’emploi. Mais nous sommes d’accord, ce n’est qu’une rustine, en attendant la distribution d’un joli <form|contact> prêt à l’emploi.

Créer un squelette « contact » dédié

  1. Il s’agit de créer un squelette dédié, contact.html, contenant la balise #FORMULAIRE_ECRIRE_AUTEUR dans une boucle AUTEURS (ou ARTICLES, selon l’une des deux approches exposées précédemment)
  2. Cette page est consultable à l’adresse URL ?page=contact
  3. Voici comment la lier dans les squelettes :
    <a href="#URL_PAGE{contact}">Contact</a>

Cette troisième méthode n’est pas la plus simple et est moins avantageuse que les précédentes, car cette page n’est pas un objet éditorial de SPIP : c’est un fichier quasi statique, qu’on ne peut donc pas « dépublier » facilement depuis l’espace privé, qui, de même, n’est pas facilement éditable, et qui ne bénéficie pas de la réécriture d’URL en vigueur sur le site, etc. Bref, c’est pas pratique.

{#TITRE,#URL_ARTICLE,#INTRODUCTION}

Vos commentaires

  • Le 21 avril 2011 à 10:22, par Nicolas Hoizey En réponse à : Une page de contact dans mon SPIP

    J’ajouterais qu’il est possible d’utiliser le mécanisme de forums aussi, ça permet d’avoir une trace des messages sans rien coder ni aucun plugin...

  • Le 21 avril 2011 à 10:37, par Jacques Pyrat En réponse à : Une page de contact dans mon SPIP

    En utilisant le critère {tous} dans la boucle, cela permet aussi d’afficher le formulaire de contact pour les auteurs sans article publié ;-)

  • Le 22 avril 2011 à 08:51, par denisb En réponse à : Une page de contact dans mon SPIP

    le très bon « Formulaire de Contact Avancé »... qui tient en 1125 fichiers ! Mais... avez-vous vraiment besoin de tout ça ?


    perso, je n’en compte qu’une soixantaine (à rapprocher de la cinquantaine de "la trousse à Têtue 2").

    l’un des intérêts principaux de "formulaire de contact avancé" étant de conserver en base de données tous les messages adressés par son entremise.

  • Le 22 avril 2011 à 10:01, par Romy Têtue En réponse à : Une page de contact dans mon SPIP

    @denisb : tu oublies les dépendances !!! Je viens de mettre à jour ce plugin de contact sur un petit site et c’est la longueur de l’opération qui a attiré mon attention sur le nombre de fichiers... Waouh ! Au final ma trousse fait plus de choses, en moins de fichiers ;) Mais on s’en fiche : ce n’est pas le nombre qui compte, mais l’adéquation au besoin.

  • Le 27 avril 2011 à 19:47, par b_b En réponse à : Une page de contact dans mon SPIP

    Plop Romy, j’avais en stock un petit plugin pour pallier à ce manque de SPIP. Ton article m’a fait penser qu’il serait peut être utile de le partager. Le voici donc sur SPIP contrib :

    http://www.spip-contrib.net/Formulaire-de-contact-libre

    Bises ++

  • Le 30 avril 2011 à 12:04, par wlid En réponse à : Une page de contact dans mon SPIP

    cela permet aussi d’afficher le formulaire de contact pour les auteurs sans article publié ...

  • Le 20 mai 2011 à 00:42, par Isabelle Saillot En réponse à : Une page de contact dans mon SPIP

    Bonjour,
    merci pour ce tuto. J’ai opté pour la formule simple de créer un article « Contact » (N°23), j’ai mis la condition dans article.html et inséré la boucle auteur là où il fallait, dans les onglet de navigation tout en haut. Résultat il affiche bien le formulaire..... mais toute la page d’accueil en dessous ! comment faire pour afficher le formu dans une page vierge ?
    MERCI D’AVANCE !
    Isabelle

  • Le 20 mai 2011 à 01:02, par Isabelle Saillot En réponse à : Une page de contact dans mon SPIP

    Rebonjour,
    j’ai trouvé l’erreur !! (j’avais mal positionné ma balise #FORMULAIRE_ECRIRE_AUTEUR
    Maintenant autre pb : le texte ne s’affiche pas à côté des boîtes..... « votre adresse mail » s’affiche à côté de « Sujet » et après il y a 2 boîtes juxtaposées..... Si vous pouvez m’indiquer une piste...
    MERCI
    Isabelle

  • Le 26 octobre 2011 à 07:45, par rakoto En réponse à : Une page de contact dans mon SPIP

    Serait-il possible d’afficher un formulaire de contact en bas de chaque article avec spip ? Y aurait-il un plugin spécial pour cela ? Si cela était possible avec spip, je changerai mon fusil d’épaule. Bien à vous

  • Le 12 décembre 2011 à 10:03, par paul En réponse à : Une page de contact dans mon SPIP

    Merci pour cet article. La formulaire s’affiche bien sur mes pages auteurs mais impossible de le recevoir. Est-ce que cela peut venir de SPIP ou uniquement du serveur e-mail de mon site ? Je suis chez OVH. Merci

    Mutuelle


    La mutuelle santé assure toujours un bon résultat. La complémentaire santé dite aussi mutuelle permet de diminuer le prix sur sa formation mutuelle.

  • Le 16 décembre 2011 à 15:53, par Romy Têtue En réponse à : Une page de contact dans mon SPIP

    @rakoto : oui, très simplement : il suffit d’ajouter le tag #FORMULAIRE_ECRIRE_AUTEUR en bas du squelette article.html

  • Le 25 février 2012 à 23:28, par tounse En réponse à : Une page de contact dans mon SPIP

    bonjour
    comment modifier les champs du formulaire dans la seconde méthode
    merci

  • Le 25 février 2012 à 23:30, par tounse En réponse à : Une page de contact dans mon SPIP

    de plus, ps : j’ai mis l’article contact dans la rubrique contact et j’ai donc 2 contact dans mon menu, comment résoudre cela ?
    merci

  • Le 18 mars 2012 à 01:08, par Matias Grenn En réponse à : Une page de contact dans mon SPIP

    Je suis heureux de lire ce que je dis à tue tête à tous ceux qui m’installent « tables & forms » pour ne faire qu’un formulaire de contact : si on apprend à utiliser les boucles et les fonctionnalités de base de SPIP, on rèpond à une grande partie des besoins. J’utilise des plugins, oui, mais l’objectif est d’en utiliser le moins possible.

  • Le 11 août 2012 à 08:22, par ambiancedecor En réponse à : Une page de contact dans mon SPIP

    Merci à toi pour toutes tes astuces très appréciables quand on démarre (ou presque) avec spip.
    Notamment pour celle-ci, j’ai testé la version transformer un article en page contact et ça fonctionne parfaitement. Merci !
    Et merci au passage à Jacques Pyrat, j’ai rajouté, comme il l’a suggéré le {tous} et ça marche très bien aussi.
    J’aimerais ajouter un autre formulaire mais en pouvant changer les intitulés et en en ajoutant. Tu ferais comment toi ?

  • Le 12 août 2012 à 13:07, par ambiancedecor En réponse à : Une page de contact dans mon SPIP

    Dans l’intervalle, j’ai testé le plugon formidable qui me convient tout à fait.
    Mais merci quand même pour le formulaire de contact.

  • Le 19 avril 2014 à 18:40, par Henson En réponse à : Une page de contact dans mon SPIP

    Bonsoir,
    Je suis tombé par hasard sur cet article en recherchant comment créer mon propre site internet. Je souhaiterais donc le mettre et vois dans les commentaires que vous parlez de plugin. Au final que me conseilleriez vous ? Plugin ou version présentée ici ?

    Merci et a bientot (très bon blog au passage)

  • Le 26 novembre 2014 à 18:23, par paulbe En réponse à : Une page de contact dans mon SPIP

    Petite pétouille dans ton texte ;-)

    Au point 1 de « Mieux : un modèle prêt à l’emploi », il manque un e> à la fin de la ligne de code :-)

    Sinon merci pour l’article :-D

  • Le 21 août 2015 à 10:32, par sebastian En réponse à : Une page de contact dans mon SPIP

    Je ne parle pas français et je besoin d’aide.
    Besoin de supprimer le champ « Objet » et changer le
    "< : envoyer_message :>" mais ont eu tendance résultats.
    Je tiens également à personnaliser le format de l’email qui atteint l’auteur de l’article et pas où.
    Merci pour les réponses.
    Sebastian.

  • Le 30 novembre 2021 à 18:05, par Ben En réponse à : Une page de contact dans mon SPIP

    Merci Romy ! c’est une super documentation qui m’a fait gagner un temps précieux <3

Répondre à cet article

forum message

Raccourcis : {{gras}} {italique} -liste [bla->url] <q> <quote> <code>.

Qui êtes-vous ? (optionnel)

Suivre les commentaires : RSS 2.0 | Atom