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’ ...

Notes

[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

30 discussions

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