Communication entre membres

, par  Alain Laponche --- ---

Paramètrage

Les paramètres choisis au niveau du noyau SPIP
Cf Configuration / Interactivité

  • Ne pas envoyer d’annonces éditoriales
  • Ne pas envoyer la liste des nouveautés
  • Adresse email d’envoi : laissé vide —> "l’adresse destinataire sera utilisée comme adresse d’envoi" !!!

Doc sur envoi automatique de mails

Attention : certains hébergeurs désactivent la fonction qui permet l’envoi automatique de mails. Si vous êtes dans cette situation, les options suivantes ne pourront pas être activées.
 Suivi des messages des forums publics (permet aux auteurs de suivre les discussions provoquées par leurs articles)
 Suivi de l’activité éditoriale du site (lorsqu’un article est proposé pour la validation ou publié, les participants à la vie du site sont informés en temps réel)
 Annonce des nouveautés (Cette fonctionnalité de SPIP permet de créer des emails du type « Quoi de neuf ? » : si vous l’activez, et après avoir fixé l’intervalle de temps entre les différentes annonces, un mail est envoyé régulièrement à l’adresse indiquée, récapitulant les derniers articles et brèves publiés)


Système de messagerie interne

On peut correspondre entre rédacteur via le système de messagerie interne de SPIP. Mais :
 Ne permet pas de toucher les membres avec statut "visiteur"
 On risque de passer à coté des messages reçus : il faut se connecter au site et aller dans la partie privée
 "les rédacteurs qui ne se sont pas connectés à l’espace privé du site depuis plus de 15 jours ne sont pas joignables"

Comment ?
Passer en mode "Privé"
Pour lire les messages : cliquer sur Accueil
Pour envoyer un message : sélectionner "Edition / Auteurs" et l’auteur destinataire (il n’a pas besoin d’un mail, mais d’un login et d’avoir le statut rédacteur ou administrateur)
Bouton "Envoyer un message privé à cet auteur"

On a une vue d’ensemble sur tous les messages reçus et envoyés en cliquant sur le picto "boite mail" en haut à droite sous l’accès au menu "Configuration"

Plugin disponible, mais non installé "Messagerie entre membres" : prévoit la correspondance entre membres avec statut visiteur. Mais en utilisant la messagerie externe, c’est ce que j’ai réalisé à partir de ma page Trombinoscope

Système de messagerie mail externe

On peut faire appel à l’envoi de mail prévu par Spip en utilisant une balise dédiée #FORMULAIRE_ECRIRE_AUTEUR.
J’y fais appel dans 2 cas :
1) Depuis le Trombinoscope, si un lecteur veut envoyer un mail à un des membres. J’ai écrit à ce sujet le squelette "noisettes/auteur/description.html "
On devrait y récupérer l’id_auteur du destinataire et de l’émetteur
2) Depuis la page Contact (squelette "content/contact.html"), pour que toute personne puisse écrire au webmestre (id_auteur=1)

Le champ "Votre adresse" doit être renseigné par le mail de l’emetteur. En fait, on y trouve la dernière adresse utilisée. Alors qu’on devrait y retrouver - quand c’est possible (quand l’emetteur s’est identifié par un login et possède une adresse) - l’adresse mail rangée dans Auteur.
Pour y remédier, j’ai du faire une copie du formulaire et remplacer la value du champ email par : "#EVAL$GLOBALS[’visiteur_session’][’email’]"
Mais que ce fut long à réaliser !!!

Le système est tel que l’adresse de la personne émettrice du message n’est pas directement utilisable. Ainsi, si elle est "xxxxx@yyy.zz", la destinatrice reçoit un message en provenance de "xxxxx at yyy.zz". On peut donc y répondre à condition de changer " at " par @

Petit problème : le rédacteur du message peut communiquer une adresse fantaisiste !

— -

Balise #FORMULAIRE_ECRIRE_AUTEUR

La balise #FORMULAIRE_ECRIRE_AUTEUR affiche un formulaire permettant d’écrire à un auteur sans dilvuger son adresse. Il faut que le serveur hébergeant le site accepte d’envoyer des mails. Il est accessible à tout visiteur, car le champ adresse du rédacteur est accessible en saisie.

L’affichage du formulaire est assuré par le squelette
squelettes-dist/formulaires/ecrire_auteur.html
Il est constitué d’un formulaire avec une action qui varie en fonction d’une variable #ENVaction pouvant prendre plusieurs valeurs.
Quand on le valide, il appelle la fonction php associée à l’action (charger, vérifier ou traiter) et rangée dans
squelettes-dist/formulaires/ecrire_auteur.php

Explication détaillée du fonctionnement de ce type de formulaire en
https://programmer.spip.net/-Formulaires-35-

Avec "charger", les champs sujet et texte sont mis à blanc, le champ "email" est renseigné par "isset($GLOBALS[’visiteur_session’][’email’]" et l’id_auteur est récupéré.

Avec "traiter", le champ texte est complété par :
$texte .= "\n\n— " . _T(’envoi_via_le_site’) . " " . supprimer_tags(extraire_multi($GLOBALS[’meta’][’nom_site’])) . " (" . $GLOBALS[’meta’][’adresse_site’] . "/) —\n" ;
$envoyer_mail = charger_fonction(’envoyer_mail’, ’inc’) ;
Ce qui donne : "—Envoi via le site ORB Loisirs Informatique (http:// ...)—".

Examen d’une zone de saisie

<div class="editer saisie_email_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{email_message_auteur}|oui)erreur]">

[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{email_message_auteur})</span>]
<input[ (#HTML5|?{required="required" type="email" class="text email",type="text" class="text"})] name="email_message_auteur" id="email_message_auteur#ENV{id}" value="#ENV{email_message_auteur}" size="30" />
</div>

Si #ENVerreurs non vide, la zone de saisie est
 précédée d’un message d’erreur sur auteur
 dans un "div" avec class="... erreur"
La zone d’entrée est de type "email" si HTML5, sinon "text"
Sa valeur est "#ENVemail_message_auteur"

Dans une certaine config mise en place (laquelle ?), lors de l’affichage du formulaire, ce champ "email_message_auteur" n’est pas renseigné.
Je pense que c’est la fonction suivante qui devrait faire cette initialisation :
function formulaires_ecrire_auteur_initier($id_auteur, $id_article, $mail)
include_spip(’inc/texte’) ;
$puce = definir_puce() ;
$valeurs = array(
’sujet_message_auteur’ => ’Pour test’,
’texte_message_auteur’ => ’’,
’email_message_auteur’ => isset($GLOBALS[’visiteur_session’][’email’]) ? $GLOBALS[’visiteur_session’][’email’] : ’’,
’nobot’ => ’’,

Cette fonction ne semble pas appelée ; donc les valeurs dans les variables ne sont pas installées