# Gravatar Helper The `Gravatar` helper is useful for rendering image HTML markup returned from the [gravatar.com](http://gravatar.com) service. ## Basic Usage You can use the `Gravatar` helper anywhere in view scripts per the following example: ```php echo $this->gravatar('email@example.com')->getImgTag(); ``` The first (and only, in this example) argument passed to the `Gravatar` helper is an e-mail for which you want grab an avatar from gravatar.com. For convenience, this e-mail will be automatically hashed via the md5 algorithm. This will render the HTML below: ```html ``` The helper already provides URL defaults for you. ## Custom Settings You can customize the request for a gravatar.com image by using setter methods on the view helper: ```php $gravatar = $this->gravatar(); // Set the email instead of passing it via helper invocation $gravatar->setEmail('email@example.com'); // Set the image size you want gravatar.com to return, in pixels $gravatar->setImgSize(40); // Set the default avatar image to use if gravatar.com does not find a match $gravatar->setDefaultImg( \Zend\View\Helper\Gravatar::DEFAULT_MM ); // Set the avatar "rating" threshold (often used to omit NSFW avatars) $gravatar->setRating( \Zend\View\Helper\Gravatar::RATING_G ); // Indicate that a secure URI should be used for the image source $gravatar->setSecure(true); // Render the tag with the email you've set previously echo $gravatar->getImgTag(); ``` Alternately, you can pass an array as the second argument on invocation, with the following keys: ```php $settings = [ 'img_size' => 40, 'default_img' => \Zend\View\Helper\Gravatar::DEFAULT_MM, 'rating' => \Zend\View\Helper\Gravatar::RATING_G, 'secure' => null, ]; $email = 'email@example.com'; echo $this->gravatar($email, $settings); ``` > ### Scheme autodiscovery > > Passing `null` for the `secure` setting will cause the view helper to choose a > schema that matches the current request to your application. This is the > default behavior. As you can see in the above examples, there are predefined settings for the default image and rating. The Gravatar helper defines the following constants for ratings: - `RATING_G` - `RATING_PG` - `RATING_R` - `RATING_X` The helper defines the following constants for the default image: - `DEFAULT_404` - `DEFAULT_MM` - `DEFAULT_IDENTICON` - `DEFAULT_MONSTERID` - `DEFAULT_WAVATAR` You may also provide custom attributes for the generated `img` tag. To do this, pass an attributes array to the `setAttributes()` method: ```php $gravatar = $this->gravatar('email@example.com'); // Suppose that I want to add the class attribute with a value of // "gravatarcls" to the rendered tag: $attr = [ 'class' => 'gravatarcls', ]; echo $gravatar->setAttributes($attr)->getImgTag(); ``` Alternately, you can pass this array as the third argument during helper invocation: ```php $email = 'email@example.com'; $settings = [ 'default_img' => \Zend\View\Helper\Gravatar::DEFAULT_MM, ]; $attr = [ 'class' => 'gravatar-image', 'id' => 'gravatar', ]; echo $this->gravatar($email, $settings, $attr); ```