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,
est ce que la fonction mail utilise par ce plugin fonctionne chez free.
J ai fait un test qui n a pas ete tres concluant ....
Est ce que quelqu un a deja rencontre ce probleme ?
Merci de vos reponses.
Il n’y a qu’une fonction mail() dans PHP et elle a été désactivée il y a déjà un certain temps par Free. Mais vous avez une autre option : installer le plugin Facteur qui permet d’utiliser un serveur SMTP personnalisé (par exemple le votre, celui de votre email).
Vous pouvez le récupérer par SVN, ou bien avec ce ZIP : http://files.spip.org/spip-zone/plugin_facteur.zip
En bonus, avec Facteur d’activé, le plugin Contact permet aussi l’envoi de pièces jointes par les visiteurs.
Répondre à ce message
Bonjour à tous,
j’ai installé la version 29697 en conjonction avec le plugin facteur (29345) pour envoyer des emails avec pièces jointes, et ça fonctionne bien SAUF dans le cas ou le nom du fichier contient un caractère accentué.
Dans ce cas, l’email part sans pièce jointe et le fichier « attaché » reste collé dans le répertoire tmp/contact_pj.
S’agit-il d’une spécificité de mon hébergement, d’un shmurtz résiduel du plugin contact ou d’un défaut du plugin facteur ?
Help :) !
Argh. Je vais tester ça, j’avoue que je n’ai jamais mis d’accent dans des noms de fichiers, notamment parce que ça fout la merde car les système windows et unix ne gèrent pas ces noms de la même manière. Donc quand on est régulièrement amené à passer des fichiers de l’un à l’autre... on fait gaffe.
Je fais des tests et je corrige dès que possible.
Merci.
J’ai pensé à insérer une fonction de renommage du fichier sur le serveur une fois l’upload effectué (virer les caractères accentués, les espaces, etc.) mais j’ai pas vraiment le temps ni le niveau pour m’autoriser une intrusion dans le code :) ...
Je bosse pour des juristes, qui ne savent pas ce qu’est unix ni une page de code, et qui croient qu’un ordinateur portable est synonyme de windows... Va leur expliquer qu’il faute éviter les caractères spéciaux dans un nom de fichier !
C’est fait ! La version 0.5.2 du plugin modifie les noms de fichier des PJ afin de faire :
Avec ça... devrait plus y avoir de conflit, ou alors ça n’a rien à voir avec le plugin. :)
Bonjour,
je viens d’installer le plugins sous SPIP 2.0.8 avec le squelette Eva web 4.
Le formulaire est tronqué (le titre « envoyez un message » n’apparait pas)et quand j’envoie (message avec ou sans accents !) j’ai :
Warning : rawurldecode() expects parameter 1 to be string, array given in ... /ecrire/inc/filtres.php on line 1762
Mais j’ai aussi le bouton « confirmer l’envoi » bien que collé au haut du formulaire donc pas très visible et l’envoi fonctionne.
Est ce que cela peut venir d’un souci de compatibilité avec les squelettes Eva à votre avis ??
En tout cas merci pour ce plugin qui est bien utile.
Merci de votre réponse,
Pour l’affichage, je ne suis pas suffisamment calée en programmation (ni en SPIP non plus) pour adapter les CSS quelque part, j’essayerai avec d’autres habillages proposés avec Eva.
Pour le rawuldecode, je vais me renseigner pour configurer le PHP (à partir du PHPmyadmin ?) La version de SPIP utilisée est la 2.0.8. de début juillet.
Le site qui utilise le formulaire : http://www.apsi.webou.net (rubrique CONTACT)
Je ne saurais pas dire si c’est Eva ou si c’est propre à votre adaptation personnelle mais les formulaires ne sont pas très bien stylés. Nulle part. Car ce sont un peu les mêmes problèmes d’affichage sur la page de connexion (http://www.apsi.webou.net/spip.php?page=login).
Il faut modifier les styles CSS suivant vos goûts maintenant...
Merci RastaPopoulos pour ta réactivité :) .
Répondre à ce message
Bonjour,
J’ai installé le plugin sur un site spip 2.0.3
J’ai créé un article contact où j’ai placé le tag de génération du formulaire contact.
Tout se passe bien jusqu’à la prévisualisation, mais quand je clique sur l’envoi apparait le message :
Warning : join() [function.join] : Bad arguments. in [...]/plugins/contact/formulaires/contact.php on line 204
Je peux lire « message envoyé » mais je ne reçoit rien ;c(
J’ai désactivé le couteau suisse, mon hébergeur OVH ne semble pas bloquer les mails automatiques.
Je ne vois pas trop quoi faire ...
Merci de m’aider.
Jean Marc
Oups désolé, j’ai ajouté une fonctionnalité (pas encore documentée) la semaine dernière, et j’ai laissé un bug derrière moi.
C’est corrigé sur le SVN, mais il faut attendre au moins 19h30 pour une nouvelle génération du paquet ZIP (suivant comment vous l’avez installé).
Merci RastaPopoulos,
la réinstallation du plugin a résolu mon problème.
Bravo pour ce bel outil !
Jean Marc
Répondre à ce message
Bonjour,
Merci pour ce plugin simple et efficace. J’utilise des auteurs « bidon » pour la liste des destinataires. Ex : « Question sur le heavy metal » envoi à bob@mail.com, « Question sur le reagae » envoi à ziggy@mail.com, ... Et ça marche plutôt bien ! Ce que j’aimerai, c’est le champ Sujet prenne la valeur du destinataire sélectionné lors de l’envoi du mail(Par ex : « Question sur le reagae »). J’ai passé la journée sur le contact.php sans trouver. Je débute et je suis peut-être un peu bille, mais vu qu’on a le destinataire, il doit bien y avoir un moyen de le récupérer et de l’affecter au sujet. Non ?
Merci pour vos lumières
Pour personnaliser le sujet du courrier, vous devez trouver cette portion de code :
Et la modifier afin de récupérer le nom des auteurs, avec quelque chose comme :
Du coup, vous pouvez aussi supprimer le champ du sujet dans contact.html, qui n’a plus lieu d’être.
Attention : faites bien vos modifications en copiant les fichiers à modifier dans votre dossier squelettes/, afin que ça ne soit pas écrasé lorsque le plugin sera mis à jour. Et si le plugin est mis à jour, il faut aussi penser à refaire la manip afin de profiter des évolutions puisque c’est le fichier dans squelettes/ qui sera pris en compte.
Merci RastaPopoulos pour cette réponse rapide, j’aurais pas trouvé. Cela fonctionne bien, mais c’est pas l’adresse que je cherche à affecter au sujet mais l’auteur associé (en l’occurrence pas bob@mail.com mais « Question sur le reggae »). Sans vouloir abuser, est-il possible aussi de ne pas supprimer le sujet dans contact.html, mais plutôt de lui affecter cette nouvelle valeur pour que la prévisualisation affiche bien « Sujet : Question sur le reggae ».
Merci d’avoir rappelé que les modifs se font évidemment dans /squelettes.
Thanks again,
Pour le sujet = ..., faut remplacer array_shift par array_pop.
Pour le sujet dans la prévisu, faut faire un truc du style :
Pour le sujet (dans .php) impeccable ça fonctionne à merveille.
Sujet : (#ENVsujet_contact)Pour la prévisu, je rame, pas moyen d’afficher quelque chose. Je l’ai mis à la place de :
[
]
Ca doit être énorme, mais ça m’échappe. Merci.
Je crois qu’il faut rajouter le critère
{tous}
car par défaut un auteur qui n’a jamais rien écrit ne sort pas dans la boucle AUTEURS.C’est nickel, merci !
Je me rends compte, qu’en fait il faut bien connaitre Spip pour pouvoir faire des modifs... En tous cas, chapeau pour le support !!!
Répondre à ce message
Bonjour,
je viens d’installer le plugin sur le site dont je suis en charge http://www3.ac-grenoble.fr/lycee/delorme.isle.abeau/spip/. Il est sous sarka spip avec la version 2.0.5 de SPIP. J’ai lu comment installer le plugin, mais je ne suis pas sûr d’avoir compris si installer le plugin suffit ou si une modification de certaines pages du squelette sont à faire (et dans ce cas où puis-je trouver les informations pour savoir où modifier et quoi modifier)
En tout cas après avoir activé le plugin et configuré les destinataires, l’introduction et avoir validé les changements, je clique sur le bouton contact et je n’ai pas de changement : pas d’introduction, pas de mail envoyé aux autres rédacteurs déclarés dans la config.
Désolé si cette question a une réponse triviale mais je ne trouve pas de solutions à mon problème.
Merci d’avance
Comme indiqué dans le paragraphe « Utilisation », le formulaire est appelé avec la balise
#FORMULAIRE_CONTACT
dans un squelette, ou bien avec le modèle<formulaire|contact>
dans un texte contenu du site (article, rubrique, etc).Donc à vous de placer l’un ou l’autre quelque part. Je ne connais pas du tout sarka-spip, mais s’il existe un des squelettes dédié à la page de contact (contact.html) alors il faut le modifier afin de supprimer ce dont vous ne voulez plus, et le remplacer par
#FORMULAIRE_CONTACT
.Vous pouvez aussi demander aux auteurs de sarka-spip de prendre en compte le plugin Contact s’il est activé. Par exemple : s’il n’est pas là, mettre le formulaire actuel qu’ils utilisent (qui est
#FORMULAIRE_ECRIRE_AUTEUR
à priori) mais s’il est là, mettre le formulaire configurable. C’est assez simple à faire, et ainsi les utilisateurs n’auraient pas à modifier le squelette, ce serait automatique.Répondre à ce message
Non en fait c’est de ma faute, j’avais supprimé dans contact.html le sujet, ce qui ne lui a pas plu.
J’ai donc tout remis dans l’ordre.
Désolé et merci pour ta réponse.
Répondre à ce message
Bonjour,
le message ne part pas quand je valide. Je n’ai pas de message d’erreur pour m’aider. Avez-vous une piste ?
Merci
Est-ce que les autres messages de SPIP partent ? Par exemple ceux pour s’inscrire sur le site, ou bien ceux pour confirmer une publication d’articles, etc. Car ce plugin utilise la même fonction d’envoi que celle de base de SPIP.
Répondre à ce message
Bonjour,
moi aussi je rencontre le problème de rawurldecode. Apparemment le problème vient du fait que la variable « destinataire » soit un tableau... Avez-vous une idée ?
Répondre à ce message
Bonjour, lorsque j’envoie un message par ce formulaire j’ai systématiquement un message d’erreur qui s’affiche avant de confirmer :
Warning : rawurldecode() expects parameter 1 to be string, array given in /homez.131/####/www/ecrire/inc/filtres.php on line 1762
Cela ne bloque pas l’envoi du message.
Merci
Bonjour ;
j’aimerai savoir est ce que vous avez résolu le problème rawurldecode car moi aussi j’ai le même problème quand j’envoie un message.
Warning : rawurldecode() expects parameter 1 to be string, array given in /homez.131/####/www/ecrire/inc/filtres.php on line 1762 Cela ne bloque pas l’envoi du message.
Merci d’avance
Bonjours, toujours pas résolu, j’attends une solution éventuelle du forum, j’ai mis le problème en attente.
La fonction rawurldecode() n’est jamais utilisée dans aucun fichier du plugin. Donc il y a de fortes chances que l’erreur vienne soit de SPIP, soit de votre code.
Lorsque survient l’erreur, est-ce que vous pouvez me donner la valeur de l’attribut « action » du formulaire, dans le HTML ? Et ce avant ET après l’envoi. Il suffit d’afficher le code source et de regarder
<form action="?????"
.bonjour
le message apparaitre dès que on clic sur envoyer un le message.
je sais pas exactement valeur de l’attribut action. mais vous pouvez le teste vous même ;
voici le lien :
http://aourir.fr/spip.php?rubrique13
et merci
Il semble qu’il y ait une joyeux mélange dans le code avec une partie du head écrit au début du body.
Une piste : regarder si la balise #INSERT_HEAD est bien entre
<head> et </head>
Et juste pour tester (ça se trouve ça n’a rien à voir mais sait-on jamais), essayez de désactiver totalement le couteau suisse.
En effet ça n’a rien à voir avec le couteau suisse.
le problème est résolu en utilisant l’Appel AJAX (sans rechargement de la page) dans le squelette et dans l’article.
Répondre à ce message
Bonjour,
j’ai bien installe ce plugin ça marche (sous spip 2.08), mais la mise en forme de formulaire est un peu dégradé.
est ce qu’il y a une feuille CSS pour remède a ce désagrément.
voila le lien vers le formulaire : http://aourir.fr/spip.php?rubrique13
merci d’avance
Ben oui : tout dépend de vos CSS. Le formulaire utilise tout simplement les recommandations sur la structure HTML préconisées par l’équipe de SPIP. Donc soit vous faites vos propres styles pour le formulaire, soit vous utiliser la feuille « spip_formulaires.css » fournit par défaut avec SPIP (qui fait une mise en page des formulaires minimale mais cohérente), soit ce qui est le plus simple et le plus courant, vous faites un mix des deux (« spip_formulaires.css » de SPIP et des choses en plus ou en moins avec).
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 : |