Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
By bjornarneson on
This theme snippet will supply a gravatar ("Globally Recognized Avatar"; http://gravatar.com/) for anonymous commenters, provided that you require them to leave their contact information in admin/comment/configure
. You must also enable user pictures in comments in your theme settings.
Put the following php code snippet at the top of your comment.tpl.php
file, assuming you are using phptemplate.
// Tested with Drupal 4.6
// check to see that comment author was not authenticated user
// and that comment author provided email address
if ((!$comment->uid) && ($comment->mail)) {
// get the maximum allowed user picture dimensions from user.module settings
list($maxwidth, $maxheight) = explode('x', variable_get('user_picture_dimensions', '85x85'));
// set the maximum gravatar size equal to the maximum user picture height from settings
$size = $maxheight;
// build the gravatar image url with md5 hash of comment author email and size limit
$gravatar_uri = "http://www.gravatar.com/avatar.php?gravatar_id=". md5($comment->mail) ."&size=$size";
// get image dimensions of gravatar returned from uri
$im = getimagesize($gravatar_uri);
// an invalid gravatar will return 1x1 gif.
// if a 1x1 gif is returned, don't overwrite $picture
if (($im[0] != 1) && ($im[1] != 1)) {
$alt = $comment->name;
$picture = theme('image', $gravatar_uri, $alt, $alt, '', false);
$picture = "<div class=\"picture\">$picture</div>";
}
}
There is obviously a lot of room to improve upon this code, as it totally ignores authenticated users who have registered a gravatar, but have no local user picture uploaded.
-ba
Comments
Great Start!
This is a great start. Would you conisder adding this to the phptemplate snippets section of the handbooks?
great stuff! thanks for
great stuff! thanks for this.
-------------------------------------------------------
http://coffee.geek.nz