Gravatar avec $plxShow->artAuthorEmail()

HarukaHaruka PluXml Project Manager
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 ?

Réponses

  • 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' />
    
  • HarukaHaruka PluXml Project Manager
    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' />
    
  • 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.
  • HarukaHaruka PluXml Project Manager
    D'accord je comprend mieux. Merci Jerry.
Connectez-vous ou Inscrivez-vous pour répondre.