PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 09/04/2013 23:30:06

P3ter
Pluxml Staff
Lieu : Ile De France
Inscription : 17/10/2011
Messages : 270
Site Web

Gravatar avec $plxShow->artAuthorEmail()

Bonjour,


Je souhaiterais afficher le gravatar de l'auteur d'un article à partir de son adresse configurée dans son profil.
Dans mon template j'utilise donc le code suivant :


<?php
	$email = $plxShow->artAuthorEmail();
	$default = "http://www.somewhere.com/homestar.jpg";
	$size = 80;
	$grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
?>

Le problème c'est que l'avatar ne s'affiche pas car le hash calculé par $grav_url est différent du hash associé à l'adresse e-mail. Alors que si je remplace $plxShow->artAuthorEmail() par l'adresse mail en toute lettre le hash et le bon et l'avatar apparait.


Pourquoi il y a-t-il une différence entre le hash calculé avec $plxShow->artAuthorEmail() et le hash de l'adresse e-mail écrite en toute lettre ?


PluXml sur Twitter : @pluxml
PluXml sur Google+ : +pluXml
--
Mon Twitter : @p3terfr
Mon blog : p3ter.fr

Hors ligne

#2 10/04/2013 10:29:21

Frédéric
Membre
Inscription : 03/06/2009
Messages : 2 533

Re : Gravatar avec $plxShow->artAuthorEmail()

Bonjour P3ter,

Utilise le code que j'ai mis dans le thème Mystique:

<img alt="Gravatar" src="http://www.gravatar.com/avatar.php?gravatar_id=<?php echo md5( strtolower($plxShow->plxMotor->plxRecord_coms->f('mail')) ) ?>&amp;d=http://0.gravatar.com/avatar/29a258fbb2d69d21b675424f7bf8ae90?s=48&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&amp;r=X" class="avatar" height='48' width='48' />

Hors ligne

#3 10/04/2013 10:58:36

P3ter
Pluxml Staff
Lieu : Ile De France
Inscription : 17/10/2011
Messages : 270
Site Web

Re : Gravatar avec $plxShow->artAuthorEmail()

Merci beaucoup j'ai réussi !


J'ai réutilisé ton code, mais j'ai remplacé la méthode d'appel de l'adresse e-mail, car dans ton exemple tu récupères le mail de l'auteur d'un commentaire alors que moi j'avais besoin du mail de l'auteur de l'article.


J'utilise donc le code :


<img alt="Gravatar" src="http://www.gravatar.com/avatar.php?gravatar_id=<?php echo md5( strtolower($plxShow->plxMotor->aUsers[$plxShow->plxMotor->plxRecord_arts->f('author')]['email']) ) ?>&amp;d=http://0.gravatar.com/avatar/29a258fbb2d69d21b675424f7bf8ae90?s=48&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&amp;r=X" class="avatar" height='80' width='80' />

PluXml sur Twitter : @pluxml
PluXml sur Google+ : +pluXml
--
Mon Twitter : @p3terfr
Mon blog : p3ter.fr

Hors ligne

#4 10/04/2013 14:31:01

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 550
Site Web

Re : Gravatar avec $plxShow->artAuthorEmail()

Pour répondre à ta question, $plxShow->artAuthorEmail() retourne un echo et cela ne permet pas d'instancier correctement la variable $email (dans ton premier post). Cette dernière est en fait vide.

Il aurait mieux valu passer par ob_start() et ob_get_clean() pour utiliser $plxShow->artAuthorEmail() et récupérer sa valeur.


Ce qui aurait donné :

<?php
        ob_start();
        $plxShow->artAuthorEmail();
	$email = ob_get_clean();

	$default = "http://www.somewhere.com/homestar.jpg";
	$size = 80;
	$grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
?>

Quoi qu'il en soit, c'est le code de ton dernier post qu'il est préférable d'utiliser.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#5 10/04/2013 18:44:10

P3ter
Pluxml Staff
Lieu : Ile De France
Inscription : 17/10/2011
Messages : 270
Site Web

Re : Gravatar avec $plxShow->artAuthorEmail()

D'accord je comprend mieux. Merci Jerry.


PluXml sur Twitter : @pluxml
PluXml sur Google+ : +pluXml
--
Mon Twitter : @p3terfr
Mon blog : p3ter.fr

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés