Laravel gravatar html makrosu

İhtiyaç sebebiyle laravel için gravatar makrosu yazdık. Tüm gravatar özelliklerini kullanıp karışık php birleştirmeleri yerine http_build_query() fonksiyonu kullanarak basit ve anlaşılır kodlama yapmaya çalıştık. Resim olarak çıktı verdiğimiz için gravatar dökümanında yer alan “404” değerini $default değişkenimizde kullanamıyoruz.

Güncelleme, 23 Mart 2014: Daha iyi bir öneri gelmesi üzerine, kodlar öneride gelen kodlar ile değiştirilmiştir.

/**
 * Gravatar Image from Email address
 *
 * Usage:
  {{
    HTML::gravatar(
      array('email' => $user->email, 'alt' => $user->username, 'size' => 20),
      array('class' => 'avatar')
    )
  }}
 *
 * Usage 2 (recommended auth user):
  {{ HTML::gravatar(array('size' => 20), array('class' => 'avatar')) }}
 *
 * Document: https://en.gravatar.com/site/implement/images/
 *
 * @param array $options Options
 * @param array $attributes Attributes
 *
 * @return string
 */
HTML::macro('gravatar', function($options = array(), $attributes = array())
{
  $email    = array_get($options, 'email', Auth::user()->email);
  $alt      = array_get($options, 'alt', Auth::user()->username);
  $size    = array_get($options, 'size', '64');
  $default  = array_get($options, 'default', 'identicon');
  $rating   = array_get($options, 'rating', 'g');

  // Set default width and height
  $attributes['width'] = $size;
  $attributes['height'] = $size;

  $url = 'http://www.gravatar.com/avatar/' . md5(strtolower(trim($email)));
  $query = http_build_query(array(
    's' => $size,
    'd' => $default,
    'r' => $rating
  ));

  return HTML::image($url. '?' . $query, $alt, $attributes);
});

Aynı kodlar Github Gist üzerinde ki gravatar_macro.php dosyasında da mevcut.

One thought on “Laravel gravatar html makrosu
  1. angelside

    Güncelleme, 23 Mart 2014: Daha iyi bir öneri gelmesi üzerine, kodlar öneride gelen kodlar ile değiştirilmiştir.

Bir Cevap Yazın