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,
La version 0.16.4 pour spip 3.2 est-elle compatible php7 ?
Merci pour votre réponse.
Aucune idée, il faut tester :)
N’hésite pas à le dire s’il y a un problème
(Ce plugin reste un peu en l’état, il n’est plus vraiment maintenu depuis qu’il y a Formidable)
Bonjour,
Cela semble bien fonctionner. Mais si ce plugin n’est plus trop suivi, je vais voir du côté de Formidable si je trouve mon bonheur.
En tout cas merci pour le travail fourni.
Répondre à ce message
Bonjour,
Je mets une série de sites à jour vers la version 3.1.6 de Spip, avec formulaire de contact avancé v0.16.0.
Je viens de faire les 2 premiers sites, l’installation se passe bien mais dans les 2 sites, lors de la prévisualisation d’un mail, j’ai le message « Il y a 2 erreurs dans votre saisie, veuillez vérifier les informations. » Malgré cela, je peux envoyer le mail et il arrive à destination, mais ça fait désordre. :-)
Une idée ? D’avance merci.
Répondre à ce message
Bonsoir,
J’ai collé
dans mes_options.php et je ne vois nulle part apparaître le champ supplémentaire.
J’ai merdé quelquepart ? Y a-t-il un soucis avec la dernière version de spip que j’utilise ?
Ça y est, je viens de le trouver, toutes mes confuses il etait en bas...
par contre il est automatiquement en « obligatoire »
y a t’il un endroit ou je peux changer cette option ?
Répondre à ce message
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
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
à 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
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 ?
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.
Solution jquery :
Merci pour le JQuery, ça marche super !
Répondre à ce message
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
Ce n’est pas prévu comme option, non
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
Bonjour,
suite a mon installation, malgré tous mes essais, j’ai toujours droit a
auriez vous une idée ou chercher ?
merci
Répondre à ce message
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
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
Ça a été enlevé ya 4 mois car ça n’était quasiment jamais utile, le cas le plus courant étant de faire un formulaire pour contacter des responsables du site :
http://zone.spip.org/trac/spip-zone/changeset/95183/_plugins_/contact/trunk
Tu peux toujours surcharger ce squelette pour remettre tout le monde.
dommage de ne pas avoir lis une option.
je m’en servais...
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 : |