private function insertWidgetTypeDataForPortfolio() { /** @var \Claroline\CoreBundle\Repository\PluginRepository $pluginRepository */ $pluginRepository = $this->entityManager->getRepository('ClarolineCoreBundle:Plugin'); $portfolioPlugin = $pluginRepository->createQueryBuilder('plugin')->where('plugin.vendorName = :portfolioVendorName')->andWhere('plugin.bundleName = :portfolioShortName')->setParameters(['portfolioVendorName' => 'Icap', 'portfolioShortName' => 'PortfolioBundle'])->getQuery()->getOneOrNullResult(); if (null !== $portfolioPlugin) { /** @var \Icap\PortfolioBundle\Repository\Widget\WidgetTypeRepository $widgetTypeRepository */ $widgetTypeRepository = $this->entityManager->getRepository('IcapPortfolioBundle:Widget\\WidgetType'); $badgeWidgetType = $widgetTypeRepository->createQueryBuilder('widgetType')->where('widgetType.name = :badgetWidgetTypeName')->setParameter('badgetWidgetTypeName', 'badges')->getQuery()->getOneOrNullResult(); if (null === $badgeWidgetType) { $this->entityManager->persist($this->widgetFactory->createBadgeWidgetType()); $this->log('Badge widget type created for portfolio.'); } } $this->entityManager->flush(); }
/** * @param WidgetTypeCreateEvent $widgetTypeCreateEvent * * @DI\Observe("icap_portfolio_widget_type_create") */ public function onWidgetTypeCreate(WidgetTypeCreateEvent $widgetTypeCreateEvent) { $widgetTypeCreateEvent->setWidgetType($this->widgetFactory->createBadgeWidgetType()); }