Tip A Friend : envoyer une page SPIP par e-mail

Conseiller une page à un ami

Un x-ième plugin [1] proposant aux internautes d’envoyer le contenu ou l’adresse d’une page d’un site SPIP à ’leurs amis’ (ou tout individu susceptible de posséder une adresse e-mail !). Il permet de proposer cette fonctionnalité pour toutes les pages du site, ouvre le formulaire sans quitter la page courante et est configurable et personnalisable ...

Installation

  1. Installez le plugin, selon votre version de SPIP, comme expliqué ici : http://www.spip.net/fr_article3396.html
  2. Si vous utilisez le plugin CFG, accédez à la page du plugin via le bouton de l’onglet ’Configuration’ de l’espace privé (réservé aux webmestres).

Optionnellement, le plugin est disponible dans le fil RSS de chargement automatique de Spip-Contrib (onglet ’Ajouter des plugins’ de la page de gestion des plugins de l’espace privé).

Une page de démonstration est disponible à l’adresse suivante (documentation livrée avec le plugin) : http://demo-spip3.ateliers-pierrot.....

Utilisation & Fonctionnement

La balise

Le plugin définit la balise #TIPAFRIEND [2] à utiliser dans vos squelettes, qui fait apparaître un lien ouvrant le formulaire d’envoi du plugin (cf. aperçu). Elle charge le modèle “modeles/tipafriend.html” en lui passant les différents paramètres récupérés de l’analyse de la page courante. Elle accepte un ou plusieurs argument, tous optionnels [3].

#TIPAFRIEND{ 
    type modèle , 
    url à transmettre , 
    adresse de l'expéditeur ,
    nom de l'expéditeur ,
    adresse(s) du(des) destinataire(s)
}

Le premier argument, “type modèle”, sera le plus souvent noté seul et présente deux utilités différentes :

  • s’il vaut “mini”, le modèle renverra l’image seule, sans le texte du lien “Envoyer cette page ...” ;
  • s’il s’agit d’un nom de modèle, la balise chargera ce modèle (s’il existe) plutôt que le modèle par défaut du plugin (cf. chapitre “Personnalisation).

Exemples

// balise seule
#TIPAFRIEND
// pour ne voir que l'image
#TIPAFRIEND{mini}
// ou avec un modele personnel
#TIPAFRIEND{mon_modele}
Balise sans argument
Balise avec l’argument “mini”

Ce qui est envoyé

Cette balise tentera quoiqu’il arrive de récupérer les différentes informations de la page et notamment le type d’objet et son identifiant si elle est incluse dans une boucle. Cela permet de proposer l’envoi aux internautes pour toutes les pages du site, même s’il ne s’agit pas d’une page de présentation d’un objet éditorial (typiquement les adresses du type “?page=...”) : le plugin tentera de récupérer le titre et l’URL de la page courante, et son contenu éditorial le cas échéant.

Le modèle par défaut du lien généré par la balise est “accessible” au sens du W3C : il ouvre le formulaire en nouvelle fenêtre même si JavaScript est désactivé sur le navigateur de l’internaute.

Raccourci typographique

Le plugin propose également d’intégrer le lien directement dans le contenu des objets éditoriaux de SPIP. Il s’agit du raccourci typographique de SPIP pour inclusion des modèles appliqué au modèle “tipafriend_typo.html” (attention ici, le modèle typographique est “tipafriend_typo” et non “tipafriend” tout court comme ailleurs dans le plugin).

Dans le cas du raccourci typographique, SPIP ne peut pas récupérer les différentes informations de l’objet dans lequel il est inclus. Vous devez donc préciser au minimum un objet et un id_objet [4].

// notation à retenir
<tipafriend_typo|>
 
// notation avec tous les arguments
<typafriend_typo|
    objet=...| // type d'objet SPIP (nécessaire)
    id_objet=...| // ID de l'objet (nécessaire)
    lang=...| // langue (option)
    squelette(ou "type")=...| // type de squelette ou nom du squelette (option)
    url=...| // URL à utiliser (option)
    mex=...| // mail expediteur (option)
    nex=...| // nom expediteur (option)
    mdes=... // mail(s) destinataire(s) (option)
>
 
// exemple pour l'article 13
<typafriend_typo|objet=article|id_objet=13>

