SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

246 Plugins, 178 contribs sur SPIP-Zone, 223 visiteurs en ce moment

Accueil du site > Interactivité, échanges > Formulaires > Formulaire de contact configurable > Formulaire de contact avancé

Formulaire de contact avancé

23 mars 2009 – par Pierre_31, RastaPopoulos – 425 commentaires

54 votes

Cette extension propose un formulaire de contact avec de multiples options.

Préambule

Dans un SPIP de base, on a accès facilement à un #FORMULAIRE_ECRIRE_AUTEUR, qui permet d’écrire à un auteur précis. On peut donc l’utiliser pour la page de contact du site, par exemple avec l’auteur webmaster.

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

Zip - 29.1 ko
Télécharger le plugin

Comme pour les autres plugins, vous devez télécharger le paquet ci-joint et placer son contenu dans votre dossier plugins/.

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 et spip-bonux.

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 appeler le formulaire, il vous suffit de faire :

Dans un squelette

Dans un contenu

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 informations supplémentaires demandées. Mais parfois, on veut personnaliser ces champs, par exemple pour restreindre des valeurs. Et bien c’est prévu !

Pour cela, il faut connaitre 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 :

  1. <li class="saisie_#ENV{name}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)obligatoire][ (#ENV*{erreurs}|table_valeur{#ENV{name}}|oui)erreur]">
  2.         <label for="info_#ENV{name}">
  3.                 #ENV{titre}[ (#ENV{name}|in_array{#ENV{obligatoires,#ARRAY}}|oui)<strong><:info_obligatoire_02:></strong>]
  4.         </label>
  5.         [<span class="erreur_message">
  6.                 (#ENV*{erreurs}|table_valeur{#ENV{name}})
  7.         </span>]
  8.         <select name="#ENV{name}" id="info_#ENV{name}">
  9.                 <option
  10.                         value="England"[
  11.                         (#ENV{#ENV{name}}|=={England}|oui)selected="selected"]>
  12.                         England
  13.                 </option>
  14.                 <option
  15.                         value="France"[
  16.                         (#ENV{#ENV{name}}|=={France}|oui)selected="selected"]>
  17.                         France
  18.                 </option>
  19.         </select>
  20. </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

  1. <pipeline>
  2.     <nom>contact_infos_supplementaires</nom>
  3.     <inclure>un_fichier.php</inclure>
  4. </pipeline>

Soit dans le mes_options.php de votre site

  1. $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 :

  1. function montruc_contact_infos_supplementaires($champs){
  2.     // Le paramètre contient tous les champs par défaut avec :
  3.     // clé = le "name" du champ
  4.     // valeur = le titre du champ
  5.     $champs['nouveau_truc'] = 'Un titre';
  6.    
  7.     // Si votre site est multilingue, il faut utiliser une chaine de langue
  8.     $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite');
  9.    
  10.     return $champs;
  11. }

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.

Retour en haut de la page

425 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...

  • Répondre à ce message

    7 février 14:16, par crazyspip

    Bonjour, Je reviens vers vous concernant le passage d’une variable, via un lien, vers le champ "sujet" du formulaire de contact. Je remercie Pierre pour les pistes données et pour sa patience. Je vous livre le fruit de mes essais, pour ceux que ça intéresse ou que ça peut aider, bien qu’il subsiste un problème pour lequel une aide serait la bienvenue.

    Passage de la variable article dans l’URL

    Voici deux boucles qui fonctionnent, XX étant l’id de l’article dans lequel j’ai inséré le formulaire, et #formulaire une ancre sur la page.

    <BOUCLE_contact(ARTICLES){id_article=XX}>
    <p><a href="[(#URL_ARTICLE)&trace=article&nbsp;#ENV{id_article}]#formulaire">Contactez-nous</a></p>
    </BOUCLE_contact>

    ou

    <BOUCLE_contact(ARTICLES){id_article=XX}>
    <p><a href="[(#URL_ARTICLE|parametre_url{trace,article&nbsp;#ENV{id_article}})]#formulaire">Contactez-nous</a></p>
    </BOUCLE_contact>

    Récupération dans le champ "sujet" du formulaire

    J’ai créé un fichier "contact_champ_sujet.html" dans lequel je place ce code :

    <li class='saisie_sujet obligatoire[ (#ENV*{erreurs}|table_valeur{sujet}|oui)erreur]'>
    <label for="info_sujet"><:form_prop_sujet:> <strong><:info_obligatoire_02:></strong></label>
    [<span class="erreur_message">(#ENV*{erreurs}|table_valeur{sujet})</span>]
    <input type="text" class="text" name="sujet" id="sujet" value="[Question à propos de l'(#ENV|parametre_url{trace}|sinon{''})]" size="30" />

    Encore à résoudre...

    En arrivant sur le formulaire, ma variable est bien reprise dans le champ "sujet". Lorsque je clique sur "envoyer un message", le sujet est correctement rempli dans la prévisualisation mais je remarque que dans le même temps, il s’efface du formulaire. Aussi, quand je veux confirmer l’envoi, j’ai un message d’erreur me disant que je n’ai pas rempli le champ "sujet". Idem si je complète celui-ci manuellement.

    Une idée ?

  • Répondre à ce message

    7 février 07:05, par Leodium

    Me suis tomper de prévisualtion... C’était une prévisu "direct" dans le champ de saisie apporté par "Porte-Plume". La prévisu d’après en haut de plugin est ok... :p

    Sorry.

    Boris

  • Répondre à ce message

    6 février 18:32, par petit_guerrier

    Alors effectivement, je ne voulais pas le croire (pour des raisons confuses je l’avoue) mais migrer vers la version 2.0.10 de SPIP m’a permis de recevoir les mails du formulaire avec l’accusé de réception tout vert qui va bien.

    Encore bravo et merci pour cette contrib.

  • Répondre à ce message

    5 février 14:48, par Leodium

    Ok, je vais essayer celà...Pour les messages, je pense bien !!! Je fais les tests et reviens ci. Merici

  • Répondre à ce message

    5 février 09:58, par RastaPopoulos

    Ça envoie le message quand même ? Mais sans passer par la confirmation ? Waouh effectivement c’est la première fois qu’on voit ça, et je vois pas trop comment c’est possible pour l’instant.

    Par contre avant de reporter un bug, le mieux c’est quand même d’abord de désactiver toutes les autres extensions (sauf celles nécessaires évidemment), pour bien voir d’où vient le problème.

  • Répondre à ce message

    5 février 09:56, par RastaPopoulos

    J’utilise spip2.0.8 , même si je sais qu’il vaut mieux utiliser la dernière version j’ai du mal à croire que ce formulaire ne fonctionnerait que sous spip 2.0.10, dans le forum plusieurs spipiens ont fait fonctionné le formulaire sur des versions antérieures.

    Ben si justement, ce bug de rawurldecode, il me semble que c’était un bug de SPIP corrigé dans la version 2.0.9. Donc il faudrait d’abord mettre tout à jour et retester.

  • Répondre à ce message

    5 février 04:31, par Leodium

    Ben oui... Ca fait désordre :p

    Sinon, super plugin qui fonctionne très bien et qui s’est installé comme un charme chez moi !!!

    Merci...

    Mais comment, que faire, quoi qui se passe pour cette visualisation qui ne va pas...

    Je suis sous Spip 2.0.10 avec le pack Eva-Web sur OVH. J’ai différents plugins installés mais tous viennent d’ici...

    Déjà eu le cas ? J’ai (rapidement) lu les pages de commentaires sans rien apercevoir.....

    .boris

  • Répondre à ce message

    5 février 01:53, par petit_guerrier

    bonsoir à la communauté,

    Il doit me manquer un petit quelque chose pour recevoir les messages mais après avoir tout vérifié et relu quelquefois le forum (ouille les yeux qui piquent) je bugge un peu.

    Voilà les étapes ;

    J’ai cfg installé avec la version du jour de spip_bonux.

    J’ai désactivé mon seul autre plugin "menu déroulant babbibel".

    Mon formulaire ne s’affichait pas -> j’ai placé un .htaccess avec php 1 pour free, mon formulaire s’affiche correctement.

    J’ai chargé et activé facteur. Fonction mail php activée -> je recois les mails de test avec succés depuis l’espace de config.

    Donc a priori je suis en php5 et le site peut m’envoyer des messages, hors toujours rien en provenance de mon formulaire.

    J’ai un indice : un message en bas de ma page d’explorer qui m’indique : Terminé, mais il existe une erreur sur la page : ligne 191 caractère:2 erreur : object expected code:0 url : /.../spip.php ?rubrique3

    page ou j’ai intégré mon formulaire avec la div class="ajax" #FORMULAIRE_CONTACT

    car sans j’obtiens : Warning : rawurldecode() expects parameter 1 to be string, array given in /mnt/163/sdb/8/f/o.../p.../ecrire/inc/filtres.php on line 1762)

    Hors, il n’y a pas de ligne 191 dans le code de ma rubrique de formulaire !

    J’utilise spip2.0.8 , même si je sais qu’il vaut mieux utiliser la dernière version j’ai du mal à croire que ce formulaire ne fonctionnerait que sous spip 2.0.10, dans le forum plusieurs spipiens ont fait fonctionné le formulaire sur des versions antérieures.

    Merci en tous cas pour cette super contrib qui j’espère marchera bientôt chez moi ! J’y ai passé la journée c’est un peu crisant, j’y verrai peut-être plus clair demain..

  • Répondre à ce message

    4 février 22:52, par jérôme

    oui, il semblerait, en effet... j’ai installé mon site chez free, et plus de problème...

  • Répondre à ce message

    4 février 19:35

    Bonjour, il me semble que les smtp externe sont bloqués depuis ovh ...

    Essaye avec un compte mail ovh.

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...

Répondre à cet article

Retour en haut de la page

Ça discute par ici

  • Les thèmes de Sarka-SPIP 3

    26 décembre 2009 – 14 commentaires

    Cet article a pour but de présenter brièvement la liste des thèmes propres à Sarka-SPIP au travers d’une galerie de vignettes. La galerie Vous pouvez télécharger le thème que vous désirez en cliquant sur sa vignette. Prochainement, une description de (...)

  • Formulaire de participation à un événement

    23 janvier – 17 commentaires

    Cet article tente de rassembler des informations au sujet de l’affichage d’un formulaire de participation aux événements gérés par le plugin Agenda développé par Cédric Morin. La version 2 du plugin Agenda permet d’afficher dans l’espace public des (...)

  • Le Squelette Zpip

    11 novembre 2009 – 119 commentaires

    Zpip [1] est un squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Il est issu d’une fusion des projets Zesty et SPIP-Zen. Installer Zpip Pour installer Zpip et jouer avec sans plus attendre, il suffit de suivre le guide (...)

  • Plugin Pages uniques

    11 décembre 2008 – 74 commentaires

    Allez, avouez... il ne vous est jamais arrivé d’avoir besoin d’articles qui ne sont rattachés à aucun rubriquage particulier ? Des articles uniques, n’ayant ni de thème, ni de rapport avec aucun autre ? Ou encore des articles pour lesquels vous avez (...)

  • Le Couteau Suisse

    4 mai 2007 – 835 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : des filtres supplémentaires, des balises pratiques, des facilités typographiques, le contrôle de (...)