Gravatar

Un plugin pour afficher le gravatar d’un auteur ou d’un contributeur de forum.

Gravatar ?

Le site gravatar.com propose un service d’avatar unifié. Vous vous inscrivez avec votre adresse de courrier électronique, et vous téléchargez une image à utiliser comme avatar lié à cette adresse.

Votre avatar sera alors disponible sur tous les sites utilisant le service de Gravatar, à condition de leur fournir votre adresse courriel. Vous pouvez créer autant de Gravatar que vous possédez d’adresses courriel.

Le plugin utilise le site SPIP comme proxy pour éviter de fliquer les internautes en envoyant des informations de connexion à Gravatar.

Installation classique

Comme tout plugin, il suffit de suivre les procédures manuelles ou automatiques standard. Il s’agit de mettre le contenu du zip dans votre répertoire plugins/.

Affichage dans l’espace privé

Dès que le plugin est activé, il modifie l’affichage de la colonne gauche de la page d’édition des auteurs possèdant un gravatar, en ajoutant, sous le bloc habituel de son logo, un second bloc affichant son gravatar, comme l’illustre l’image ci-dessous.

Utilisation par le webmestre

Le plugin propose plusieurs méthodes pour afficher des avatars :


-  La balise #LOGO_AUTEUR

C’est la méthode privilégiée pour utiliser le plugin Gravatar dans le code des squelettes. Le plugin étend la balise #LOGO_AUTEUR afin que celle-ci renvoie le gravatar associé à l’email, si l’auteur n’a pas déjà un logo dans SPIP.

Mieux, vous pouvez utiliser la balise #LOGO_AUTEUR dans les forums et pétitions. Elle utilisera alors les informations de l’auteur si elles sont connues, et à défaut l’email de la personne ayant envoyé le message.

#LOGO_AUTEUR affiche par défaut le type de gravatar configuré sur la page cfg du plugin si il n’y a pas de gravatar de défini pour l’email recherché ni de logo.

Vous pouvez ainsi substituer votre image par défaut en écrivant dans votre squelette

