Gravatar Zend Framework View Helper

I have worked on a Zend Framework these past couple of days and needed the ability to display a users avatar. This is easy by using Automattic’s gravatar project. The easiest way to add a users avatar is to use a (this) view helper. Basically in your view you just pass the user’s email address and a desired size and your all set. Make sure in the view helper you specify the default image if the user doesn’t have an avatar to display.

You can download the source here. Comments and improvements are always welcome.

<?php
/**
 *
 * @author Shaun Farrell
 * @version 1.0
 */
require_once 'Zend/View/Interface.php';

/**
 * Gravatar helper
 *
 * @uses viewHelper Zend_View_Helper
 */
class Zend_View_Helper_Gravatar {

	/**
	 * @var Zend_View_Interface
	 */
	public $view;
	/**
	 *
	 * @var unknown_type
	 */
	protected $_gravatarUrl = "http://www.gravatar.com/avatar.php?";
	/**
	 *
	 * @var unknown_type
	 */
	protected $_defaultImage = "http://everquest.allakhazam.com/pgfx/item_576.png";

	/**
	 *
	 * @param $emailAddress
	 * @param $size
	 * @param $imgAlt
	 */
	public function gravatar($emailAddress, $size = "40", $imgAlt = "")
	{
		$gravatarId = "gravatar_id=" . md5(strtolower(trim($emailAddress)));
		$url = $this->_gravatarUrl . $gravatarId . "&default=" . urlencode($this->_defaultImage) .
			"&size=" . $size;

		echo "<img src=\"$url\" alt=\"$imgAlt\" />";
		return null;
	}

	/**
	 * Sets the view field
	 * @param $view Zend_View_Interface
	 */
	public function setView(Zend_View_Interface $view) {
		$this->view = $view;
	}
}

3 thoughts on “Gravatar Zend Framework View Helper

  1. Pingback: Zend Framework – mega zestawienie « W drodze ku szczęściu

  2. Pingback: Zend Framework – INICIO « Oscar Viana's Weblog

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>