/** * @DI\Observe("widget_badge_usage") * * @param DisplayWidgetEvent $event */ public function onDisplay(DisplayWidgetEvent $event) { $widgetInstance = $event->getInstance(); $workspace = $widgetInstance->getWorkspace(); $user = $this->tokenStorage->getToken()->getUser(); $badgeWidgetConfig = $this->badgeWidgetManager->getBadgeUsageConfigForInstance($widgetInstance); $simple_view_widget = $badgeWidgetConfig->isSimpleView(); $nbLastAwarded = $badgeWidgetConfig->getNumberLastAwardedBadge(); $nbMostAwarded = $badgeWidgetConfig->getNumberMostAwardedBadge(); $mostAwardedBadges = []; $availableBadges = []; if (!is_null($workspace)) { $lastAwardedBadges = $user !== 'anon.' ? $this->badgeManager->getWorkspaceLastAwardedBadgesToLoggedUser($workspace, $nbLastAwarded) : []; $mostAwardedBadges = $this->badgeManager->getWorkspaceMostAwardedBadges($workspace, $nbMostAwarded); $availableBadges = $this->badgeManager->getWorkspaceAvailableBadges($workspace); $widgetType = 'workspace'; } else { $lastAwardedBadges = $this->badgeManager->getLoggedUserLastAwardedBadges($nbLastAwarded); $widgetType = 'desktop'; } $content = $this->templating->render('IcapBadgeBundle:Widget:badge_usage.html.twig', ['lastAwardedBadges' => $lastAwardedBadges, 'mostAwardedBadges' => $mostAwardedBadges, 'availableBadges' => $availableBadges, 'simple_view_widget' => $simple_view_widget, 'systemName' => $this->platformName, 'widgetType' => $widgetType]); $event->setContent($content); $event->stopPropagation(); }