. class Avatars { public $setup; public $isHTTPS = false; public $http; public $subdomain; public $iconSize; public $avatar; public $fallback; public function __construct (Setup $setup) { $this->setup = $setup; $this->isHTTPS = $setup->isHTTPS (); // Get icon size from settings $this->iconSize = ($setup->isMobile === true) ? 256 : $setup->iconSize; // Default avatar $avatar = $setup->httpImages . '/avatar'; $extension = ($setup->isMobile === true) ? 'svg' : 'png'; $this->avatar = $avatar . '.' . $extension; // Use HTTPS if this file is requested with HTTPS $this->http = ($this->isHTTPS ? 'https' : 'http') . '://'; $this->subdomain = $this->isHTTPS ? 'secure' : 'www'; // If set to custom, direct 404s to local avatar image if ($setup->gravatarDefault === 'custom') { $fallback = $avatar . '.png'; // Check if HashOver is being remotely accessed if ($setup->remoteAccess === false) { // If so, make avatar path absolute $fallback = $setup->absolutePath . $fallback; } // URL encode fallback URL $this->fallback = urlencode ($fallback); } else { // If not direct to a themed default $this->fallback = $setup->gravatarDefault; } // Gravatar URL $this->gravatar = $this->http . $this->subdomain; $this->gravatar .= '.gravatar.com/avatar/'; } // Attempt to get Gravatar avatar image public function getGravatar ($hash) { // If no hash is given, return the default avatar if (empty ($hash)) { return $this->avatar; } // Gravatar URL $gravatar = $this->gravatar . $hash . '.png?r=pg'; $gravatar .= '&s=' . $this->iconSize; $gravatar .= '&d=' . $this->fallback; // Force Gravatar default avatar if enabled if ($this->setup->gravatarForce === true) { $gravatar .= '&f=y'; } // Redirect Gravatar image return $gravatar; } }