diff --git a/components/Media/Media.php b/components/Media/Media.php index f05b9eaa14..aa9f066833 100644 --- a/components/Media/Media.php +++ b/components/Media/Media.php @@ -19,12 +19,16 @@ namespace Component\Media; +use App\Core\DB\DB; +use App\Core\Event; use App\Core\Log; use App\Core\Module; use App\Entity\File; use App\Util\Common; use App\Util\Exception\ClientException; use App\Util\Nickname; +use Symfony\Component\Asset\Package; +use Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\File\Exception\FileException; use Symfony\Component\HttpFoundation\File\File as SymfonyFile; @@ -87,4 +91,15 @@ class Media extends Module { $r->connect('avatar', '/{nickname<' . Nickname::DISPLAY_FMT . '>}/avatar/{size?full}', [Controller\Avatar::class, 'send']); } + + public function onEndTwigPopulateVars(array &$vars) + { + if (($user = Common::user()) !== null && ($avatar = DB::find('avatar', ['gsactor_id' => $user->getActor()->getId()])) != null) { + $vars['user_avatar'] = $avatar->getUrl(); + } else { + $package = new Package(new EmptyVersionStrategy()); + $vars['user_avatar'] = $package->getUrl('/assets/default-avatar.svg'); + } + return Event::next; + } } diff --git a/src/Core/Controller.php b/src/Core/Controller.php index 1da03fbd71..c25f3be3d9 100644 --- a/src/Core/Controller.php +++ b/src/Core/Controller.php @@ -32,8 +32,6 @@ namespace App\Core; -use App\Core\DB\DB; -use App\Util\Common; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\JsonResponse; @@ -62,14 +60,8 @@ class Controller extends AbstractController implements EventSubscriberInterface $controller = $event->getController(); $request = $event->getRequest(); - if (($user = Common::user()) !== null && ($avatar = DB::find('avatar', ['gsactor_id' => $user->getActor()->getId()])) != null) { - $avatar_filename = $avatar->getUrl(); - } else { - $avatar_filename = '/public/assets/default_avatar.svg'; - } - - $this->vars = ['controler' => $controller, 'request' => $request, 'user_avatar' => $avatar_filename]; - Event::handle('StartTwigPopulateVars', [&$this->vars]); + $this->vars = ['controler' => $controller, 'request' => $request]; + Event::handle('start_twig_populate_vars', [&$this->vars]); return $event; } @@ -83,7 +75,7 @@ class Controller extends AbstractController implements EventSubscriberInterface } $this->vars = array_merge_recursive($this->vars, $response); - Event::handle('EndTwigPopulateVars', [&$this->vars]); + Event::handle('end_twig_populate_vars', [&$this->vars]); $template = $this->vars['_template']; unset($this->vars['_template'], $this->vars['request']);