public function getResourcesWidgetConfig(WidgetInstance $widgetInstance) { $config = $this->resourcesWidgetConfigRepo->findOneBy(['widgetInstance' => $widgetInstance]); if (is_null($config)) { $config = new ResourcesWidgetConfig(); $config->setWidgetInstance($widgetInstance); $this->om->persist($config); $this->om->flush(); } return $config; }
/** * @EXT\Route( * "/resources/widget/configure/config/{config}", * name="claro_resources_widget_configure", * options={"expose"=true} * ) * @EXT\ParamConverter("user", converter="current_user") * @EXT\Template("ClarolineCoreBundle:Widget:resourcesWidgetConfigureForm.html.twig") */ public function resourcesWidgetConfigureAction(ResourcesWidgetConfig $config) { $form = $this->formFactory->create(new ResourcesWidgetConfigurationType($this->translator)); $form->handleRequest($this->request); if ($form->isValid()) { $mode = $form->get('mode')->getData(); $config->setMode($mode); $resource = $form->get('resource')->getData(); $tagsText = $form->get('tags')->getData(); if ($resource) { $config->clearDirectories(); $config->addDirectory($resource->getId()); } if ($tagsText) { $tags = explode(',', $tagsText); $config->clearTags(); foreach ($tags as $tag) { $t = trim($tag); if (!empty($t)) { $config->addTag(trim($tag)); } } } $this->resourcesWidgetManager->persistResourcesWidgetConfig($config); return new JsonResponse('success', 204); } else { return ['form' => $form->createView(), 'config' => $config]; } }