Pour mémoire, à l’exception des trois premiers, les paramètres sont les mêmes que pour la balise.

Configuration

Tip A Friend est prévu pour proposer une page de configuration grâce au plugin CFG mais celui-ci n’est pas obligatoire.

La page de configuration permet de définir (cf. portfolio) :

  • les patrons utilisés pour construire le message transmis, en version brute et HTML,
  • le type de contenus des objets SPIP qui seront inclus dans le corps du message,
  • le squelette utilisé pour le formulaire présenté à l’internaute,
  • si les en-têtes HTML (balise <head>) doivent y être inclus ou non,
  • si le bouton “Fermer” (en bas de la popup) doit être présenté ou non,
  • si le fichier CSS par défaut doit y être inclus ou non,
  • des arguments et attributs à ajouter au lien apparaissant en lieu et place de la balise dans vos pages [5],
  • si la fonction par défaut d’ouverture d’une fenêtre popup doit être active ou non,
  • de redéfinir l’action javascript du bouton “Annuler” proposé sur le formulaire.

Aperçu

Aperçu du plugin en fenêtre popup

Version HTML

Le plugin est prévu pour utiliser, optionnellement, le fonctionnement du plugin Facteur, qui surcharge de façon invisible les fonctions d’envoi de mail standards de SPIP. Si Facteur est installé et actif sur votre site, une version HTML du mail peut être construite et envoyée, accompagnée de la version ’classique’ en texte brut.

Personnalisation

Pour rappel, vos modèles et patrons de mail personnalisés doivent être placés respectivement dans les répertoires “modeles/” et “patrons/” de vos squelettes.

Modèles de mails

Vous pouvez personnaliser les squelettes utilisés pour la construction du mail qui est envoyé. Le modèle par défaut est un squelette SPIP standard, à ceci prêt qu’il construit un corps de mail et doit donc suivre une structure simple en texte brut : pas d’en-tête ni de pied de page html, les sauts de ligne sont tous visibles après compilation etc. Pour créer un squelette personnalisé, il est conseillé de travailler à partir d’une copie du squelette “patrons/tipafriend_mail_default.html [6].

Sur le même principe, vous pouvez personnaliser le patron utilisé pour construire la version HTML du mail envoyé par le plugin en travaillant sur une copie du fichier “patrons/tipafriend_mail_default_html.html”.

Squelettes du plugin

Vous pouvez également personnaliser le squelette présentant le formulaire d’envoi sur le modèle du fichier “modeles/tipafriend.html”. Votre squelette devra impérativement inclure le formulaire “tipafriend_form”.

Styles CSS

Les styles CSS du formulaire sont modifiables dans le fichier “tipafriend.css” à la racine du plugin. Ils définissent principalement l’apparence de la page en popup (cf. les aspects techniques ci-dessous). L’inclusion de ces définitions CSS peut être annulée sur la page de configuration du plugin.

MAJ du 11/03/2011 - Le formulaire a été entièrement revu pour définir des classes CSS pour chaque champ de saisie. Voyez le contenu du fichier “tipafriend.css” pour une liste complète (cf. portfolio) [7].

Dimensions de la fenêtre

Les dimensions de la fenêtre popup proposant le formulaire d’envoi du mail peuvent être modifiées dans le fichier “tipafriend_options.php” à la racine du plugin, en éditant les valeurs _TIPAFRIEND_POPUP_WIDTH et _TIPAFRIEND_POPUP_HEIGHT.

Aspect technique

Squelette du formulaire

Le squelette de la page du plugin proposant le formulaire (le fichier “tip_a_friend.html” dans le répertoire du plugin) est construit de façon à rester au plus proche de la distribution de SPIP tout en étant compatible, autant que possible, avec les squelettes Z.

Envoi des mails

Contrairement à certains de ses camarades, Tip A Friend utilise les fonctions d’envoi de mail standards de SPIP (elles-mêmes surchargées par le plugin Facteur si vous l’utilisez), ce qui le rend relativement léger mais peut cependant poser problème lors de l’envoi depuis certains hébergeurs [8]...

Déboguage

