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,
Avez-vous déjà rencontré ce problème ou avez vous une explication ? Pour le formulaire en ligne, il marche apparemment avec une adresse mail de chez cegetel.net et chez me.com mais visiblement les mails n’arrivent pas avec des adresses comme yahoo.fr, gmail.com ou hotmail.fr. Est-il possible que ce soit l’hebergeur qui bloque ces adresses ou... ??? C’est vraiment étrange. Voici le site que je suis en train de construire : http://www.expatodyssee.com/spip.php?rubrique27
Merci de vos réponses.
Est-ce trop de vous demander des coordonnées d’hébergeur fiable ?
Merci
Ben ça peut venir de plusieurs endroits :
Dans tous les cas, ce n’est probablement pas lié à ce plugin puisqu’il ne fait qu’utiliser la même fonction que SPIP, avec les mêmes paramètres.
Alternativement, vous pouvez essayer d’ajouter le plugin Facteur, qui permet de configurer SPIP pour envoyer avec votre propre serveur de mail et non pas celui de l’hébergeur du site.
Répondre à ce message
Hello,
Juste une petite erreur de validation avec le code suivant dans le formulaire :
<label for="destinataire"><:contact:form_destinataire:></label>
Le for désigne un id qui n’existe pas. Je pense qu’on peut le supprimer.
Oui il y a en plusieurs endroits : un avec le select qui a bien un id, et l’autre avec les cases à cocher. Je l’ai supprimé dans ce cas.
Répondre à ce message
merci de cette réponse rapide, je vais essayer
Répondre à ce message
je ne reçois rien dans ma boîte non plus. Mac OS X en local poour le moment.
Merci de me donner des indications.
Cordialement
Avec mac osx et si votre serveur web est standard, c’est normal de ne pas recevoir de mail puisqu’il n’y a pas de mécanisme d’envoi.
Par ailleurs, dans le cadre d’un site distant il se peut que selon là config de votre hébergement les mails mettent du temps à être envoyés, une chose à tenter est de renseigner l’adresse optionnelle d’envoi (dans la config de spip :
onglet « intéractivité » > adresse email d’envoi optionnelle)
avec une adresse utilisant le nom de domaine.
Ne pas oublier de vider le cache, et éventuellement reconfigurer le plugin....
Répondre à ce message
Salut à tous,
Moi j’ai installé ce plugins avec cfg et spip bonux. Il apparait parfaitement sur mon site mais je ne recois aucun mail.
Apres des test d’envoi, il me demande bien de confirmer mon envoi et ensuite me confirme « message envoyé », cependant je ne recois rien dans ma boite.
Quelqu’un a une idée du problème ?
Est-ce que vous recevez d’autres mails du SPIP ? Annonce de publication d’article, mot de passe oublié ou autre ?
Si ce n’est pas le cas, c’est tout simplement que SPIP n’arrive pas à utiliser la fonction mail() de votre serveur.
Répondre à ce message
Bonjour,
Le plug-in est installé avec spip-bonux et cfg, cependant lorsque je configure les champs formulaire, j’ai ce message d’erreur.
Ainsi lorsque je reçoit un mail posté depuis le formulaire, je n’ai aucune référence, ni IP, et surtout ni adresse e-mail de la personne qui envoi le message, j’ai simplement le titre et le contenu du message, rendant la communication impossible puisque je ne sais pas à qui répondre.
Merci pour l’info !
C’est corrigé pour l’erreur du array_flip, mais pour les autres points je ne reproduis pas. Le formulaire envoie bien l’adresse courriel du contact (c’est l’expéditeur) et l’IP aussi (dans les entêtes du message : X-Originating-IP).
Bonjour,
L’erreur aray est maintenant juste, merci.
J’aimerais bien supprimer « sujet [obligatoire] » ainsi que « texte de votre message[obligatoire] », Uniquement sur le plugin, j’ai beau triturer je ne récolte que des erreurs.
Comment je doid faire.
Merci
Il faut modifier
formulaires/contact.php
dans la fonction « verifier » pour enlever les tests sur les champs que vous ne voulez pas obligatoire. Ainsi queformulaires/contact.html
pour enlever la mention « obligatoire » dans le HTML.De ce pas j’y vais ,
merci
Bonjour,
Impeccable pour les champs obligatoires, mais je ne comprends pas, j’ai modifié les intitulés des champs à « contact_option.php » et « contact_fr.php » et une fois visible par le visiteur, !??, tout est mélangé, des champs qui devraient être en tête sont en bas, des champs qui devraient se suivre, sont séparés, et je n’ai pas modifié l’ordre.
Une idée ?
Merci
Bonjour, encore moi,
À force de test, je remarque qu’en recevant ce courriel, il est sans (aucun objet), en attendant une nouvelle version de ce plugin si j’ai bien compris avec possibilité d’envoyer fichier joint, comment pourrais-je faire pour que ce courriel affiche l’objet de cet envoi.
Merci, et encore bravo.
Salut,
J’ai fais une bidouille à moi, c’est peut-être pas propre, mais en attendant c’est cool, j’ai supprimé (obligatoire) remplacé #ENVsujet_contact par mon titre qui reste fixe, et le tour est joué, y a sûrement mieux, mais en attendant....
Merci et salut
Répondre à ce message
Bonjour à tous,
Merci pour ce plugin d’une très grande simplicité de mise en œuvre. Dans la configuration du plugin, j’ai coché l’option « Permettre à l’utilisateur de choisir les destinataires ». Lorsqu’un utilisateur remplit le formulaire, nulle part il lui est demandé à qui il veut l’envoyé ! Ai-je raté quelque chose ?
Merci de vos/votre réponse(s) et bonne journée à tous.
Gérald
Avez-vous sélectionné plus d’un auteur (donc au moins deux) parmi les destinataires possibles ?
Je n’avais pas percuté qu’il fallait sélectionner les différents destinataires dans la page de config !
Merci
Répondre à ce message
Bonjour,
Je le trouve génial, il se prend facilement en main.
Il fonctionne bien, ce qui n’empêche pas d’avoir cette erreur : Warning : array_flip() [function.array-flip] : The argument should be an array in /homez.34/maiquez/www/mbs/ecrire/public/composer.php(51) : eval()’d code on line 213 dans l’espace privé, un rapport ? avec le plugin
Un grand merci à Pierre Fiches, et RastaPopoulos.
Répondre à ce message
Bonjour , le formulaire fct tres bien mais j’aimerais savoir si il est possible d’ajouter une pieces jointe ?
Bientôt bientôt. C’est prévu pour la version suivante avec une dépendance non-obligatoire au plugin Facteur (qui gère les fonctionnalités avancées de courriel, dont l’envoi de pièces jointes).
Répondre à ce message
Hello :)
Nickel ce plug,mais chez moi ca délire !
Obtenu ce soir en testant un formulaire de contact, embeddé dans un article comme suis :
en validant le message, en lieu et place du formulaire je récupère :
Version :
SPIP 2.0.6 [13835] + plugin version 0.3 [27505]
C’est grave Docteur ???
Merci pour vos retours :)
EDIT : Pardon pour le bruit ! Corrigé en mettant Spip-Bonux à jour (j’avais qques rev de retard ^^)
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 : |