[(#LOGO_AUTEUR||sinon{#CHEMIN{gravatar.png}})]


-  La balise #GRAVATAR

Cette balise renvoie uniquement le gravatar associé à une adresse courriel. Elle permet donc de pallier à l’existence d’un logo et de toujours forcer le gravatar au détriment du logo de l’auteur. Cette balise possède trois arguments :

  • l’adresse email
  • la taille de l’image à afficher (facultatif, 80 pixels par défaut)
  • l’image par défaut si aucune vignette n’est récupérée (facultatif)

On peut s’en servir ainsi :

[(#GRAVATAR|balise_img)]


-  Le modèle #MODELE{gravatar}

Le modèle #MODELE{gravatar} fonctionne comme la balise
#LOGO_AUTEUR ci-dessus, et la complète, en affichant le logo de l’auteur s’il est présent, sinon le gravatar associé à l’adresse courriel, sinon un avatar par défaut (gravatar.png), en vignette carrée de 60 pixels de côté [1]. Ce modèle est également microformaté pour pouvoir être utilisé tel quel dans une hCard personnelle.

Ce modèle peut être utilisé à la fois dans et hors d’une boucle AUTEURS. Par exemple, dans les commentaires, pour afficher la trombine de chaque commentateur, qu’il soit identifié dans SPIP ou inconnu, on emploiera le modèle ainsi :

[(#MODELE{gravatar}{email=#EMAIL})]

L’avantage du modèle est d’abord qu’il affiche toujours quelque chose, de façon formatée et donc homogène, mais aussi qu’il facilite une ré-utilisation des avatars en plusieurs endroits du site (trombinoscope, profil, hCard, commentaires, informations de session, etc.). Il est alors possible de réduire la vignette au cas par cas, en spécifiant la dimension voulue via le filtre |image_reduire{32}.


-  Le filtre |gravatar

Ce filtre retourne le chemin complet dans le cache du gravatar correspondant à l’adresse courriel fournie en argument.

Exemple d’utilisation, l’adresse courriel peut être issue d’une boucle ou pas :

<BOUCLE_gravatar(AUTEUR)>
    <img src="[(#EMAIL|gravatar)]" alt="[(#NOM)]"[ title="(#NOM)"] />
</BOUCLE_gravatar>

ou

<img src="[(#VAL{robert@inconnu.net}|gravatar)]" alt="Robert" title="Robert"] />

Gravatar par défaut

Si une adresse email n’a pas de gravatar associée, la balise #GRAVATAR peut renvoyer une image par défaut.

Pour cela, il faut installer le plugin CFG puis se rendre dans la page de config du plugin.

Plusieurs gravatars par défaut sont proposés :
-  rien
-  une image
-  un gravatar calculée selon l’adresse électronique.

Taille maximale des gravatars

Par défaut, le plugin récupère les gravatars en 80*80 px maximum. En conséquence, le réglage dans le formulaire de configuration ne devrait pas dépasser cette taille. En général, c’est suffisant, d’autant plus que les utilisateurs les postent rarement en une taille supérieure.

Toutefois, dans le cas où on souhaiterait récupérer une taille supérieure, il faut rédefinir la constante _TAILLE_MAX_GRAVATAR dans le fichier mes_options.php. Par exemple pour une taille de 100 px :

define('_TAILLE_MAX_GRAVATAR',100);

Si on redéfinit cette constante, il est nécessaire de vider le dossier local/cache-gravatar.

Notes

[1Les avatars affichés en page d’accueil du site gravatar.com sont de petites vignettes carrées de 60 pixels de côté, ce qui est un format habituel et semble avoir été la taille maxi originelle. La taille maximale d’un gravatar a longtemps été de 80 pixels.

Discussion

29 discussions

  • Sous SPIP 2.0

    si je fais une erreur en saissant le login/mdp, j’obtiens (avec gravatar activé)

    Fatal error: Call to undefined function calcule_logo_ou_gravatar() in /space/www/gl-ouv/3/1/3107062202446109/web/ouvaton.org/maieul.ouvaton.org/html/ecrire/public/composer.php(73) : eval()'d code on line 22

    de même d’ailleur si je me déconnecte de l’espace privé et que je suis renvoyé vers la page de login

    Répondre à ce message

  • Bon ... super ... cependant en 2.1, la fonction balise_LOGO__dist() dans balises/logo_.php a pas mal changé et rend impossible le hack (de cette manière en tout cas) sur la balise #LOGO_AUTEUR...

    Donc je donne ici la solution la plus clean que j’ai trouvé pour pallier au problème, dans un squelette :

    [(#LOGO_AUTEUR|image_reduire{80,80}
    |sinon{[(#GRAVATAR{#EMAIL,80,#CHEMIN{images/gravatar.png}})]})]

    S’il y a mieux dites le ...

    Répondre à ce message

  • 1

    Bonjour,

    je n’ai pas d’affichage du gravatar y compris dans l’espace privé de spip, étant derrière un proxy(renseigné dans la configuration de spip) et travaillant sur un serveur de dev local, je me demandais si le problème pouvais venir de la ???

    • A priori le plugin gravatar utilise bien les fonctions qui savent utiliser le proxy, si celui-ci est renseigné dans la configuration de SPIP.

    Répondre à ce message

  • Il semblerait que même dans un contexte d’auteur, il faille spécifier une adresse mail quand on appelle la balise #GRAVATAR. Je propose ce changement pour lever cette contrainte :

    --- gravatar.php        2009-08-03 11:47:53.000000000 -0500
    +++ gravatar.php    2009-08-08 06:49:04.407786615 -0500
    @@ -9,11 +9,15 @@
             **/
     
     function balise_GRAVATAR($p) {
    -       return calculer_balise_dynamique($p, 'GRAVATAR', array());
    +       return calculer_balise_dynamique($p, 'GRAVATAR', array('email'));
     }
     
     function balise_GRAVATAR_stat($args, $filtres) {
    -       return array($args[0], $args[1], $args[2]);
    +       return array(
    +               (isset($args[1]) ? $args[1] : $args[0]),
    +               $args[2],
    +               $args[3]
    +       );
     }
     
     function balise_GRAVATAR_dyn($email, $size, $gravatar_default) {

    Répondre à ce message

  • 1
    bananabomb

    Merci pour ce petit plugin sympathique.

    Petite question cependant : pourquoi forcer la conversion en jpg ? Alors que gravatar permet d’uploader des png... Du coup, une éventuelle transparence dans l’image de l’utilisateur est perdue (voir mon gravatar pour l’exemple !).

    Est-ce que c’est facilement corrigeable ? (ca doit se jouer dans inc/gravatar.php je pense)

    Merci !

    • La conversion en JPG c’est une facilité pour retrouver rapidement si on a ou pas une copie locale de l’avatar. N’hésite pas à améliorer

    Répondre à ce message

  • 3

    On peut utiliser la balise #LOGO_AUTEUR dans les forums, les pétitions, sur la page de l’auteur, sur les articles de l’auteur, dans un trombinoscope de tous les auteurs du site, etc, etc. ce qui duplique bêtement du code à l’identique dans autant de fichiers (par exemple : [(#LOGO_AUTEUR||image_reduire{60,100}|sinon{#CHEMIN{img/gravatar.png}}|image_recadre{60,60}|image_nb|inserer_attribut{class,spip_logos})]), au risque d’en oublier lors d’une modification. J’utilise donc un p’tit modèle, dont la syntaxe d’appel est presque aussi simple et courte que notre bonne vieille balise (#MODELE{logo_auteur}). Y’a-t-il moyen de mieux faire ? de mieux mutualiser ?
    Plus j’y pense, plus je crois que la balise #LOGO_AUTEUR devrait afficher un avatar par défaut (nommé « gravatar.png » et surchargeable)...

    • Oh non pitié surtout pas d’avatar par défaut sinon il devient impossible de tester s’il y a ou non un avatar ! la syntaxe [(#LOGO_AUTEUR|sinon{defaut})] est simple et plus claire.

    • Pour #LOGO_AUTEUR, un avatar par défaut me semble une bonne idée si il est optionnel : ne peut-on pas envisager un import du logo auteur par défaut de la même manière que l’on importe un logo_rubrique par défaut ? Ce qui génèrerait donc une image de type auton0 ?

    • Pour la valeur par défaut (i.e. en absence de valeur précisée), le filtre |sinon{} est ton ami.

    Répondre à ce message

  • 1

    [(#LOGO_AUTEUR||sinon#CHEMIN/images/gravatar.jpg)]

    ca ne marche pas pour moi :
    1. quand y’a pas d’avatar, ca me renvoi juste la chaine de character ’/images/gravatar.png’
    2.quand y’a un gravatar ca me renvoi le html complet

    donc dans cas #1 j’ai juste le text. cas#2 j’ai tout le html.

    Je n’arrive pas a ajouter le filtre ’extraire_attributsrc non plus.

    est ce que je le plugin actuel fonctionne bien ?

    • je me repond a moi meme...

      si l’image par defaut n’existe pas ca fait planter... j’ai corriger le chemin vers une image existante et ca marche maintenant.

    Répondre à ce message

  • 4

    Une chose me manque cruellement dans ce plugin que j’adore : pouvoir rendre le champ courriel obligatoire (puisque nous en avons besoin pour afficher le gravatar + ça éviterait aux têtes en l’air comme moi d’oublier de remplir ce champ). Quand je serais grande et que je saurais coder ça...

    • Il faudrait alors que ce soit optionnel, tout le monde n’a pas un Gravatar, et surtout ne souhaite pas forcément diffuser son adresse e-mail. Je vois mal demander juste le MD5 du mail pour en déduire le Gravatar... ;-)

      Pour compenser, tu peux passer tes forums en mode « sur abonnement », qui impose de fait la saisie de l’e-mail.

    • Je suis d’accord avec Nicolas ; il faudrait « juste » modifier les forums sur abonnement pour qu’on puisse envoyer son forum avant d’avoir validé son mail. Le forum serait placé en attente de modération, et serait publié dès validation de l’email.

    • Ouch ! je m’exprime si mal que ça !?

      • j’ai bien dis « pouvoir rendre... » : avoir une possibilité n’oblige pas de l’imposer à tout le monde :-P
      • deuxio, que la saisie du courriel soit obligatoire n’entraîne pas sa publication !! Par défaut, les forums de SPIP n’affichent pas cette info perso : ce n’est donc pas un problème.
      • Enfin... utiliser les « forums sur abonnement » n’est pas satisfaisant :
        • d’une part c’est bien plus contraignant pour l’utilisateur, puisque ça lui impose d’ouvrir un compte sur le site ;
        • d’autre part ça ne garantit pas la mention du courriel, puisqu’on peut avoir un compte sans courriel :-P
    • Ouch ! je m’exprime si mal que ça !?

      Mais non ! Par contre tu as l’air d’aimer les listes imbriquées... :-p

      j’ai bien dis « pouvoir rendre... » : avoir une possibilité n’oblige pas de l’imposer à tout le monde :-P

      OK, là j’ai extrapolé.

      deuxio, que la saisie du courriel soit obligatoire n’entraîne pas sa publication !! Par défaut, les forums de SPIP n’affichent pas cette info perso : ce n’est donc pas un problème.

      Mais l’info est en clair dans la base, c’est surtout ça le problème (pour « eux »). Certaines personnes se refusent à donner leur adresse e-mail, alors si en plus qu’on ne l’utilisera QUE pour afficher une image, ils ne prennent pas le « risque ». Tu me diras que les personnes qui se créent un gravatar sont prêtes à prendre le risque, et tu auras raison, mon argumentaire s’écroule. Sauf si justement on laisse la possibilité à certains de saisir plutôt le MD5 de leur mail, mais ça fait vite trop g33k et ça va faire fuir les autres.

      Enfin... utiliser les « forums sur abonnement » n’est pas satisfaisant

      J’ai bien dit « pour compenser », ce n’est qu’un palliatif, certes pas satisfaisant.

      d’une part c’est bien plus contraignant pour l’utilisateur, puisque ça lui impose d’ouvrir un compte sur le site ;

      Certes, d’où la réponse de Fil, qui améliorerait déjà un peu.

      d’autre part ça ne garantit pas la mention du courriel, puisqu’on peut avoir un compte sans courriel :-P

      Euh... la vérification d’identité se fait bien par envoi de mail, non ???

    Répondre à ce message

  • J’avais rusé avec quelques vieux bouts de code trouvés par ci par là, mais là ça va rendre la chose plus propre. Merci beaucoup

    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