Pour aider le développement de vos personnalisations, il est possible de passer le plugin en mode ’verbose en activant la constante “_TIPAFRIEND_TEST” tout en haut du fichier “tipafriend_options.php”. Cela inscrit à l’écran l’ensemble des données transmises au squelette par la balise ainsi que l’environnement du formulaire du plugin. Ces informations surchargent considérablement l’affichage des pages mais peuvent être utiles à la compréhension du cheminement et du traitement des informations. Pensez bien à repasser en mode ’classique’ après vos développements ... ATTENTION - Les mails sont envoyés même en mode ’verbose’ ...

Footnotes

[1De nombreux plugins SPIP proposant cette fonctionnalité existent en effet déjà, notamment sur Spip-Contrib. Pour plus d’informations, voyez la rubrique Communication, messagerie et syndication.

[2“Tip A Friend” signifie littéralement “Envoyer à un ami” (pour mémoire ...).

[3Pour rappel, un paramètre de balise SPIP se définit sur FALSE en indiquant '' en remplacement de sa valeur.

[4Depuis la version 1.6.2 du plugin du 28/08/2012.

[5Cette option permet notamment d’ouvrir le formulaire d’envoi dans une fenêtre javascript type ’thickbox’ au lieu d’une popup.

[6Vous pouvez également lire l’article Réaliser des patrons, qui s’applique au plugin SPIP-Listes mais présente certaines règles générales de rédaction de patrons d’e-mails en squelette SPIP.

[7ATTENTION - Cette mise à jour a modifié les anciennes classes CSS contenant ’taf_...’ en ’tipafriend_...’, notamment dans le squelette de la popup (au passage de la version 1.02 à 1.03). Si vous perdez vos personnalisations en le mettant à jour, vérifiez bien l’utilisation de ces classes.

[8Si vous rencontrez effectivement des problèmes d’envoi (et notamment, si les mails du plugin ne sont pas envoyés du tout), utilisez un autre plugin proposant cette fonctionnalité. Vous en trouverez une liste non-exhaustive sur Spip-Contrib : Communication, messagerie et syndication.

  • 11/03/2011 - Ajout du plugin dans le fichier des modules à traduire de Salvatore.

Discussion

6 discussions

  • 2
    Fifouille

    Bonjour,

    Je constate plusieurs tentatives de spam via le formulaire de ce plugin.

    Y-a-t-il un moyen de sécuriser le formulaire ? Via captcha ou autre ?

    Merci

    • Les captcha c’est mal. C’est pas accessible. Ca donne souvent des données à des grosses boites.

      Du coup pour l’instant sur la version 1.6.10, je viens d’ajouter la déclaration au plugin nospam, souvent bien efficace. Pour l’instant je n’ai mis que la déclaration basique. A verifier l’effet deja à l’usage. Si jamais ca n’est pas effectif, on mettra également des fonctions avancées du plugin.

    • Fifouille

      Merci pour l’info et cette nouvelle mouture.

      Je vous tiens informé.

      Bon week-end

    Reply to this message

  • Bonjour
    Je reviens - huit ans après - sur ma question d’août 2012 :
    Dans le mail reçu, le lien vers l’article “partagé” est erroné depuis la version 1.5.1 du plugin, si l’appel au formulaire se fait en utilisant la balise :

    #TIPAFRIEND{mini}

    Dans mon cas, dans le mail envoyé, l’URL pointant vers l’article que l’on veut partager est :

    http://MonDomaine.fr/article

    Alors que ce lien devrait être (par exemple) :

    http://MonDomaine.fr/spip.php?article4485

    Depuis cette époque, j’étais resté sur la version 1.5.0 qui ne connaît pas ce défaut.
    Les versions 1.5.0 et 1.5.1 du plugin ne fonctionnant plus sur SPIP 3, j’ai cherché les causes.
    En comparant les fichiers “tipafirend.php” (dossier “balise” du plugin), j’ai vu que la seule différence entre les versions 1.5.0 et 1.5.1 concernait l’ajout d’un paramètre de langue.

    • Sur un site en Spip 2.1.30, j’ai installé la version 1.5.1 du plugin en lui mettant le fichier “tipafriend.php” de la version 1.5.0 : je n’ai plus l’erreur d’URL dans le mail reçu.
    • Sur un site en Spip 3.2.7, j’ai installé la version 1.6.9 du plugin en modifiant le fichier “tipafriend.php” : enlèvement de tout ce qui concerne le paramètre de langue. Je n’ai plus d’erreur d’URL dans le mail reçu.

    Mais ce ne sont que des bidouillages...

    Reply to this message

  • 2
    Jacques

    Suite à une mise à jour automatique de clevermail, facteur et soyezcreateurs
    J’ai l’erreur suivante :

    Impossible d’activer le plugin ../plugins/auto/soyezcreateurs/v4.3.1
    Nécessite le plugin MINIDOC en version ≥ 1.0.3.
    Nécessite le plugin ORDOC en version ≥ 1.1.2.

    que faire ?
    Merci d’avance.

    • Le problème étant lié à soyezcreateur, deja poser la question sur le forum de cet article et non pas ici serait plus pertinent.

      Quel version de SPIP utilisez vous ? ordoc est intégré dans les nouvelles bersions. Si vous utiliserz la v3.1 il vous faut installer les plugins signalés.

    • Jacques

      En fait en faisant une mise à jour de spip 3.2.0 vers spip 3.2.1 le problème est résolu.
      Merci pour la réactivité.

    Reply to this message

  • 7

    PROBLEME DE VERSION
    Je suis en SPIP 3.2.1 [23954]

    Suite à mise à jour automatique de plusieurs plugins dont FACTEUR en 3.52 et TIPAFRIEND en 1.6.6 j’ai une erreur

    Impossible d’activer le plugin ../plugins/auto/tipafriend/v1.6.6
    Utilise le plugin FACTEUR en version < 2.

    J’ai donc réinstallé la 1.6.5 et l’activation s’est bien passée.

    Sinon, la présente page parle de version 1.6.5, pas 1.6.6. D’où sort cette version 1.6.6 ?

    • La version 1.6.6 nécessite les dernières versions de facteur (3.5.2). Elle a été publiée cette nuit et le script qui met à jour les info sur la présente page n’a pas eu le temps de passer.

      Par contre je ne comprend pas que tu ai eu ce message d’erreur.

    • Bonjour, avec la version de Facteur 3.5.2 le plugin Tip a Friend ne fonctionne pas non plus, j’ai la même erreur.

    • La version 1.6.7 de tipafriend, qui devrait être zippé vers midi 15 résoud le problème.

    • Oups, j’avais fait une coquille en corrigeant l’autre. La version 1.6.8 résoud le problème.

    • Merci Maïeul pour tes réponses et surtout merci pour le temps passé à aider les béotiens comme moi.
      La maj s’est bien passée :)

    • Bof, boétien tu n’y pouvais rien: c’était un bug.

    • Cette fois ci peut être, néanmoins ton nom revient souvent et tes contributions sur Spip m’ont fait progresser. Merci à toi et merci également à tous les contributeurs

    Reply to this message

  • 3

    bonjour, il semble que depuis les dernières modif de facteur les images ne sont plus envoyées, non?

    • et en début de message dans thunderbird avec le patron tipafriend_mail_default_html, j’ai :
      MIME-Version: 1.0
      Content-Type: multipart/related;
      type=“text/html”;
      boundary=“b1_4b29fc211957e7a3c6f529e1025f52d7”

      — b1_4b29fc211957e7a3c6f529e1025f52d7
      Content-Type: multipart/alternative;
      boundary=“b2_4b29fc211957e7a3c6f529e1025f52d7”

      — b2_4b29fc211957e7a3c6f529e1025f52d7
      Content-Type: text/plain; charset=utf-8
      Content-Transfer-Encoding: 8bit

    • le problème venait de facteur 3.09, la version 3.10 résout la chose, merci

    • Cette fois ci peut être, néanmoins ton nom revient souvent et tes contributions sur Spip m’ont fait progresser. Merci à toi et merci également à tous les contributeurs

    Reply to this message

  • 1

    Bonjour,

    une version compatible pour SPIP 3.2.0 est-elle prévue ?

    Merci pour la réponse ;)

    • Salut,

      comme pour tous les plugins, il suffit de modifier le paquet,.xml en remplacant

      compatibilite="[3.0.0;3.1.*]

      par

      compatibilite="[3.0.0;3.2.*]

      pour pouvoir tester le plugin et vérifier qu’il est bien compatible. Si tous fonctionne correctement, nous le signaler pour qu’on modifie la version diffusée.

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom