/** * @EXT\Route( * "/announcements/widget/configure/config/{config}", * name="claro_announcements_widget_configure", * options={"expose"=true} * ) * @EXT\ParamConverter("user", converter="current_user") * @EXT\Template("ClarolineAnnouncementBundle::announcementsWidgetConfigureForm.html.twig") */ public function announcementsWidgetConfigureAction(AnnouncementsWidgetConfig $config) { $form = $this->formFactory->create(new AnnouncementsWidgetConfigurationType()); $form->handleRequest($this->request); if ($form->isValid()) { $resource = $form->get('resource')->getData(); if ($resource) { $config->clearAnnouncements(); $config->addAnnouncement($resource->getId()); } $this->announcementManager->persistAnnouncementsWidgetConfig($config); return new JsonResponse('success', 204); } else { return ['form' => $form->createView(), 'config' => $config]; } }
public function getAnnouncementsWidgetConfig(WidgetInstance $widgetInstance) { $config = $this->announcementsWidgetConfigRepo->findOneBy(['widgetInstance' => $widgetInstance]); if (is_null($config)) { $config = new AnnouncementsWidgetConfig(); $config->setWidgetInstance($widgetInstance); $this->om->persist($config); $this->om->flush(); } return $config; }