| 
<?phpnamespace Jackbooted\Html;
 
 use \Jackbooted\Config\Cfg;
 /**
 * @copyright Confidential and copyright (c) 2016 Jackbooted Software. All rights reserved.
 *
 * Written by Brett Dutton of Jackbooted Software
 * brett at brettdutton dot com
 *
 * This software is written and distributed under the GNU General Public
 * License which means that its source code is freely-distributed and
 * available to the general public.
 *
 * http://en.gravatar.com
 * mm: (mystery-man) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)
 * identicon: a geometric pattern based on an email hash
 * monsterid: a generated 'monster' with different colors, faces, etc
 * wavatar: generated faces with differing features and backgrounds
 * retro: awesome generated, 8-bit arcade-style pixelated faces
 */
 class Gravatar extends \Jackbooted\Util\JB {
 private static $URL;
 const ICO = '%s/avatar/%s?s=%d&r=%s&d=%s';
 
 static $gravType = 'mm';
 
 public static function init () {
 self::$gravType = Cfg::get ( 'gravatar', 'wavatar' );
 if ( isset ( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ) {
 self::$URL = 'https://secure.gravatar.com';
 }
 else {
 self::$URL = 'http://www.gravatar.com';
 }
 }
 
 public static function icon ( $email, $size=24, $rating='PG', $type=null ) {
 if ( $type == null ) $type = self::$gravType;
 $gHash = md5 ( strtolower ( trim ( $email ) ) );
 
 $tPath = Cfg::get( 'tmp_path' );
 $fName = 'GRAV' . $size . $type . $gHash . '.png';
 $fPath = $tPath . '/' . $fName;
 
 // Locally Caches the gavatar image
 if ( ! file_exists( $fPath ) ) {
 copy( sprintf ( self::ICO, self::$URL, $gHash, $size, $rating, $type ) , $fPath );
 if ( ! file_exists( $fPath ) ) {
 return Tag::img ( sprintf ( self::ICO, self::$URL, $gHash, $size, $rating, $type ) );
 }
 }
 
 return Tag::img (  Cfg::get ( 'site_url') . '/' . basename( $tPath ) . '/' . $fName );
 }
 
 public static function getURL ( ) {
 return self::$URL;
 }
 }
 
 |