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
RE : il me manque le mail
impossible de rejoindre le correspondant
le mail utilisé pour la reponse est l’adresse free par defaut du compte
xxx@free.fr
cette adresse n’est pas configuré dans spip je ne sais pas ou l’appelle a la fonction mail se fait et comment il a recupéré cette adresse
merci
probleme resolu par l’installation du plugin facteur
avec aucun parametrage de ce plugin j’ai maintenant <**site**>mail de l’expediteur dans la demande de renseignement
merci pour tous
Répondre à ce message
RE : il me manque le mail
impossible de rejoindre le correspondant
le mail utilisé pour la reponse est l’adresse free par defaut du compte
xxx@free.fr
cette adresse n’est pas configuré dans spip je ne sais pas ou l’appelle a la fonction mail se fait et comment il a recupéré cette adresse
merci
Est-ce que vous avez le plugin Facteur ?
Je viens encore d’essayer avec ET sans, et dans les deux cas j’ai bien l’adresse demandée dans le formulaire en tant qu’expéditeur du mail (le champ « From » ou « De », dans le lecteur de courriels).
Par exemple là je viens de taper l’adresse « truc@machin.com » dans le formulaire. Et quand le mail arrive, dans le champ « De » de Thunderbird, j’ai cette ligne :
« Nom de mon site »
Et quand on fait répondre, ça répond bien à l’adresse tapée. Je n’arrive pas à reproduire votre bug.
Répondre à ce message
Je cherche désespérément l’interface de configuration. Comment y accéder ?
Se rendre sur la page de configuration :
url_de_mon_site/ecrire/?exec=cfg&cfg=contact
Plus généralement, il faut aller sur la page « Configuration -> CFG » ou bien tout simplement sur la page de gestion des plugins, sur la ligne affichant les plugins configurables, il y a une icône « outils » sur laquelle on peut cliquer pour configurer.
Répondre à ce message
formulaire super simple a configuer
http://assau.free.fr/hand/spip.php?article3
juste l’adresse mail de celui qui le rempli ne m’ai pas communiqué
dur dur de lui repondre
Ben normalement l’adresse de celui qui répond n’est pas dans le contenu du mail, mais tout simplement en tant qu’expéditeur du mail. Non ?
Répondre à ce message
Bonjour,
Génial mais...
Si je force le recalcul de la page ou si je viens juste de vider le cache j’ai l’erreur :
Fatal error : Allowed memory size of 8388608 bytes exhausted (tried to allocate 19456 bytes) in /home/ventedir/www/ecrire/public/composer.php(73) : eval()’d code on line 304
Avec un cache de 24h, je suppose que l’erreur se produit chaque jour...
Très très ennuyeux...
Que faire alors ? une idée ?
Votre PHP est configuré pour utiliser seulement 8Mo de mémoire. C’est extrêmement peu ! Il faut au minimum 16Mo. Et si vous pouvez, plus.
Répondre à ce message
Bonjour et merci pour le formulaire avance.
Quand j’essaye d’envoyer un message, j’ai le message d’erreur suivant après avoir cliqué sur « Envoyer un message »
Warning : rawurldecode() expects parameter 1 to be string, array given in ..../ecrire/inc/filtres.php on line 1762
Quand je force l’envoi du message j’ai l’erreur suivante :
Warning : rawurldecode() expects parameter 1 to be string, array given in .../ecrire/inc/filtres.php on line 1762
J’ai activé Document à télécharger + installé le plugin Facteur. Je suis sous Spip 2.08
Et le mail n’arrive pas...
Merci pour ton aide
Comme déjà vu dans plusieurs autres messages en dessous :
Pour ne plus avoir le bug, il faut donc mettre à jour SPIP. Soit en le récupérant par SVN si vous savez le faire. Soit il faut attendre la sortie de la version 2.0.9 qui intègrera le correctif.
Si le mail n’arrive pas, c’est une autre erreur qui n’a rien à voir avec le rawurldecod().
As-tu bien configuré le plugin Facteur afin qu’il envoie avec le SMTP de ton choix ?
Merci pour tes réponses « super - rapides » :-)
J’essaye d’utiliser de préférence php mailer.
Quand je fais un test de configuration de facteur, je reçois bien un message du site.
J’ai essayé plusieurs variantes pour le formulaire, mais rien ne semble passer.
J’suis perdu
Répondre à ce message
Bonjour,
Intéressant pour certains usages. Mais il est dommage qu’il remplace le formulaire par défaut pour écrire à un auteur. Avoir les deux serait bien pratique (par exemple un formulaire général développé pour le site et des formulaires simples pour contacter les auteurs).
Mais de quoi parlez vous ? En quoi remplace-t-il celui des auteurs puisqu’ils n’ont pas le même nom ?
#FORMULAIRE_CONTACT
#FORMULAIRE_ECRIRE_AUTEUR
Deux formulaires, deux usages différents.
Répondre à ce message
Bonjour, je cherche désespérément la même chose, mais pour les sites. Le formulaire de base est trop limité. Existe-t-il un formulaire configurable s’appuyant sur « Champs Extras 2 » (je suis sous Spip 2.0.8) et auquel on peut ajouter des champs, lesquels champs apparaissent dans l’interface privée une fois le formulaire de sites soumis ?
Pas à ma connaissance, mais n’est-ce pas déjà le cas de base en installant Extra2 et Extra2 Interface ?
Répondre à ce message
Il manque un
necessite
dansplugin.xml
: je suis en train de l’installer sur SPIP 2.0.8, mais ce plugin ne fonctionne pas sans CFG ;-)Oh la boulette de débutant ! Merci Romy, c’est corrigé sur SVN.
Répondre à ce message
Salut à tous,
je viens d’installer se formulaire de contact sur mon nouveau site. Ca marche très bien par contre je trouve qu’il ne rend pas super bien niveau esthetique.
J’aimerai changer un peu la forme du formulaire.
En effet, les champs pour entrée les informations s’affiche sur toute la largeur de la page se qui n’est pas jolie.
Peut on réduire la taille et modifier le positionnement de ces champs ? et si oui comment ?
merci
Le formulaire utilise la structure HTML et les styles CSS par défaut préconisés dans SPIP. S’il s’affiche mal, c’est donc uniquement dû aux feuilles de styles utilisées sur votre site. Il faut donc modifier vos styles afin d’avoir le rendu visuel voulu.
À mon sens, la méthode la plus simple pour styler les formulaires, c’est d’utiliser la feuille « spip_formulaires.css » fournit par défaut dans SPIP, et de la surcharger ou de l’améliorer en fonction de ses propres besoins.
Y a-t-il une URL publique pour que je puisse voir plus facilement le problème ?
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 : |