Formulaire de contact libre

Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs.

Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un formulaire de contact sur son site sans avoir à créer un auteur spécifique ou autre ruse de ce style.

C’est pour répondre à ce besoin simple qu’est né le plugin contact libre. Il reprend le même principe de fonctionnement que les formulaires de contact de SPIP.

Comment utiliser le formulaire

Le formulaire accepte trois arguments en paramètres :

  1. le premier argument est l’adresse email du destinataire du formulaire,
  2. le deuxième argument est une URL qui sera insérée en fin du mail envoyé pour référence (cet argument est optionnel),
  3. le troisième argument permet de spécifier le sujet par défaut affiché dans le formulaire (cet argument est optionnel).

Dans le texte d’un article (ou d’un autre objet de SPIP) vous pouvez appeler le formulaire à l’aide du code suivant :

<formulaire|contact_libre|email=truc@domaine.net>

Vous pouvez aussi utiliser le formulaire dans vos squelettes :

#FORMULAIRE_CONTACT_LIBRE{truc@domaine.net}

Autre exemple depuis un squelette article en utilisant tous les arguments du formulaire :

#FORMULAIRE_CONTACT_LIBRE{truc@domaine.net,(#URL_ARTICLE|url_absolue),'Mon super sujet de message'}

Informations complémentaires

Le formulaire de contact libre est automatiquement protégé des robots spammers si vous avez activé le plugin NoSPAM sur votre site.

Discussion

