Une image gravatar dans la sidebar pour les derniers commentaires
Tibawbaw
Member
Salut à tous,
Voilà, je me suis un peu amusé avec mon thème aujourd'hui, et je voulais ajouter dans les derniers commentaires de ma sidebar l'avatar Gravatar de l'auteur.
Pour celà, j'ai du bidouiller deux fichiers : class.plx.show.php et sidebar.php
Tout d'abord, il faut savoir comment fonctionne Gravatar. Les utilisateurs inscrits ont un avatar enregistré sur le site de Gravatar, que l'on peut récupérer grace à l'adresse mail de l'utilisateur. Il faut hacher cette adresse avec md5. Exemple, avec mon adresse mail passée en md5, j'obtiens ce code : e15e636dcbe625dec8f070555fd70f14
Mon avatar est donc disponible à cette adresse : http://www.gravatar.com/avatar/e15e636dcbe625dec8f070555fd70f14
Si l'adresse mail n'est pas reconnue par Gravatar, vous pouvez passer un paramètre pour qu'il génère un avatar "aléatoirement" (je mets de guillemets, car cet avatar sera toujours le même pour cet email).
J'ai un peu bidouillé pour les personnes n'ayant pas laissé d'adresse mail dans leur commentaire (je n'ai pas obligé les utilisateurs à faire cela). Si l'utilisateur n'a pas laissé d'adresse mail, je prend juste son nom, que je passe en md5. Cela permet de tout de même générer un avatar, qui sera toujours le même si l'utilisateur utilise toujours le même pseudo. La limite de cette bidouille : si deux personnes laissent un commentaire sans adresse email et avec le même pseudo, ils auront le même avatar !
Je voulais donc que la fonction lastComList (dans le fichier class.plx.show.php) me retourne le md5 de l'adresse mail de l'utilisateur, et si l'adresse mail n'est pas renseignée, le md5 du nom d'utilisateur.
J'ai donc ajouté les lignes suivantes ligne 1096, juste avant "# On génère notre ligne" :
La fonction lastComList peut donc prendre une nouvelle variable : #com_gravatar
Dans mon sidebar, j'appelle la liste de mes derniers commentaires de la façon suivante :
J'appelle donc la fonction, et je construis l'URL de mon gravatar :
http://www.gravatar.com/avatar.php?gravatar_id= <-- Base fixe
#com_gravatar <-- mon mail/nom d'utilisateur en md5
?d=identicon <-- L'option qui permet de générer un avatar aléatoire à partir du md5 si celui-ci n'existe pas dans leur base de données
Et voilà, au final, on a une icône à gauche du commentaire, comme vous pouvez le voir sur mon site : www.rock-anecdotes.fr. Ca ne sert à rien, mais je trouve ça sympa :-)
En espérant que ça puisse inspirer quelqu'un...
Thibaut
Voilà, je me suis un peu amusé avec mon thème aujourd'hui, et je voulais ajouter dans les derniers commentaires de ma sidebar l'avatar Gravatar de l'auteur.
Pour celà, j'ai du bidouiller deux fichiers : class.plx.show.php et sidebar.php
Tout d'abord, il faut savoir comment fonctionne Gravatar. Les utilisateurs inscrits ont un avatar enregistré sur le site de Gravatar, que l'on peut récupérer grace à l'adresse mail de l'utilisateur. Il faut hacher cette adresse avec md5. Exemple, avec mon adresse mail passée en md5, j'obtiens ce code : e15e636dcbe625dec8f070555fd70f14
Mon avatar est donc disponible à cette adresse : http://www.gravatar.com/avatar/e15e636dcbe625dec8f070555fd70f14
Si l'adresse mail n'est pas reconnue par Gravatar, vous pouvez passer un paramètre pour qu'il génère un avatar "aléatoirement" (je mets de guillemets, car cet avatar sera toujours le même pour cet email).
J'ai un peu bidouillé pour les personnes n'ayant pas laissé d'adresse mail dans leur commentaire (je n'ai pas obligé les utilisateurs à faire cela). Si l'utilisateur n'a pas laissé d'adresse mail, je prend juste son nom, que je passe en md5. Cela permet de tout de même générer un avatar, qui sera toujours le même si l'utilisateur utilise toujours le même pseudo. La limite de cette bidouille : si deux personnes laissent un commentaire sans adresse email et avec le même pseudo, ils auront le même avatar !
Je voulais donc que la fonction lastComList (dans le fichier class.plx.show.php) me retourne le md5 de l'adresse mail de l'utilisateur, et si l'adresse mail n'est pas renseignée, le md5 du nom d'utilisateur.
J'ai donc ajouté les lignes suivantes ligne 1096, juste avant "# On génère notre ligne" :
[== PHP ==]
if ($com['mail'] == '')
{ $md5 = md5( strtolower($com['author']) );
$row = str_replace('#com_gravatar',$md5, $row);
}
else
{ $md5 = md5( strtolower($com['mail']) );
$row = str_replace('#com_gravatar',$md5, $row);}
La fonction lastComList peut donc prendre une nouvelle variable : #com_gravatar
Dans mon sidebar, j'appelle la liste de mes derniers commentaires de la façon suivante :
[== PHP ==]
$plxShow->lastComList('<div style="text-align:justify; height:75px;"><a href=#com_url><img src="http://www.gravatar.com/avatar.php?gravatar_id=#com_gravatar?d=identicon" class="avatar" height=\'75\' width=\'75\' style="float:left;" alt="#com_author"/>#com_author a dit</a> : #com_content(100)</div><br />');
J'appelle donc la fonction, et je construis l'URL de mon gravatar :
http://www.gravatar.com/avatar.php?gravatar_id= <-- Base fixe
#com_gravatar <-- mon mail/nom d'utilisateur en md5
?d=identicon <-- L'option qui permet de générer un avatar aléatoire à partir du md5 si celui-ci n'existe pas dans leur base de données
Et voilà, au final, on a une icône à gauche du commentaire, comme vous pouvez le voir sur mon site : www.rock-anecdotes.fr. Ca ne sert à rien, mais je trouve ça sympa :-)
En espérant que ça puisse inspirer quelqu'un...
Thibaut
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'adore le rock, Hard Rock et Metal sympa le site.
Je me demande s'il est possible de faire des ancres dans ce genre de fonction. Histoire d'ajouter la modif avec un plugin ...
Tu pourrais aussi mettre un fil d'Ariane sur ton site ...
Etant fan de PinkFloyd, je ne connaissais pas l'origine de leur nom Merci. Coïncidence, j'ai des places pour The Australian Pink Floyd Show ce soir à Montpellier ... mais je ne peux pas y aller !
car les modifs dans le core, je commence à en revenir ... dès qu'il y a une mise à jour, ou ça prend plus de temps, ou on ne se rappelle plus ....
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
http://forum.pluxml.org/viewtopic.php?id=2937
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
il est passé
il a vu
il a donné le lien
!
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Pas tout à fait, je voulais que les avatars apparaissent dans la sidebar, dans la liste des derniers commentaires. Pas dans les commentaires sous les articles !
Désolé mais je suis un peu lent, je trouve cela interressant mais pas tout compris.
je comprend la modif à faire dans le fichier "class.plx.show" et ce qu'il faut afficher dans la sidebar
Mais pas compris la manip pour passer le pseudo via md5 ?
et comment on la passe dans l'Url ?
Qu'est-ce qu'on en fait ?
Donc si la personne est inscrite sur "gravatar.com" elle a son image, sinon image alléatoire.
Et pour le plugin "hamgravatar" il faut que les personnes soient incrites aussi?
Est que les deux peuvent fonctionner en même temps?
Alors pour répondre au pseudo passé en md5, c'est juste un tour de pass-pass que je me suis amusé à faire. En fait, c'est uniquement parce que je n'ai pas forcé les utilisateurs à indiquer leur email lorsqu'ils laissent un commentaire. Du coup, je peux me retrouver avec un commentaire qui a bien un auteur, mais pas une adresse mail associée. Quand c'est le cas, j'utilise le nom de l'utilisateur à la place de l'adresse mail, pour obtenir tout de même un md5. Si l'utilisateur reposte un autre commentaire avec le même pseudonyme, il aura donc le même md5, et la même image.
Je vais essayer d'en faire un plugin (je n'en ai jamais fait, ça sera une première !), je n'ai pas énormément de temps là tout de suite, mais promis, dès que je peux, je m'y attèle !
En fait je voulais juste savoir si la modif faite dans le fichier"class.plx.show.php"suffisait ou s'i fallait faire autre chose
je vais déja tester cela en attendant
A+
$plxShow->lastComList('<div style="text-align:justify; height:75px;"><a href=#com_url><img src="http://www.gravatar.com/avatar.php?gravatar_id=#com_gravatar?d=identicon" class="avatar" height=\'75\' width=\'75\' style="float:left;" alt="#com_author"/>#com_author a dit</a> : #com_content(100)</div><br />');
Ce sont les deux seules modifications normalement ! (j'ai mis en gras ce qui normalement devrait correspondre à ton md5)
Quand je plugin sera fait, ça sera normalement largement plus simple ! (je vais essayer de faire ça bien !)
je viens de piger le truc avec gravatar que je n'avais jamais utilisé.
Ah au fait si tu retrouves ton fichier "toshop" pour l'exemple de ton "background avatar" je suis tjrs preneur
A+
j'utilise INKSCAPE logiciel super bien LIBRE
http://www.byteweiser.com/2011/11/09/inkscape-tutorial-5-how-to-make-clouds-and-sunbeams/
pour ton histoire de magie avec l'image du gravatar dans la sidebar, j'ai testé mais pas réussit;
sans l'url cela ne marche pas, je ne récupère pas l'image de gravatar; je guette ton plugin à venir...
A+
j'ai mis ton hack:
avec le <?php devant et?> en fin ???
mais je récupère juste une image aléatoire et le prob aussi c'est que cela m'affiche
#com_author a dit
si je mets l'adresse mail c'est ok le gravatar passe
Dans mon commentaire.php de mon template, j'ai ceci:
En fait ton explication pour le fichier (lib/class.plx.show.php) est pas claire au niveau du placement du(if/else)
Dans la fonction on a au début:
les numéros de lignes ne correspondent pas (j'utilise notepad++)
pour la sidebar faut il mettre les balises <?php et ?>