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 :
- <li class="saisie_#ENV{name}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)obligatoire][ (#ENV*{erreurs}|table_valeur{#ENV{name}}|oui)erreur]">
- <label for="info_#ENV{name}">
- #ENV{titre}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)<strong><:info_obligatoire_02:></strong>]
- </label>
- [<span class="erreur_message">
- (#ENV*{erreurs}|table_valeur{#ENV{name}})
- </span>]
- <select name="#ENV{name}" id="info_#ENV{name}">
- <option
- value="England"[
- (#ENV{#ENV{name}}|=={England}|oui)selected="selected"]>
- England
- </option>
- <option
- value="France"[
- (#ENV{#ENV{name}}|=={France}|oui)selected="selected"]>
- France
- </option>
- </select>
- </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
- <pipeline>
- <nom>contact_infos_supplementaires</nom>
- <inclure>un_fichier.php</inclure>
- </pipeline>
Soit dans le mes_options.php de votre site
- $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 :
- function montruc_contact_infos_supplementaires($champs){
- // Le paramètre contient tous les champs par défaut avec :
- // clé = le "name" du champ
- // valeur = le titre du champ
- $champs['nouveau_truc'] = 'Un titre';
- // Si votre site est multilingue, il faut utiliser une chaine de langue
- $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite');
- return $champs;
- }
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.




Version 0.11.0
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
# Le 12 avril à 15:25, par RastaPopoulos
En réponse à : Formulaire de contact avancé
Je ne saurais dire... ce n’est pas moi qui me suis occupé du passage en SPIP 3 de ce plugin, si mes souvenirs sont bons, et du coup je ne sais pas ce qui a bougé depuis, dans cette version.
# Le 12 avril à 15:27, par RastaPopoulos
En réponse à : Formulaire de contact avancé
En tout cas la page dont tu parles n’existe pas dans les dossiers de ce plugin :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/contact/trunk/prive
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
(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.
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
# Le 12 avril à 14:18, par RastaPopoulos
En réponse à : Formulaire de contact avancé
Quelle version du plugin ?
Perso je n’ai plus de SPIP 2.0 sous la main pour tester si ça marche encore dans cette version (qui n’est plus supportée).
# Le 12 avril à 14:43, par Juno_107
En réponse à : Formulaire de contact avancé
Bon sang, quelle réactivité !!
Version : 0.8.3 [65862] — stable
Répertoire : contact
# Le 12 avril à 15:17, par RastaPopoulos
En réponse à : Formulaire de contact avancé
Normalement corrigé par :
http://zone.spip.org/trac/spip-zone/changeset/71985
Soit mettre à jour par SVN, soit attendre le nouveau paquet (une fois par heure).
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