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 :
#FORMULAIRE_CONTACT
Appel avec l’auteur 34 pré-selectionné :
#FORMULAIRE_CONTACT{34}
Appel AJAX (sans rechargement de la page) :
<div class="ajax">
#FORMULAIRE_CONTACT
</div>
Pour afficher ce formulaire dans un contenu :
Appel classique :
<formulaire|contact>
Appel avec l’auteur 34 pré-selectionné :
<formulaire|contact|auteur=34>
Appel AJAX (sans rechargement de la page) :
<div class="ajax">
<formulaire|contact>
</div>
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.
Discussions par date d’activité
463 discussions
Bonjour,
Je me retrouve face à un problème que je n’arrive à résoudre. J’utilise ce plugin depuis quelques temps sans aucun soucis, depuis quelques semaines il m’est impossible de récupérer les messages laissé via le formulaire de contact.
Je peux parfaitement répondre au formulaire mis sur le site internet, je l’envoie, j’ai bien le message comme quoi le message est bien envoyé, mais je ne reçois jamais la notification sur ma boite mail ni directement sur la page admin du site.
J’ai tenté de désinstaller le plugin et de relancer mais rien ne change, pouvez-vous me donner une idée pour corriger le problème, avez-vous déjà eu ce genre de problème ?
Merci d’avance
Si ça marchait avant et plus maintenant, c’est qu’il y a eu un changement depuis. Donc déjà est-ce qu’il y a eu des mises à jour entre les deux moments ?
S’il n’y a NI mail envoyé NI enregistrement en base, c’est qu’aucun des traitements n’ai fait. Ou bien que ça plante sur le premier des deux (je crois que c’est le mail en premier) et que du coup le suivant ne se fait pas.
Je ne vois pas de mise à jour significative dans le plugin là depuis des mois. Mais ça peut être dans le plugin Facteur aussi, pourquoi pas.
Merci de votre réponse.
Effectivement, il y a eu des mises à jour, que ce soit du plugin ou de spip en lui même, je met à jour au fur et à mesure !
J’ai également tester de désinstaller facteur puis de relancer mais cela ne corrige pas le problème.
A titre d’info j’ai également tenté de mettre le plugin « contact libre » qui est très simple d’utilisation avec très peu de personnalisation, j’arrive au même constat, je ne reçois strictement rien !
Ah ok donc déjà tu as un info en plus : ça ne vient clairement pas de ce plugin, puisqu’aucun mail ne part même avec autre chose. Donc ça vient de Facteur ou de la configuration que tu y as mise, càd la config d’avoir quoi sont envoyés les mails (le SMTP, etc).
Si tu vas dans la config du Facteur et que tu envoies le mail de test ?
Non, dans facteur il me dit avec une petite croix rouge « Vérifier le fichier Log » !!
Mode boulet j’aurais du préciser de suite !^^
Je le trouve où se fichier log ? (oui j’ai accès au FTP)
Je peux vous le mettre ici sans soucis de sécurité, sa serait plus simple pour vous je pense !?
Et bien si c’est un problème du Facteur, il faudrait poser la question… dans le forum du plugin Facteur. :)
Là tes mails ne partent pas du tout donc c’est que la config de Facteur n’est pas bonne.
Les logs sont dans /tmp/logs/.
Répondre à ce message
Bonjour,
j’utilise le plugin sur deux sites différents avec les mêmes réglages dans les informations à collecter : Prénom, Nom et 1 pièce jointe autorisée. J’affiche le formulaire dans un contenu avec un auteur pré-sélectionné.
Dans la partie public du site 1 tous les champs s’affichent : « Prénom », « Nom », « Adresse email », « Sujet », « Texte », « Bouton » pour sélectionner un fichier.
Dans la partie public du site 2 seuls les champs suivant s’affichent : « Adresse email », « Sujet », « Texte ».
J’ai beau chercher je ne trouve pas pourquoi cette différence d’affichage.
Répondre à ce message
Bonjour,
Un petit bug dans formulaires/contact.php ligne 200.
Si un fichier uploadé porte le même nom qu’un fichier existant dans contact_pj/ , celui ci est renommé de cette façon :
$nom_pj = $nom_pj.’_’.rand() ;
Le soucis est que l’on récupère l’extension du fichier après le renommage.
donc il faudrait remplacer cette ligne par :
$nom_pj = rand().’_’.$nom_pj ;
Cela n’arrive pas souvent car les fichiers sont supprimés lors de l’envoi du mail mais si on charge 2 fichiers avec le même nom (ou que le serveur refuse de supprimer les fichiers) ça devient génant.
J’espère que c’est clair...
merci
très clair. Je viens de commiter.
http://zone.spip.org/trac/spip-zone/changeset/87648/
merci pour le signalement.
La prochaine fois, n’hésite pas à faire directement le correctif ;-)
Répondre à ce message
Dommage que l’on ne puisse pas remplacer « email » par « courriel » qui est le terme officiel utilisé dans les administrations.
A moins que…
Il vous suffit de remplacer :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/contact/trunk/lang/contact_fr.php#L96
'message_redemander_pass' => 'Votre adresse email "@email@" était déjà enregistrée suite à un message de contact. Pour valider votre compte, demandez un <a href="@url_pass@">changement de mot de passe</a> et identifiez vous une première fois.',
par :
'message_redemander_pass' => 'Votre adresse courriel "@email@" était déjà enregistrée suite à un message de contact. Pour valider votre compte, demandez un <a href="@url_pass@">changement de mot de passe</a> et identifiez vous une première fois.',
et :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/contact/trunk/lang/paquet-contact_fr.php#L9
'contact_description' => 'Ce plugin permet de composer librement un formulaire de contact (nom, prénom, adresse, téléphone,...) et de choisir la liste des destinataires qui recevront par mail les informations collectées.',
par :
'contact_description' => 'Ce plugin permet de composer librement un formulaire de contact (nom, prénom, adresse, téléphone,...) et de choisir la liste des destinataires qui recevront par courriel les informations collectées.',
Puis de mettre les deux fichiers modifier dans le dossier « squelettes/contact/lang » (que vous aurez créer avant).
De vider votre cache y compris celui de votre navigateur et cela doit être bon.
Possible même que dans votre dossier « squelettes/contact/lang », il vous suffit de ne mettre dans les fichiers « contact_fr.php » et « paquet-contact_fr.php » uniquement que les deux lignes modifier ci-dessus, à voir.
Je viens de remplacer les lignes en question dans les fichiers appropriés aux lieux et place dits mais rien à faire.
email revient dans le formulaire contact de ma page d’accueil :(
J’ai pourtant essayé avec les deux versions…
Je suis en local, est-ce la raison ?
Ça marche chez vous ?
Je viens de remplacer les lignes en question dans les fichiers appropriés aux lieux et place dits mais rien à faire. email revient dans le formulaire contact de ma page d’accueil :(
J’ai pourtant essayé avec les deux versions…
Je suis en local, est-ce la raison ?
Ça marche chez vous ?
Bonsoir :-)
Essayez en mettant les fichiers dans « squelettes/lang » à la place de « squelettes/contact/lang ».
Je n’ai pas tout à fait les mêmes liens… mais il s’agit des mêmes fichiers.
J’ai essayé dans :
http://localhost:8888/squelettes/contact/lang/…
http://localhost:8888/squelettes/lang/…
http://localhost:8888squelettes/…
mais email apparaît toujours :(
Je vais finir par adopter « formidable », ce que je souhaitais pas car il exige 4 autres plugins, ce qui risque d’augmenter le risque d’incompatibilité…
Je ne comprends pas pourquoi RastaPopoulos (l’auteur de « Formidable ») n’a pas repris le terme de courriel dans « Contact avancé » au lieu de email…
Problème de compatibilité avec Spip ? En attendant, je sèche… :-(
La chaine de langue indiquée par Franck n’est pas la bonne. Si Rastapopoulos n’utilise pas courriel, c’est qu’il utilise la chaîne de langue.
dans squelettes/lang/local_fr.php
mettre
et ca roule
Pour en savoir plus sur les chaînes de langue : http://programmer.spip.net/Fichiers-de-langues
et pour savoir quel est la chaîne de langue à modifier, utiliser le var_mode=traduction (http://www.spip.net/fr_article4453.html)
Yesss ! ! ! Super !
Merci Maïeul ;)
Répondre à ce message
Bonjour,
Coment installé le capcha FB Antispam dans ce formilaire avancé ?
Merci d’avance
Répondre à ce message
Bonjour,
Merci pour ce plugin très utile qui devrait à mon avis faire partie du « delivery » de Spip.
J’ai néanmoins une question : est-il possible de l’utiliser au moyen d’un lien comme le formulaire standard de Spip ? Par exemple, en utilisant un code du type :
Il afficherait lors d’un clic sur le lien le formulaire de contact avancé en pré-sélectionnant le webmaster comme destinataire.
Merci d’avance pour votre réponse.
Bonjour,
N’ayant pas de réponse, dois-je en conclure que ce n’est pas possible ? Si c’est le cas, une extension est-elle prévue pour rajouter cette fonctionnalité ?
Merci d’avance pour votre réponse.
Je ne sais pas de quel « formulaire standard de SPIP » tu parles, mais un formulaire n’est pas un « lien », ça n’a rien à voir. Un lien c’est vers une page (ou un morceau de page, si lien ajax dans une box ou autre). Un formulaire c’est un mécanisme fonctionnel qui se situe sur une page.
Tu mets ton formulaire sur la page que tu veux et cela que ce soit en squelette directement ou dans un contenu (texte d’un article par exemple) en appelant le formulaire. Et ensuite tu fais un lien vers cette page. Il y a tous les exemples qu’il faut dans le chapitre « Utilisation » ci-dessus, y compris pour comment pré-sélectionner.
Répondre à ce message
Bonjour,
Merci pour ce plugin qui me sert à merveille selon mes besoins.
Toutefois, est-il possible de se passer de la prévisualisation avant envoi du formulaire ?
Ne peut-on pas envoyer le formulaire automatiquement ?
Merci pour vos réponses, cordialement
Jérôme
Ce n’est pas prévu pour l’instant, non.
Merci pour cette réponse rapide.
et tant pis pour moi...
Bonne soirée
Répondre à ce message
Bonjour,
Je suis en SPIP 3.0.16 avec la version 0.11.1 du plugin,
Lorsque un visiteur enregistré non rédacteur poste un message à un administrateur du site par exemple, celui-ci est correctement enregistré dans la table spip_messages si le paramètre est défini comme tel.
L’administrateur reçoit bien le message avec un lien permettant de lire celui-ci dans l’espace privé. SAUF QUE l’accès lui est refusé avec le message :
Le souci ne réside non pas dans les droits d’accès mais au fait que l’auteur du message est un visiteur sans accès à l’espace privé. En changeant l’ « id_auteur » par phMyAdmin pour celui d’un administrateur, le lien devient actif et le message s’affiche.
PROPOSITION
Quand un administrateur (0minirezo) clique sur le lien reçu dans un message de contact, le fait qu’il soit administrateur devrait prendre le pas sur le statut de l’auteur du message et celui-ci devrait s’afficher sans message d’erreur.
Il est probable que ce soit SPIP lui-même qui soit à l’origine du problème et qu’une surcharge appropriée soit à même de le résoudre.
Une idée ?
Merci
Un petit up au message :
Le souci est encore plus parlant si l’auteur du message de contact n’est pas du tout enregistré sur le site. Il est dommage de devoir utiliser « Vertèbres » pour afficher le contenu de la table spip_messages.
un autre up :
le plugin place "contac" dans le champ « type » de la table spip_messages. Si on change cette valeur par phpMyAdmin pour l’une des trois valeurs standard de SPIP correspondant aux 3 onglets de la messagerie interne :
le message s’affiche alors normalement dans l’interface de la messagerie interne et le lien reçu par mail fonctionne alors parfaitement.
il faudrait donc soit surcharger l’interface privée pour mettre un quatrième onglet correspondant aux messages de type "contac" (ce que devrait sans doute faire le plugin) soit faire une surcharge quelque part pour mettre "normal" à l’envoi du message dans le champ type de la table spip_messages.
Une idée ?
merci.
RESOLU
Voici la surcharge qui va bien
fichier : squelettes/prive/inclure/organiseur-reception.html.
Je ne sais pas pourquoi je ne peux pas placer le code ici avec la balise code.
Je le mets donc en téléchargement sur mon site. J’ai changé l’extension html en html.txt pour faciliter le téléchargement.
http://www.asc-annemasse.com/organiseur-reception.html.txt
Le reste relevait d’erreurs de ma part (utilisation et configuration)
En effet, sans cette modification, les messages de contact ne sont pas consultables dans l’espace privé.
Répondre à ce message
Bonjour,
je me suis déjà servi de ce plugin mais sur mon site, le formulaire ne s’affiche pas, quelqu’un a-t-il une explication ?
dans mon squelette, j’ai mis
#FORMULAIRE_CONTAC
Tbon, j’ai supprimé et remis la page, cela fonctionne, a n’y rien comprendre
Répondre à ce message
Bonjour,
Deux coquilles relevées dans plugin contact, fichier formulaires/contact.php :
ligne 113 :
$erreurs[’message_erreur’] = ’Une erreur de transmission s\’est produite, merci de renouveller vôtre demande.’ ;
- > renouveler
- > votre
Voilà :-)
Oui merci c’est corrigé.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |