Liste SYMPA des rédacteurs d’un site SPIP

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Comment configurer dans SYMPA une liste de distribution de tous les rédacteurs d’un site SPIP.

Motivation

Vous avez un site Spip et vous aimeriez pouvoir envoyer un mail à tous les rédacteurs et rédactrices de ce site ? Vous vous êtes sans doute renduE compte qu’il vous faut créer ailleurs une liste de diffusion, et demander aux auteurs de s’inscrire aussi à la liste. Si dans des sites comme la doc de Spip ou spip-contrib cela peut se comprendre : ce n’est pas la même chose de participer à la doc ou de chercher du support sur la liste ; dans d’autres cas les auteurs d’un site et les membres de la communauté qui échangent par mail sont les mêmes. Et dans tous les cas cela peut toujours être utile !

Cette contrib propose une manière de constituer, dans le gestionnaire de listes Sympa [1], une liste de diffusion dont les membres sont automatiquement tous les rédacteurs d’un site Spip.

Malheureusement (car il y a toujours des malqqchose), il vous faudra tout de même un accès à Sympa avec des droits élevés.

Sinon, si vous avez seulement accès à un hébergeur partagé « grand public », il vous faudra vous contenter d’une technologie qui tourne entièrement en PHP, comme la Bloogletter ou d’autres scripts d’envoi de mail en PHP.

L’intérêt, si l’on peut passer à Sympa (ou un autre mailinglist manager), sera de bénéficier d’une technologie plus adapté que le PHP à l’envoi de mails en masse et de l’ensemble de fonctionnalités de gestion d’une liste (archives, modération, ...).

Comment faire cela ?

C’est assez simple, dans Sympa, en administration d’une liste, on peut définir la « source de données » de la liste :

Concrètement, les configurations et commandes

Lorsque l’on est connecté comme listmaster à l’interface Web de Sympa WWS, à partir de la page d’une liste, en cliquant dans « Admin liste » sur le menu à gauche, puis sur « Configurer la liste » dans le menu horizontal, et enfin sur « Sources de données » dans le sous-menu, on peut définir la source des membres de la liste depuis une inclusion plutôt que dans la base données de Sympa :

Plus bas dans cette même page, on fournit les données d’accès à la base de données MySQL du site Spip, et l’instruction MySQL d’extraction des mails :

La chaîne complète de la requête SQL est :

SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut != '5poubelle' AND statut != 'nouveau' AND email != ''

afin de ne sélectionner dans la base ni les auteurs qui sont à la poubelle, ni ceux qui ont essayé de s’inscrire mais ne se sont jamais connectés dans la base de donnée SPIP [2], ni ceux dont l’e-mail est vide.

Effectuez la mise à jour avec le bouton approprié à la fin de la page, et voilà, c’est fait ! Cliquez sur « Abonnés » et vous verrez la liste des mails des rédacteurs de votre site.

Il vous faudra bien sûr remplacer par le nom de votre base, votre login de connexion et donner le mot de passe d’accès à votre base de données SPIP. [3]

Rappelons que, du moins dans la configuration standard de Sympa, il vous faudra des droits avancés, à savoir être listmaster, du serveur. Pour cela, il vous faudra, sinon avoir votre propre serveur Sympa, du moins avoir un bon ami qui en a un et soit qui partage avec vous l’administration soit qui vous crée un robot virtuel dont vous êtes listmaster.

Variantes

Avec quelques modifications minimes de la requête MySQL, on peut extraire la liste des administrateurs :

SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut = '0minirezo' AND email != ''

ou celle des visiteurs :

SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut = '1comite' AND email != ''

ou toute autre sélection des utilisateurs (n’hésitez pas à proposer vos idées en commentaire de forum !).

information technique

La création d’une telle liste ajoutera dans le fichier config de la liste les instructions suivantes :

user_data_source include

include_sql_query
passwd **************
db_name spip_belvil
db_type mysql
user belvil51
name site
sql_query SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM spip_auteurs ...
host localhost

Si vous avez un accès ssh au serveur et des droits d’administration, vous pouvez aussi ajouter directement ces instructions. Dans une distribution Debian, ce fichier se trouve dans le répertoire /var/lib/sympa/expl/[nom_liste].

Notes

[1Un gestionnaire de listes très performant, libre, édité par les universités françaises.

[2Si votre site ne propose pas les inscriptions automatiques, vous pouvez omettre ce test.

[3Si vous avez accès au serveur MySQL, vous pouvez définir un autre utilisateur qui n’ait accès qu’en lecture à cette seule table.

Discussion

3 discussions

  • Bonjour.

    C’est domage de mettre cet article en archive.

    Il n’est pas obsolète et permet d’utiliser une même base utilisateurs entre une mail liste et SPIP. C’est souvent indispensable dans une association.

    En modifiant la requête d’interrogation, il est possible de ne sélectionner que les utilisateurs appartenant à une zone d’accès restreint. Il est ainsi possible de créer une mail liste sympa réservé au CA dans une association.

    Répondre à ce message

  • Juste une remarque : le mode « include » est obsolète, il est maintenant conseillé d’utiliser le mode « include2 » de SYMPA.

    http://www.sympa.org/wiki/manual/parameters-data-sources#data_source_related

    Répondre à ce message

  • 1

    Salut Dani,

    Article très utile. Un grand merci.

    La seule étape qui me manque, est de donner le choix aux utilisateurs de recevoir ou pas la lettre d’info via une option à cocher dans l’interface de SPIP (voire choisir parmi plusieurs listes celle(s) auxquelles il souhaite s’abonner). Y’a moyen de faire ça assez facilement avec des champs EXTRA, mais c’est alors impossible de récupérer facilement les données avec un simple requête sql,...

    Quelqu’un a une idée de la manière de faire ?

    Par ailleurs, est-ce que quelqu’un sait s’il y a moyen de faire quelque chose de similaire avec Mailman ? (j’ai l’impression que c’est pas possible, mais on ne sait jamais).

    à vous lire,

    François

    • La seule étape qui me manque, est de donner le choix aux utilisateurs de recevoir ou pas la lettre d’info via une option à cocher dans l’interface de SPIP (voire choisir parmi plusieurs listes celle(s) auxquelles il souhaite s’abonner)

      .

      Une solution peut être d’essayer de faire l’inverse : configurer sur la liste Sympa le mode de réception : normal, nomail, digest, ...
      Je sais que Sympa offre une interface webservice. Il faudrait essayer d’y accéder depuis une page SPIP... Idée à suivre...

      Y’a moyen de faire ça assez facilement avec des champs EXTRA, mais c’est alors impossible de récupérer facilement les données avec un simple requête sql,...

      Oui, en effet... pas simple de dé-sérialiser le contenu d’un champs EXTRA en SQL... Et avec les nouvelles possibilités de la 1.8 d’étendre les tables ?

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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