SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 172 visiteurs en ce moment

Accueil > Interactivité, échanges > Formulaires > Formulaire de contact configurable > Formulaire de contact avancé

Formulaire de contact avancé

23 mars 2009 – par Pierre_31, RastaPopoulos – 1374 commentaires

169 votes

Un formulaire de contact configurable, avec de multiples options.

Préambule

SPIP propose nativement #FORMULAIRE_ECRIRE_AUTEUR qui permet d’écrire à un auteur précis. On peut donc l’utiliser pour la page de contact du site, en mettant le webmestre en auteur. Cette approche peut paraître limitée. Imaginons donc un formulaire entièrement configurable.

Ce formulaire remplace — et donc supprime — le plugin « Formulaire de contact configurable » avec lequel il a fusionné. Les utilisateurs migrants de l’un à l’autre devront donc reconfigurer le formulaire. Par ailleurs, et depuis la rédaction de cet article le plugin évolue, nous vous conseillons de lire également « Le formulaire de contact évolue ».

Installation

Comme pour les autres plugins, vous devez télécharger le paquet ci-joint et placer son contenu dans votre dossier plugins/.

Vous devez utiliser PHP 5 pour faire marcher le plugin Voyez avec votre hébergeur si ce n’est pas le cas par défaut. Surtout que PHP 4 n’est plus maintenu.

Ensuite il faut aller dans l’interface de gestion des plugins, l’activer et enfin cliquer sur l’icône d’outils pour le configurer. Au préalable vous devrez installer les plugins cfg, spip-bonux, et Jquery UI.

Alternativement, vous trouverez aussi ce plugin dans la liste d’installation automatique fournie par spip-contrib (il faut pour cela avoir un dossier plugins/auto).

Utilisation

Pour afficher ce formulaire dans un squelette :

Appel classique :

Appel avec l’auteur 34 pré-selectionné :

Appel AJAX (sans rechargement de la page) :

Pour afficher ce formulaire dans un contenu :

Appel classique :

Appel avec l’auteur 34 pré-selectionné :

Appel AJAX (sans rechargement de la page) :

Configuration

Il y a trois principales choses à configurer :

  • La liste des auteurs à qui le courrier pourra être envoyé
  • La méthode de choix pour le visiteur
  • Les éventuelles informations supplémentaires

On peut choisir l’ordre des informations supplémentaires par simple glisser-déplacer à la souris. L’ordre sera gardé en mémoire et repris alors sur le site public.


Personnaliser l’affichage des champs d’informations

Par défaut, le plugin affiche un champ texte basique pour chaque information supplémentaire demandée. Mais parfois, on veut personnaliser ces champs, par exemple pour restreindre des valeurs. Et bien c’est prévu !

Pour cela, il faut connaître l’identifiant du champ que l’on veut personnaliser. Il suffit de regarder dans le HTML l’attribut name du champ. Sinon la liste complète des champs par défaut se trouve dans le fichier contact_options.php.

Vous n’avez alors plus qu’à créer un fichier : /formulaires/contact_champ_*nomduchamp*.html, dans votre dossier squelettes ou dans votre plugin.

