예제 #1
0
 /**
  * @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();
 }
예제 #5
0
 /**
  * @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();
 }
예제 #7
0
 /**
  * @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();
 }