SPIP-Contrib

SPIP-Contrib

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

278 Plugins, 195 contribs sur SPIP-Zone, 32 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 – 1173 commentaires

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

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>

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

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

Retour en haut de la page

Vos commentaires

  • Le 18 juin à 20:27, par Wic En réponse à : Formulaire de contact avancé

    Bonjour,

    Je suis sous SPIP 2.0.7 (je sais, ça date, mais tout fonctionne tellement bien !) avec le formulaire de contact avancé.

    J’aurais souhaité bénéficier de deux formulaires de contact avancé, pour joindre des personnes différentes. Est-il possible de faire cohabiter deux instances de ce plugin ?

    MERCI de vos pistes...

    Wic

    Répondre à ce message

  • Le 31 mai à 10:54, par Juliette En réponse à : Formulaire de contact avancé

    bonjour,

    je vous contacte car je ne trouve pas de solution à mon problème : j’ai créé un formulaire de contact avancé qui fonctionne très bien, je suis sous spip 3.0.8 !
    MAIS... je ne reçois pas les mails, ni sur une adresse free, ni hotmail, ni gmail...
    mon site est hébergé chez hostpapa... je n’ai jamais eu de soucis auparavant avec sous les versions ultérieures de spip.
    Sur le site, aucun souci. le formulaire se rempli normalement, et il y a même le petit mot de la fin qui dit qu’il a été envoyé.
    mais je ne reçois rien... si quelqu’un à une petite idée, parce que là, je ne trouve pas...
    Merci

    • Le 31 mai à 11:26, par Pierre En réponse à : Formulaire de contact avancé

      As-tu installé le plugin Facteur ? Si la fonction mail de php est désactivé par ton hébergeur, ça vaudrait le coup de l’installer et de configurer le SMTP.

    • Le 31 mai à 11:50, par Juliette En réponse à : Formulaire de contact avancé

      rah lala, oui c’est ça effectivement j’avais oublié d’installer facteur !! Tout fonctionne ! Bêbête que je suis !!!!
      Merci ;)

    Répondre à ce message

  • Le 10 mai à 19:18, par Fennec72 En réponse à : Formulaire de contact avancé

    1re question :
    lorsque dans le couteau suisse, la « lame » « MailCrypt » est activée,
    dans le message que l’on reçoit, le courriel de l’expéditeur n’a pas d’arobase, mais un espace à la place, et, plus gênant, il n’y a d’URL que sur le nom de domaine,
    ce qui donne, en prenant pour exemple une adresse gmail.com, une URL uniquement sur gmail.com et non un lien mailto.

    2e question :
    serait-il possible de maîtriser le contenu du courriel que l’on reçoit ?

    Pour les infos entrées par l’expéditeur (les coordonnées notamment), le terme « Nom : » n’est pas précédé d’un espace et est donc collé au prénom, de même pour le terme « Téléphone » qui se retrouve collé au nom.

    Merci d’avance.

    Répondre à ce message

  • Le 15 avril à 16:33, par sibeles13 En réponse à : Formulaire de contact avancé

    bonjour, une question un peu nulle vu le degré des échanges ici (je débute), mais y-a-t-il moyen de faire en sorte que tous les champs soient alignés dans le formulaire ? comme ils collent aux textes, cela créé un effet de dégragé pas très agréable. Que devrais-je mettre dans ma .css pour corriger cela ? (et encore pardon si ma question paraît triviale ou la réponse évidente..)

    • Le 16 avril à 10:58, par sibeles13 En réponse à : Formulaire de contact avancé

      bien, j’ai maintenant un autre probleme, bien plus important. J’ai fait fonctionner ce plugin (formulaire de contact avancé 0.10.3) ... une fois. J’ai bien vu la fenetre avec une demande de confirmation, puis l’annonce de l’envoi. Mais voila, quand j’ai voulu recommencer, peu de temps après, plus rien : la page reste telle quelle, sans aucune indication, et les mails ne sont visiblement pas envoyés. J’ai testé aussi le plugin facteur (2.4.5), et il fonctionne, j’ai reçu le mail. Quelqu’un aurait une piste ? merci
      PHP Version 5.2.17

    Répondre à ce message

  • Le 10 avril à 09:34, par haqqtiviste En réponse à : Formulaire de contact avancé

    re bonjour

    l’url pour trouver les messages enregistrés sur le site serait celle ci : ?exec=contact_messages

    mais à cet url, j’ai cette erreur :

    Fatal error : Call to undefined function navigation_pagination() in /homez.577/crifranc/www/ecrire/inc/presenter_liste.php on line 107

    Répondre à ce message

  • Le 11 avril à 16:20, par Jacklyn En réponse à : Formulaire de contact avancé

    Bonjour,
    Je voudrais créer un article contenant le formulaire de contact avancé. Dans mon article, j’ai inscrit

    < formulaire|contact >

    (sans espace entre < et formulaire et contact et >
    Lorsque j’enregistre, je vois bien mon formulaire dans la partie privée. Sur la partie publique, là où je devrais voir le formulaire, s’affiche le texte suivant.

    <?php include_once("./" _DIR_RACINE "ecrire/balise/formulaire_.php"); if ($lang_select "fr"$lang_select lang_select($lang_select); inserer_balise_dynamique(balise_FORMULAIRE__dyn('FORMULAIRE_CONTACT'), array('''''''''fr')); if ($lang_selectlang_select(); ?>

    Qu’ai-je oublié de faire ? SPIP 2.19, Squelette Viaspip
    Merci pour la réponse.

    • Le 11 avril à 17:29, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Et en désactivant les plugins non obligatoire pour celui-là, afin de tester que ce soit bien ce plugin en cause ?

    • Le 12 avril à 09:30, par Jacklyn En réponse à : Formulaire de contact avancé

      Bonjour,
      Merci pour la réponse rapide. J’ai testé en désactivant des plugins et le responsable est celui correspondant au squelette du site : ViaSPIP 2.1.10b de JY Giraud. Plutôt gênant non ?

    • Le 12 avril à 15:23, par RastaPopoulos En réponse à : Formulaire de contact avancé

      À voir avec son auteur donc...

      Le squelette n’utilise pas #TEXTE<code> tel quel, mais utilise <code>[(#TEXTE*|ancres_intertitres{#ID_ARTICLE}|propre|image_reduire{600,0})]. Donc possible que le filtre qui passe avant propre() (qui gère les modèles) casse quelque chose dans l’histoire. Si c’est le cas ça vaudrait pour n’importe quel formulaire d’ailleurs, pas spécialement celui-là mais pour le modèle « formulaire » en général.

    Répondre à ce message

  • Le 12 avril à 14:11, par Juno_107 En réponse à : Formulaire de contact avancé

    Bonjour,
    j’ai mis ce formulaire sur mon spip or quand je confirme l’envoi du mail, il me retourne une série d’erreurs :
    Warning : strpos() expects parameter 1 to be string, array given in /home/mon-espaceweb/public_html/répertoire-Spip/ecrire/inc/filtres.php on line 458

    Warning : strpos() expects parameter 1 to be string, array given in /home/mon-espaceweb/public_html/répertoire-Spip/ecrire/inc/charsets.php on line 209

    Warning : preg_match_all() expects parameter 2 to be string, array given in /home/mon-espaceweb/public_html/répertoire-Spip/ecrire/inc/charsets.php on line 505

    Warning : preg_match_all() expects parameter 2 to be string, array given in /home/mon-espaceweb/public_html/répertoire-Spip/ecrire/inc/charsets.php on line 515

    Warning : wordwrap() expects parameter 1 to be string, array given in /home/mon-espaceweb/public_html/répertoire-Spip/ecrire/inc/envoyer_mail.php on line 162

    Pour l’instant, je n’ai pas encore touché ces fichiers => il s’agit d’une variable non-déclarée et comme le spip,il fait ses petits sur un ensemble de templates, j’y vais avec des pincettes.
    Quelqu’un a-t-il contourné ce bug ?
    environnement : SPIP 2.0.22

    autre info : je ne reçois pas non plus le résultat du formulaire dans ma mailbox, ce qui est assez embétant par ailleurs

    Répondre à ce message

  • Le 10 avril à 19:00, par Mandelkow En réponse à : Formulaire de contact avancé

    Est-il possible d´envoyer un mail à deux personnes en même temps via la balise dans un article ? Ex. : <formulaire|contact|auteur=2,34> Ou comment faut-il procéder ?

    Répondre à ce message

  • Le 10 avril à 09:21, par haqqtiviste En réponse à : Formulaire de contact avancé

    bonjour
    sous SPIP 3.05, plugin facteur + contact et autres

    le menu « activité > message enregistrés » n’apparait pas en bandeau.

    une piste ? ou une adresse directe ?

    merci

    Répondre à ce message

  • Le 5 avril à 11:52, par kris En réponse à : Formulaire de contact avancé

    Bonjour,

    Question peut-être idiote mais quel est le critère nécessaire à la balise pour récupérer les auteurs d’un article (page article.html) pour les proposer dans le select des destinataires ?

    Merci

    • Le 6 avril à 16:05, par Michel En réponse à : Formulaire de contact avancé

      Bonjour,
      Une question de taille :
      Par besoin, hier pour tester j’ai installé automatiquement dans un premier temps le plugin formulaire contact libre, mais en voulant un peu plus, j’ai installé toujours automatiquement le plugin contact avancé.
      J’ai fait des essais avec le premier, aucun Pb de com.
      Avec le second, j’ai eu un message d’erreur, et vu l’heure tardive, je voulais m’y remettre aujourd’hui.....MAIS impossible de me connecter à mon espace privé, j’ai le message suivant :
      [Fatal error : Cannot redeclare balise_config() (previously declared in /var/www/vhosts/catho85.org/subdomains/doyenne-fontenay/httpdocs/plugins/auto/spip-bonux/configurer/pipelines.php:299) in /var/www/vhosts/catho85.org/subdomains/doyenne-fontenay/httpdocs/plugins/auto/cfg/cfg_fonctions.php on line 45]
      L’installation des plugin étant automatique, la déclaration d’activation par simple coche et enregistrement, je ne vois pas ou j’ai fais une erreur.
      L’accès au site public semble aussi poser problème, en bidouillant dans le navigateur on arrive tout de même sur le site : [url]http://doyenne-fontenay.catho85.org/-%E2%96%BA-Paroisse-SAINT-MARTIN-EN-[/url] alors que c’est le lien que l’on récupère par google par exemple.
      Je soupçonne un conflit avec des plugin existants mais je n’ai pas de connaissances informatiques suffisantes pour être sûr.
      Cdlt
      Michel

    • Le 6 avril à 19:56, par RastaPopoulos En réponse à : Formulaire de contact avancé

      Les messages parlent des plugins Bonux et CFG, pas de celui là. Il faut que tu les mettes à jour car apparemment tu as de forts anciennes versions.

    • Le 8 avril à 19:27, par Michel En réponse à : Formulaire de contact avancé

      Merci, la MAJ du plugin cfg a réglé le Pb

    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

  • Transaction : créer des formulaires avec paiement en ligne

    13 mars 2011 – 94 commentaires

    Transaction est une extension du plugin de création de formulaires Formidable pour concevoir des formulaires de paiement en ligne et les connecter aux principales API bancaires françaises. Présentation Transaction introduit 3 nouveaux types de (...)

  • GIS 4

    11 août 2012 – 335 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Le plugin a2a pour lier des articles

    4 octobre 2009 – 73 commentaires

    Ce plugin permet de lier des articles de façon ponctuelle sans avoir à utiliser les mots-clés de SPIP. Il peut être utilisé pour mettre en place des liens de type "Lire aussi" comme dans le squelette Sarka-SPIP. Installation Installation et (...)

  • Formulaire de contact avancé

    23 mars 2009 – 1173 commentaires

    Un formulaire de contact configurable, avec de multiples options.

  • Brownie

    6 juillet 2012 – 35 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 et le (...)