29 discussions

  • 2

    Bonjour à tous,
    Y a-t-il moyen d’insérer un sujet avec une syntaxe d’insertion directe dans un article : <formulaire|contact_libre|email=truc@domaine.net>
    J’ai essayé plusieurs syntaxes en rajoutant des arguments du type |sujet=test, |sujet_message=Test, etc sans trouver de syntaxe fonctionnelle..
    Merci !

    • Essaye peut-être avec : <formulaire|contact_libre|email=truc@domaine.net|url=''|sujet=hop>, à confirmer si ça fonctionne.

    • Presque 1 an plus tard, je confirme, ça marche !

    Répondre à ce message

  • 9

    Bonjour,

    je gère le site de mon collège, je suis sous SPIP 3.0.21 et Eva Web.... J’ai activé le plugin « Formulaire de contact libre » et dans un article, j’ai inséré la ligne suivante :

    . Par contre, plusieurs choses ne fonctionnent pas :
    -  mon adresse mail s’insère dans le champ « votre adresse mail » alors que je pensais que c’était aux visiteurs de remplir ce champ
    -  lorsque je clique sur « envoyer le message », je ne reçois jamais ces mails...
    Je suis novice en la matière et je pense que j’ai oublié une manip mais laquelle ?

    Vous remerciant par avance,

    cordialement

    • L’insertion de l’adresse email pourrait être fait automatiquement par votre navigateur. Il faudrait regarder depuis un ordinateur que vous n’utilisez pas habituellement.

      Pour les problèmes d’envoi d’email, il faudrait regarder dans le dossier tmp/log du serveur le fichier mail.log.

      Voici une procédure :
      -  envoyer un email
      -  ouvrir ce fichier et voir ce que donne la dernière ligne, qui doit être datée de la minute où vous avez envoyé l’email.
      -  nous transmettre le message, on pourra voir plus en détail la cause.

    • Salut,

      mon adresse mail s’insère dans le champ « votre adresse mail » alors que je pensais que c’était aux visiteurs de remplir ce champ

      Oui, c’est le comportement natif de SPIP quand un auteur connecté affiche un eformulaire de contact (le champ est bien vide si la personne n’est pas connectée).

    • Parfait mais en ce qui concerne les messages non reçus, que dois-je faire ?

    • @Chris : nous faire parvenir les logs, comme j’explique dans mon message.

    • Commence par tester l’envoi de mail depuis une page auteur, si ça ne passe pas, il faudra contacter ton hébergeur.

    • J’ai fait le test : j’ai envoyé un message à un auteur... et ça fonctionne... d’ailleurs, je reçois souvent des mails via le site.... mais là, j’ai intégré le formulaire dans un article... et ça ne fonctionne pas...
      Par contre je ne peux pas vous faire parvenir les logs (pour moi c’est un peu du chinois...) je n’accède qu’à l’interface privée d’Eva Web et tout est hébergé au rectorat... Avant je pouvais accéder aux fichiers (par FTP) mais je ne peux plus...

    • Le problène n’est donc pas que les logs soient du chinois, mais que tu n’y ait pas accès.

      Bon, on a deja un bon point : le pb ne se pose apparement qu’avec ce plugin. Je laisse b_b voir comment investiguer plus loin.

    • Re, le formulaire de contact libre est une copie du formulaire présent sur les pages des auteurs, donc si ça fonctionne avec l’un et pas l’autre, c’est peut-être tout simplement que l’adresse renseignée dans l’appel du formulaire n’est pas valide ?

      Sinon, quel code as-tu collé dans ton article ?

    • Ah oui, effectivement, il y avait une erreur dans l’adresse mail (un point en trop)... du coup forcément ça ne fonctionnait pas...
      Merci beaucoup pour votre aide et merci pour ce plugin...

    Répondre à ce message

  • 10

    Bonjour et merci pour ce plugin,

    Je l’utilise mais mon soucis je veux envoyer à deux adresses emails séparé par une virgule.
    Voici ce que j’ai :

    #SET{m,#GET{mail1}}
    #SET{m1,#GET{mail2}}
    [(#SET{adresse,[(#GET{m}), ][(#GET{m1})]})]
    <div class="ajax">
        #FORMULAIRE_CONTACT_LIBRE{adresse}
    </div>

    J’ai bien récupéré dans une variable les adresses séparé par une virgule, mais je ne recois pas les mails. Qu’est ce qu’il faut que je change encore ??

    PS : ces adresses emails sont pas des auteurs

    Merci de votre aide

    • Bonjour,
      J’ai modifié le fichier contact-libre.php et ca roule, si quelqu’un a besoin de ca pas de souci. Merci

    • Et pourquoi ne pas publier ici directement le code modifié ? Ça pourrait ainsi servir tout de suite...

    • Ok bonne idée, merci du conseil
      j’ai récupéré les deux adresses :

      #SET{m,#GET{mail1}}
      #SET{m1,#GET{mail2}}
      [(#SET{adresse,[(#GET{m}), ][(#GET{m1})]})]
      <div class="ajax">
       #FORMULAIRE_CONTACT_LIBRE{#GET{adresse}}
      </div>

      Là, on se retrouve avec deux adresses séparés par une virgule.
      Dans le fichier contact-libre.php juste aprés l’ouverture de la balise php, j’ai ajouté ce bout de code :

      $list_mail = $adresse;
      @$tab_mail_dest = explode("," , $list_mail);
              
              for($i=0; $i<count($tab_mail_dest); $i++){
                      $mail[$i+1] = $tab_mail_dest[$i];
      }

      C’est tout et les adresses vont recevoir le formulaire

    • Merci ! Une petite question pour éclairer ma lanterne (je débute en php) : quelle est la signification du « @ » en début de ligne devant $tab_mail_dest = explode etc... ?

    • Je vois, mais rassures toi je débute en php comme toi, j’avais des warning sur mon site et j’ai mis @ pour ne pas les afficher c’est tout. Tu peux l’enlever, serre à rien

    • Salut, juste pour info, je viens de tester l’envoi d’un message à deux adresses avec le formulaire et cela fonctionne très bien en l’état avec ce code dans un article :

      <formulaire|contact_libre|email=dede@truc.net,machin@bidule.net>

      Pas besoin de surcharger le plugin pour y arriver ;)

    • bonjour à tous,
      je ne trouve pas la syntaxe pour passer une array d’adresses au formulaire, j’en suis là
      #FORMULAIRE_CONTACT_LIBRE{(#GET{destinataires}),(#URL_PAGE|url_absolue),En réponse à ...]
      merci de votre aide

    • Salut, contact_libre est calqué sur le formulaire de contact fourni par SPIP qui ne prend pas en charge cette fonctionnalité.

    • donc, pour passer plusieurs adresses mail :
      #FORMULAIRE_CONTACT_LIBRE{#GET{destinataires},(#URL_PAGE|url_absolue),"En réponse à ..."}
      puis au début de la fonction traiter :
              $adresse = implode("," , $adresse);
      et hop !

    • ahbha flûte effectivement je m’apperçois après tout qu’il n’est nul besoin de surcharger la fonction traiter, #FORMULAIRE_CONTACT_LIBRE{#GET{destinataires},(#URL_PAGE|url_absolue),"En réponse à ..."} fonctionne très bien tout seul b_b

    Répondre à ce message

  • 2

    Merci pour ce super plugin. Y aurait t-il un moyen de rentrer le sujet dans le code réservé à l’insertion dans un article ?
    Merci de votre aide

    Répondre à ce message

  • sebastian

    Je ne parle pas français et je besoin d’aide.
    Je besoin de supprimer le champ « sujet » et changer le étiquette < : message d’envoyer :> À partir du fichier contact_libre.html mais je ne l’ai pas eu des résultats. A également demandé comment je personnaliser (CSS) qui vient email à l’auteurMerci pour les réponses.
    Sebastian.

    Répondre à ce message

  • 6

    Bonjour,

    Je viens d’installer le plugin contact libre sur spip 3, et j’ai ajouté un lien de contact dans un article. Tout se passe lors des essais si je suis connecté en administrateur, le formulaire récupère mon adresse email. Mais si je me déconnecte et fais un essai en tant que visiteur, j’obtiens une erreur : Warning : Illegal string offset ’email’ in /var/www/legtux.org/users/mptchapelle/plugins/auto/contact_libre/v0.1.3/formulaires/contact_libre.php on line 9
    Comment résoudre ce problème ?
    Merci

    • Salut, il me faudrait plus d’infos pour t’aider :

      • quelle syntaxe as-tu utilisé pour insérer le formulaire ?
      • une url vers la page en question serait utile

      ++

    • Bonjour,
      Quelques infos complémentaires

      Dans l’article j’ai saisi : formulaire|contact_libre|email=mptchapelle@free.fr (entre <....>)

      et le lien vers la page est http://mptchapelle.fr.nf/spip.php?article148

    • Ha ok, je ne reproduis pas chez moi, mais j’ai une piste. Peux-tu tester cette modification ?

      Au début de formulaires/contact_libre.php à la ligne 5 en ajoutant ceci : include_spip('inc/session');

      Tiens moi au courant si ça règle le problème.

    • Merci mais pas de changement, il semble que si personne n’est connecté au site, il signale une erreur.
      Ce qui est bizarre, c’est que le message n’apparaisse pas chez toi.
      Faut il que j’essaie sur un autre ordi bien que j’aie vidé le cache...

    • OK, merci d’avoir testé, j’ai publié un correctif ici :

      http://zone.spip.org/trac/spip-zone/changeset/66061

      Le zip sera à jour dans la journée, merci pour le signalement de bug.

      ++

    • Merci, c’est nickel.
      dépannage super rapide et efficace

    Répondre à ce message

  • 3

    Très pratique ce formulaire, mais l’adresse électronique reste visible dans le code source de la page donc des robots spammeurs :(

    Répondre à ce message

  • 2

    Bonjour,

    Par défaut, le formulaire de contact libre affiche le label « Adresse email » (qui correspond à la chaine de langue SPIP entree_adresse_email_2)pour le premier champ de saisie. J’aimerais que soit affiché à la place le label « Votre adresse email » (qui correspond à la chaine de langue SPIP entree_adresse_email).

    Dans les modèles, il y a une description du formulaire en yaml : formulaire_contact_libre.yaml qui mentionne cette chaine de langue. Est-ce que je dois donc faire une surcharge de cette description en remplaçant entree_adresse_email_2 par entree_adresse_email, ou faire une surcharge directement du formulaire lui-même ? Ou existe t’il une autre solution ?

    Merci d’avance !

    Répondre à ce message

  • Bonjour,
    Quelques infos complémentaires

    Dans l’article j’ai saisi : formulaire|contact_libre|email=mptchapelle@free.fr (entre <....>)

    et le lien vers la page est http://mptchapelle.fr.nf/spip.php?article148

    Répondre à ce message

  • 2

    Bonjour b_b,

    est-il envisageable de créer un nouvelle branche de ce plugin, spécifique à SPIP 3.0 et 3.1, utilisant le plugin Saisies pour formulaires ?

    L’utilisation de Saisie permettrait de simplifier la surcharge avec des framework CSS (Bootstrap, Foundation, etc.).

    Je veux bien m’en occuper...

    Peetdu

    • Hmmm, j’ai un doute sur le fait d’ajout cette dépendance à saisies. Le plugin contact libre est très simple depuis le début et il n’a jamais nécessité d’utiliser saisies. Du coup, je trouverais dommage d’ajouter cette dépendance uniquement pour quelques classes toutes utiles à différents frameworks.

      L’utilisation de Saisie permettrait de simplifier la surcharge avec des framework CSS (Bootstrap, Foundation, etc.).

      Je ne comprends pas très bien, tu veux dire que tu surchargerais directement les squelettes des saisies plutôt que celui du formulaire de contact libre ?

    • Ma demande était un peu elliptique, mais oui, tu as bien compris ce que je voulais dire :)
      Saisies factorisant l’écriture des formulaires, il devient rapide d’adapter suivant tel ou tel Framework CSS le code HTML généré. (reste le problème des ’ul’ avec Bootstrap, Foundation, Knacss, etc. Mais bon…c’est un autre sujet).

      Saisies prend également en compte la norme HTML5 si le Webmestre choisi cette option dans le back-office de SPIP.
      Exemple le champ ‘email’.

      Du coup, il me semble que le plugin Contact libre deviendrait encore un peu plus « Click & Play » ?

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 5 novembre 2017