Render default avatar provider when having no user linked

This commit is contained in:
Frederic Guillot 2016-03-19 12:17:34 -04:00
parent 344f585a32
commit b9bb088842
2 changed files with 32 additions and 1 deletions

View File

@ -61,4 +61,30 @@ class AvatarManager
return '';
}
/**
* Render default provider for unknown users (first provider registered)
*
* @access public
* @param integer $size
* @return string
*/
public function renderDefault($size)
{
if (count($this->providers) > 0) {
ksort($this->providers);
$provider = current($this->providers);
$user = array(
'id' => 0,
'username' => '',
'name' => '?',
'email' => '',
);
return $provider->render($user, $size);
}
return '';
}
}

View File

@ -171,7 +171,12 @@ class UserHelper extends Base
*/
public function avatar($user_id, $username, $name, $email)
{
$html = $this->avatarManager->render($user_id, $username, $name, $email, 48);
if (empty($user_id) && empty($username)) {
$html = $this->avatarManager->renderDefault(48);
} else {
$html = $this->avatarManager->render($user_id, $username, $name, $email, 48);
}
return '<div class="avatar">'.$html.'</div>';
}
}