Par exemple, si vous voulez mettre une liste déroulante pour restreindre les pays, il faut créer un fichier /formulaires/contact_champ_pays.html, dans lequel vous pourrez mettre par exemple :

  1. <li class="saisie_#ENV{name}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)obligatoire][ (#ENV*{erreurs}|table_valeur{#ENV{name}}|oui)erreur]">
  2. <label for="info_#ENV{name}">
  3. #ENV{titre}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)<strong><:info_obligatoire_02:></strong>]
  4. </label>
  5. [<span class="erreur_message">
  6. (#ENV*{erreurs}|table_valeur{#ENV{name}})
  7. </span>]
  8. <select name="#ENV{name}" id="info_#ENV{name}">
  9. <option
  10. value="England"[
  11. (#ENV{#ENV{name}}|=={England}|oui)selected="selected"]>
  12. England
  13. </option>
  14. <option
  15. value="France"[
  16. (#ENV{#ENV{name}}|=={France}|oui)selected="selected"]>
  17. France
  18. </option>
  19. </select>
  20. </li>

Télécharger

Dans le fichier, #ENV{name} correspondra à l’identifiant du champ, et #ENV{titre} à son titre dans la langue courante. #ENV{#ENV{name}} correspond donc à la valeur déjà tapée du champ en question.

Ajouter de nouveaux champs

Le plugin prévoit un point d’entrée qui permet, lorsqu’on s’y connecte, d’ajouter autant d’entrées que l’on veut.

Il faut tout d’abord s’inscrire dans le point d’entrée.

Soit dans un plugin

  1. <pipeline>
  2. <nom>contact_infos_supplementaires</nom>
  3. <inclure>un_fichier.php</inclure>
  4. </pipeline>

Télécharger

Soit dans le mes_options.php de votre site

  1. $GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|montruc_contact_infos_supplementaires';

Ensuite dans la fonction qui s’est insérée dans le point d’entrée :

  1. function montruc_contact_infos_supplementaires($champs){
  2. // Le paramètre contient tous les champs par défaut avec :
  3. // clé = le "name" du champ
  4. // valeur = le titre du champ
  5. $champs['nouveau_truc'] = 'Un titre';
  6.  
  7. // Si votre site est multilingue, il faut utiliser une chaine de langue
  8. $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite');
  9.  
  10. return $champs;
  11. }

Télécharger

Et c’est tout.
Par défaut le champ sera une entrée de texte simple, et vous pouvez le personnaliser comme décrit dans le point précédent.

Voir en ligne : http://plugins.spip.net/contact

Dernière modification de cette page le 5 avril 2015

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 26 juin à 13:55, par Amire En réponse à : Formulaire de contact avancé

    Bonjour,

    J’essaye de personnaliser le formulaire contact avec les class de Bootstrap. J’ai besoin des labels pour afficher « Nom », « Pays ». Quelqu’un peut m’aider SVP ? Merci.

    Répondre à ce message

  • Le 23 mars à 09:28, par Chourak En réponse à : Formulaire de contact avancé

    Bonjour,

    J’ai noté un souci de comptage du nombre d’erreurs à la soumission d’un formulaire.
    J’ai remarqué que la variable de retour d’erreur concernant les informations de pièces jointes ($erreurs[’infos_pj’]) était constamment présente, qu’on ait activé l’autorisation d’envoi des pièces jointes ou non.

    J’ai réglé ca chez moi par

    1. if($pj_fichiers)
    2. $erreurs['infos_pj'] = $infos_pj;

    Télécharger

    à la ligne 287

    Et ca fait le boulot, par contre je ne sais pas si c’est la façon de faire adéquate :)

    Répondre à ce message

  • Le 22 septembre 2016 à 13:58, par Manu En réponse à : Formulaire de contact avancé

    Pré-remplir le sujet du mail
    Parce que j’utilise d’utiliser le formulaire de contact avancé pour différents usages, j’aimerais pouvoir « pré-remplir » le sujet du mail par des textes qui seraient différents selon le contexte. A priori, je n’ai pas vu cette possibilité dans la documentation du plugin.
    Est-ce que quelque chose comme
    <formulaire|contact|auteur=34|sujet=un texte personnalisé>
    est possible ? Pas possible ?

    • Le 22 septembre 2016 à 14:54, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Pas prévu non. Et il y a déjà plus d’options que ce qui était prévu au départ. Pour des formulaires vraiment pleins d’options, il faut plutôt se tourner vers Formidable.

    • Le 2 octobre 2016 à 11:38, par Pi r En réponse à : Formulaire de contact avancé

      Solution jquery :

      #FORMULAIRE_CONTACT
      <script type="text/javascript">
      (function($, window) {
      $("#info_sujet").val("En réponse au truc #TITRE");
      })(jQuery, window);
      </script>
    • Le 25 février à 00:13, par zaa En réponse à : Formulaire de contact avancé

      Merci pour le JQuery, ça marche super !

    Répondre à ce message

  • Le 30 septembre 2016 à 13:47, par Didier En réponse à : Formulaire de contact avancé

    Bonjour,
    J’utilise le formulaire de contact avance, et cela fonctionne tres bien.
    Je voudrais desactiver la previsualisation, est-ce possible de le faire simplement ? Ou bien faut-il entrer dans le code ?
    Cordialement,
    Didier

    • Le 30 septembre 2016 à 14:07, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Ce n’est pas prévu comme option, non

    • Le 1er novembre 2016 à 20:26, par jeromeD En réponse à : Formulaire de contact avancé

      Bonsoir RastaPopoulos,
      Je reviens sur cette question. Je comprends que ce ne soit pas une option mais en bidouillant est-ce possible ?
      Si oui pourrais-tu m’éclairer sur ce point ?

      J’ai fait apparaître la partie « piège à spammeur », as-tu des retours sur son efficacité ?

      En te remerciant par avance
      Jérôme

    Répondre à ce message

  • Le 14 octobre 2016 à 21:09, par stephane En réponse à : Formulaire de contact avancé

    Bonjour,

    suite a mon installation, malgré tous mes essais, j’ai toujours droit a

    Une erreur de transmission s’est produite, merci de renouveler votre demande.

    auriez vous une idée ou chercher ?
    merci

    Répondre à ce message

  • Le 27 septembre 2016 à 19:40, par DD En réponse à : Formulaire de contact avancé

    Bonjour,

    J’ai coché la case « inscription à la newsletter » (pas obligatoire) = oui dans la config du plugin et pourtant il y a un hic quelque part car même si l’internaute coche la case (oui est bien enregistré en base dans le texte du message) il n’est pas inscrit à la newsletter, même pas au statut « à confirmer ».
    J’ai 2 newsletters configurées (1 ouverte / 1 fermée)

    Est-ce qu’il faut l’inscrire manuellement ou bien j’ai loupé autre chose ?

    Merci

    Formulaire de contact version : 0.15.13 SVN [95695]
    SPIP 3.1.2
    Mailsubscriber version : 1.9.0 SVN [98721]

    Répondre à ce message

  • Le 2 juillet 2016 à 13:04, par bcaron En réponse à : Formulaire de contact avancé

    Auparavant on pouvait envoyer un message aux visiteurs+admin+auteurs
    Maintenant je ne vois plus que les admins+auteurs.
    Il y a une option pour permettre d’envoyer un message aux visiteurs aussi ?
    Merci

    Répondre à ce message

  • Le 29 février 2016 à 11:35, par mirobolus En réponse à : Formulaire de contact avancé

    Bonjour à tous,
    J’utilise ce plugin sur de nombreux sites et sur l’un d’eux j’ai eu besoin de proposer l’envoi de pièces jointes.
    Je rejoins les discussions sur ce sujet puisque le fonctionnement du plugin n’est à ce jour pas satisfaisant : le destinataire reçoit le mail sans la pj, et lorsqu’il consulte le message dans l’espace privé elle n’apparait pas non plus.
    Les documents joints arrivent cependant bel et bien sur le serveur dans un dossier tmp/contact_pj.
    Il n’est pas envisageable pour moi que je demande à mon client de récupérer ces fichiers par FTP. Il va me rire au nez...

    Quelle solution alors ? Est-ce que cette question est en cours d’étude ? J’avais relevé cette discussion dans le fil des commentaires ci-dessous : http://contrib.spip.net/Formulaire-de-contact-avance?debut_comments-list=-1#forum461076. Est-ce que ce ne serait qu’une histoire de compatibilité entre plugins ?
    Merci pour vos réponses.

    • Le 29 février 2016 à 12:01, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Ce n’est pas « en cours d’étude ». Quand les pièces jointes ont été ajoutée, dès le début ça envoyait tout bien par email sans aucun problème, ça a toujours marché comme ça. Si ça ne marche plus c’est qu’un bug est apparu peut-être…

    • Le 29 février 2016 à 12:33, par mirobolus En réponse à : Formulaire de contact avancé

      Ah flûte... Alors pour ce qui me concerne, depuis le 16 mars 2015, et avec un spip et des plugins mis à jour dès que c’est nécessaire, mon client n’a jamais reçu aucun pièce jointe.
      Et les messages reçus ne sont pas listés dans l’espace d’admin (Activité > Messagerie de contact) sauf un : le tout premier qui date du lundi 16 mars 2015 (pas de trace d’envoi avant cette date).

    • Le 29 février 2016 à 18:34, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Bon j’ai fait une correction, les boutons de suppression sont de retours, et ça envoie bien dans les emails :
      http://zone.spip.org/trac/spip-zone/changeset/95626

    • Le 1er mars 2016 à 12:19, par mirobolus En réponse à : Formulaire de contact avancé

      Merci Rastapopoulos. Je viens de mettre à jour et j’ai vidé les caches.
      Voici mes observations :
      Le dernier message posté par un visiteur via le site (avant ma mise à jour) me donne un « Accès interdit : Vous n’avez pas le droit d’accéder à la page message. » quand je cherche à le consulter via le lien inclus dans le mail.
      J’ai fait le test sans être authentifiée (et après ma mise à jour), idem.
      Si je suis authentifiée (je n’ai pas testé les différents rôles, je suis admin-webmestre) et que je poste un message, je peux le consulter mais ici : dans Messagerie interne > onglet Boîte d’envoi (.../ecrire/ ?exec=messages&quoi=envoi&typem=tout). J’y vois uniquement mes messages, pas ceux des autres utilisateurs (qui ne sont listés nulle part).

      Par ailleurs, le PDF joint pendant mes tests n’apparaissent ni dans le mail reçu, ni dans l’espace privé. Je les trouve bel et bien sur le serveur.
      On peut continuer en mj si tu veux.

    • Le 1er mars 2016 à 14:34, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Pour les emails c’est déjà bien envoyé comme il faut, je reçois bien tout.

      Pour dans le SPIP, je viens de faire ça :
      http://zone.spip.org/trac/spip-zone/changeset/95650

      Maintenant j’ai bien tout (par contre SPIP n’affiche pas les documents joints aux objets messages sur la page des messages :( ).

    • Le 1er mars 2016 à 17:06, par mirobolus En réponse à : Formulaire de contact avancé

      Alors ça me semble résolu après avoir fait un grand nettoyage, y compris dans la bdd.
      Je reçois désormais les pièces jointes par mail.
      J’accède au message via le lien inclus dans le mail reçu, que je sois authentifiée ou pas, avec un email connu ou non.
      Reste que :
      -  Je ne vois pas non plus les fichiers joints dans l’espace d’admin (mais je les trouve dans la médiathèque effectivement). L’idéal serait qu’on en ait une trace dans le corps du message qui indiquerait par exemple les noms des fichiers joints. Ce serait pas mal à défaut de résoudre la visibilité des pj elles-mêmes.
      -  Curiosité : Les messages que j’ai envoyés sous mon email de super-admin sont classés dans l’onglet « Boîte d’envoi ». Les messages que j’ai envoyés avec un email pas encore connu sont classés dans la « Boite de réception ». Mais c’est peut-être fait exprès ?
      En tout cas, l’affaire est résolue. Merci !

    • Le 12 juillet 2016 à 14:28, par mirobolus En réponse à : Formulaire de contact avancé

      Un petit retour sur mon utilisation du plugin :
      -  depuis la dernière mise à jour, le nombre de pj n’apparait plus dans le corps du message reçu.
      -  les messages reçus sont à nouveau listés dans l’espace privé (mais dans l’onglet « Boîte d’envoi »).
      -  ils ne comportent pas d’indication du nb de pièces jointes attachées.
      C’est presque parfait donc :)

    Répondre à ce message

  • Le 24 juin 2016 à 19:12, par efche En réponse à : Formulaire de contact avancé

    Bonjour,
    j’ai ajouté un champ supplémentaire mais ne vois pas comment modifier l’ordre, il apparaît en fin.
    Merci d’avance.

    • Le 27 juin 2016 à 08:57, par yooda En réponse à : Formulaire de contact avancé

      Bonjour

      J’ai réussi à le déplacer avec un simple sélectionner/glisser de la souris.

      J’ai ajouté un champ supplémentaire et je me retrouve avec 2 plugins identiques dans la liste, mais comme c’est simplement un pb d’affichage a priori ça ne me semble pas trop grave.

      Par contre, je voudrais mettre comme valeur de mon champ supplémentaire l’ID de l’article qui contient le formulaire et je ne vois pas comment faire. Je souhaites appeler le formulaire dans plusieurs articles et connaitre de quel article il a été posté.

      Merci d’avance

    Répondre à ce message

  • Le 14 juin 2016 à 09:13, par robomatix En réponse à : Formulaire de contact avancé

    Bonjour à tous,

    Nous souhaiterions modifier légèrement la mise en forme de la notification envoyés aux contacts du formulaire généré par le plugin Formulaire de contact avancé. Il s’agirait de mettre en gras le label des champs dans le mail envoyé...

    J’ai essayé de faire cela de plusieurs façon mais rien à faire... Spip envoie toujours le mail de base...

    Est ce que quelqu’un aurait une piste ?

    Merci d’avance !

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • La Fabrique

    20 avril 2012 – 315 commentaires

    La Fabrique est un outil pour webmestres ou développeurs qui souhaitent créer des plugins. La Fabrique est capable de générer le code source minimal d’un plugin pour SPIP 3 (elle accélère donc le démarrage d’un plugin) et peut s’occuper également de (...)

  • Formulaire upload

    25 septembre 2012 – 34 commentaires

    Ce plugin permet d’uploader des documents depuis l’espace public Objectifs Ce plugin permet d’ajouter un formulaire dans l’espace public pour uploader et gérer des fichiers. A priori, il peut se greffer sur tous types objets SPIP : articles, (...)

  • Publier archivelist.txt via svn/terminal

    10 août 2009 – 11 commentaires

    Objectif : mettre à jour l’index archivelist.txt Environnement : commandes svn via terminal Si vous désirez voir publié dans la zone la version paquet de votre contribution, il faut ajouter la ligne nécessaire dans le fichier archivelist.txt. (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre 2016 – 10 commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

  • Refonte de l’identité graphique

    10 juillet – 31 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

Ça spipe par là