All pastes #91624 Raw Edit

Miscellany

public text v1 · immutable
#91624 ·published 2006-07-18 19:39 UTC
rendered paste body
$g_gravatar_folder = $g_image_path.'gravatars/';
$g_gravatar_cache = $g_gravatar_folder.'cache/';
$g_gravatar_default = 'default.gif';
function gravatar($email,$size=80) {
	global $g_gravatar_folder;
	global $g_gravatar_cache;
	global $g_gravatar_default;
	
	$gravatar_id = md5($email);
	$class = array('logo'); // default, vcard logo

	if(is_file($_SERVER['DOCUMENT_ROOT'].$g_gravatar_cache.$gravatar_id)) {
		// ace, it's cached, serve it from here then
		$gravatar_path = $g_gravatar_cache;
	}
	else {
		// grab it from the site
		$fetch_gravatar_url = 'http://www.gravatar.com/avatar.php?gravatar_id='.$gravatar_id.'&size='.$size;
		list($width,$height) = getimagesize($fetch_gravatar_url);
		// if the height/width doesn't match the size, the image isn't there
		if($width==$size && height==$size) {
			// the file exists, so we cache it
			$fetch_gravatar_url_text = file_get_contents($fetch_gravatar_url);
			$file_open = fopen($_SERVER['DOCUMENT_ROOT'].$g_gravatar_cache.$gravatar_id, 'x');
			fwrite($file_open, $fetch_gravatar_url_text);
			fclose($file_open);
			$gravatar_path = $gravatar_path_cache;
		}
		else {
			// no file, show the default one.
			$gravatar_path = $g_gravatar_folder;
			$gravatar_id = $g_gravatar_default;
			$class = ''; // no point setting the vcard logo
		}
	}
	return displayImage($gravatar_id,'gravatar','normal',$gravatar_path,'','','',$class);
}