public function Robohash::getUrl in Avatar Kit 8
Gets the URL for the avatar.
Return value
string A URL for an avatar.
Throws
\Drupal\avatars\Exception\AvatarException Thrown if missing parameters.
Overrides AvatarBaseInterface::getUrl
File
- avatars_robohash/
src/ Robohash.php, line 113
Class
- Robohash
- Implements the Robohash.org API.
Namespace
Drupal\avatars_robohashCode
public function getUrl() {
$kv = [];
$url = ($this
->isSecure() ? 'https://' : 'http://') . $this
->getHostName() . '/';
$identifier = $this
->getIdentifier();
if (!strlen($identifier)) {
throw new AvatarException('Robohash missing identifier/hash');
}
$url .= $this
->identifierIsPreHashed() ? $identifier : $this
->hashIdentifier($identifier);
$background = $this
->getBackground();
$background_map = $this
->getBackgroundsMap();
if (!empty($background) && $background != key($background_map)) {
$kv['bgset'] = $background_map[$background];
}
$type_map = $this
->getTypesMap();
$type = $this
->getType();
if ($type == 'any') {
$kv['set'] = 'any';
}
elseif (!empty($type) && $type != key($type_map)) {
$kv['set'] = 'set' . $type_map[$type];
}
$width = $this->width;
$height = $this->height;
// Robohash requires width AND height to be set.
// Robohash dimensions do not have to be square, although the rendered image
// will be distorted.
// Validation is done in setDimensions method.
if (is_numeric($width) && is_numeric($height)) {
$kv['size'] = $width . 'x' . $height;
}
$query = http_build_query($kv);
return !empty($query) ? $url . '?' . $query : $url;
}