|
|
<?php |
|
|
|
|
|
namespace Kanboard\Core\User\Avatar; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AvatarManager |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private $providers = array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function register(AvatarProviderInterface $provider) |
|
|
{ |
|
|
$this->providers[] = $provider; |
|
|
return $this; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function render($user_id, $username, $name, $email, $avatar_path, $size) |
|
|
{ |
|
|
$user = array( |
|
|
'id' => $user_id, |
|
|
'username' => $username, |
|
|
'name' => $name, |
|
|
'email' => $email, |
|
|
'avatar_path' => $avatar_path, |
|
|
); |
|
|
|
|
|
krsort($this->providers); |
|
|
|
|
|
foreach ($this->providers as $provider) { |
|
|
if ($provider->isActive($user)) { |
|
|
return $provider->render($user, $size); |
|
|
} |
|
|
} |
|
|
|
|
|
return ''; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function renderDefault($size) |
|
|
{ |
|
|
if (count($this->providers) > 0) { |
|
|
ksort($this->providers); |
|
|
$provider = current($this->providers); |
|
|
|
|
|
$user = array( |
|
|
'id' => 0, |
|
|
'username' => '', |
|
|
'name' => '?', |
|
|
'email' => '', |
|
|
'avatar_path' => '', |
|
|
); |
|
|
|
|
|
return $provider->render($user, $size); |
|
|
} |
|
|
|
|
|
return ''; |
|
|
} |
|
|
} |
|
|
|