/** * @DI\Observe("create_hevinci_url") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $form = $this->formFactory->create(new UrlType(), new Url()); $form->handleRequest($this->request); if ($form->isValid()) { $url = $form->getData(); $this->urlManager->setUrl($url); $event->setResources([$url]); $event->stopPropagation(); return; } $content = $this->templating->render('ClarolineCoreBundle:Resource:createForm.html.twig', ['form' => $form->createView(), 'resourceType' => $event->getResourceType()]); $event->setErrorFormContent($content); $event->stopPropagation(); }
public function onCreate(CreateResourceEvent $event) { $request = $this->container->get('request'); $form = $this->container->get('form.factory')->create(new SimupollType(), new Simupoll(), array('inside' => false)); $form->handleRequest($request); if ($form->isValid()) { $simupoll = $form->getData(); //update name $simupoll->setName($simupoll->getTitle()); $event->setResources(array($simupoll)); $event->stopPropagation(); } $content = $this->container->get('templating')->render('CPASimUSanteSimupollBundle:Simupoll:createForm.html.twig', array('form' => $form->createView(), 'resourceType' => $event->getResourceType())); $event->setErrorFormContent($content); $event->stopPropagation(); }
/** * @DI\Observe("create_cpasimusante_hangout") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $request = $this->container->get('request'); $form = $this->container->get('form.factory')->create(new HangoutType(), new Hangout()); $form->handleRequest($request); if ($form->isValid()) { $em = $this->container->get('doctrine.orm.entity_manager'); $resource = $form->getData(); $em->persist($resource); $event->setResources(array($resource)); $event->stopPropagation(); //exit the modal return; } $content = $this->container->get('templating')->render('CPASimUSanteGhangoutBundle:Hangout:createForm.html.twig', array('form' => $form->createView(), 'resourceType' => $event->getResourceType())); $event->setErrorFormContent($content); $event->stopPropagation(); }
/** * @DI\Observe("create_claroline_web_resource") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $request = $this->container->get('request'); $workspace = $event->getParent()->getWorkspace(); $form = $this->container->get('form.factory')->create(new FileType(), new File()); $form->handleRequest($request); if ($form->isValid()) { if (!$this->isZip($form->get('file')->getData())) { $error = $this->container->get('translator')->trans('not_a_zip', [], 'resource'); $form->addError(new FormError($error)); } else { $event->setResources([$this->create($form->get('file')->getData(), $workspace)]); $event->stopPropagation(); return; } } $content = $this->container->get('templating')->render('ClarolineCoreBundle:Resource:createForm.html.twig', ['form' => $form->createView(), 'resourceType' => $event->getResourceType()]); $event->setErrorFormContent($content); $event->stopPropagation(); }
/** * @DI\Observe("create_claroline_scorm_12") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $form = $this->formFactory->create(new ScormType(), new Scorm12Resource()); $form->handleRequest($this->request); try { if ($form->isValid()) { $tmpFile = $form->get('file')->getData(); $workspace = $event->getParent()->getWorkspace(); if ($this->isScormArchive($tmpFile)) { $scormResource = $this->container->get('claroline.manager.scorm_manager')->createScorm($tmpFile, $form->get('name')->getData(), '1.2'); $event->setResources(array($scormResource)); $event->stopPropagation(); return; } } } catch (InvalidScormArchiveException $e) { $msg = $e->getMessage(); $errorMsg = $this->translator->trans($msg, array(), 'resource'); $form->addError(new FormError($errorMsg)); } $content = $this->templating->render('ClarolineCoreBundle:Resource:createForm.html.twig', array('form' => $form->createView(), 'resourceType' => $event->getResourceType())); $event->setErrorFormContent($content); $event->stopPropagation(); }
/** * @DI\Observe("create_cpasimusante_simuresource") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $request = $this->container->get('request'); $form = $this->formfactory->create(new SimuResourceType(), new SimuResource()); $form->handleRequest($request); if ($form->isValid()) { $em = $this->container->get('doctrine.orm.entity_manager'); $resource = $form->getData(); //the claroline Resource needs a name, we set it with whatever we have $resource->setName($resource->getField()); $em->persist($resource); $event->setResources(array($resource)); $event->stopPropagation(); //exit the modal return; } $content = $this->templating->render('CPASimUSanteSimuResourceBundle:SimuResource:createForm.html.twig', array('form' => $form->createView(), 'resourceType' => $event->getResourceType())); $event->setErrorFormContent($content); $event->stopPropagation(); }
/** * @DI\Observe("create_file") * * @param CreateResourceEvent $event */ public function onCreate(CreateResourceEvent $event) { $request = $this->container->get('request'); $form = $this->container->get('form.factory')->create(new FileType(true), new File()); $form->handleRequest($request); if ($form->isValid()) { $workspace = $event->getParent()->getWorkspace(); $workspaceDir = $this->workspaceManager->getStorageDirectory($workspace); $isStorageLeft = $this->resourceManager->checkEnoughStorageSpaceLeft($workspace, $form->get('file')->getData()); if (!$isStorageLeft) { $this->resourceManager->addStorageExceededFormError($form, filesize($form->get('file')->getData()), $workspace); } else { //check if there is enough space liedt $file = $form->getData(); $tmpFile = $form->get('file')->getData(); $published = $form->get('published')->getData(); $event->setPublished($published); $fileName = $tmpFile->getClientOriginalName(); $ext = strtolower($tmpFile->getClientOriginalExtension()); $mimeType = $this->container->get('claroline.utilities.mime_type_guesser')->guess($ext); if (!is_dir($workspaceDir)) { mkdir($workspaceDir); } if (pathinfo($fileName, PATHINFO_EXTENSION) === 'zip' && $form->get('uncompress')->getData()) { $roots = $this->unzip($tmpFile, $event->getParent(), $published); $event->setResources($roots); //do not process the resources afterwards because nodes have been created with the unzip function. $event->setProcess(false); $event->stopPropagation(); } else { $file = $this->createFile($file, $tmpFile, $fileName, $mimeType, $workspace); $event->setResources(array($file)); $event->stopPropagation(); } return; } } $content = $this->container->get('templating')->render('ClarolineCoreBundle:Resource:createForm.html.twig', array('form' => $form->createView(), 'resourceType' => $event->getResourceType())); $event->setErrorFormContent($content); $event->stopPropagation(); }