. */ /** * @package GravatarPlugin * @maintainer Eric Helgeson */ if (!defined('STATUSNET') && !defined('LACONICA')) { // This check helps protect against security problems; // your code file can't be executed directly from the web. exit(1); } class GravatarPlugin extends Plugin { function onEndProfileGetAvatar(Profile $profile, $size, &$avatar) { if (empty($avatar)) { try { $user = $profile->getUser(); if (!empty($user->email)) { // Fake one! $avatar = new Avatar(); $avatar->width = $avatar->height = $size; $avatar->url = $this->gravatar_url($user->email, $size); return false; } } catch (NoSuchUserException $e) { return true; } } return true; } function gravatar_url($email, $size) { $url = 'https://secure.gravatar.com/avatar.php?gravatar_id=' . md5(strtolower($email)) . '&default=' . urlencode(Avatar::defaultImage($size)) . '&size=' . $size; return $url; } function onPluginVersion(array &$versions) { $versions[] = array('name' => 'Gravatar', 'version' => GNUSOCIAL_VERSION, 'author' => 'Eric Helgeson, Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:Gravatar', 'rawdescription' => // TRANS: Plugin decsription. _m('The Gravatar plugin allows users to use their Gravatar with StatusNet.')); return true; } }