public function onExportScorm(ExportScormResourceEvent $event)
 {
     $resource = $event->getResource();
     $template = $this->container->get('templating')->render('ClarolineImagePlayerBundle:Scorm:export.html.twig', ['_resource' => $resource]);
     // Set export template
     $event->setTemplate($template);
     // Add Image file
     $event->addFile('file_' . $resource->getResourceNode()->getId(), $resource->getHashName());
     $event->stopPropagation();
 }
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     $resource = $event->getResource();
     $template = $this->container->get('templating')->render('ClarolinePdfPlayerBundle:Scorm:export.html.twig', ['_resource' => $resource]);
     // Set export template
     $event->setTemplate($template);
     // Add PDF file
     $event->addFile('file_' . $resource->getResourceNode()->getId(), $resource->getHashName());
     // Add assets
     $webpack = $this->container->get('claroline.extension.webpack');
     $event->addAsset('claroline-distribution-plugin-pdf-player-pdf-viewer.js', $webpack->hotAsset('dist/claroline-distribution-plugin-pdf-player-pdf-viewer.js', true));
     // Add translations
     $event->addTranslationDomain('widget');
     $event->stopPropagation();
 }
示例#3
0
 /**
  * @DI\Observe("export_scorm_innova_path")
  *
  * @param \Claroline\ScormBundle\Event\ExportScormResourceEvent $event
  */
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     /** @var Path $path */
     $path = $event->getResource();
     // Add embed resources
     // Decode the path structure to grab embed resources ans generate resource URL
     // We export them before rendering the template to have the correct structure in twig/angular
     $structure = json_decode($path->getStructure());
     if (!empty($structure->description)) {
         $parsed = $this->container->get('claroline.scorm.rich_text_exporter')->parse($structure->description);
         $structure->description = $parsed['text'];
         foreach ($parsed['resources'] as $resource) {
             $event->addEmbedResource($resource);
         }
     }
     if (!empty($structure->steps)) {
         foreach ($structure->steps as $step) {
             $this->exportStepResources($event, $step);
         }
     }
     $template = $this->container->get('templating')->render('InnovaPathBundle:Scorm:export.html.twig', ['_resource' => $path, 'structure' => json_encode($structure)]);
     // Set export template
     $event->setTemplate($template);
     // Set translations
     $event->addTranslationDomain('path_wizards');
     // Add template required files
     $webpack = $this->container->get('claroline.extension.webpack');
     $event->addAsset('tinymce.jquery.min.js', 'bundles/stfalcontinymce/vendor/tinymce/tinymce.jquery.min.js');
     $event->addAsset('jquery.tinymce.min.js', 'bundles/stfalcontinymce/vendor/tinymce/jquery.tinymce.min.js');
     $event->addAsset('claroline-distribution-plugin-path-player.js', $webpack->hotAsset('dist/claroline-distribution-plugin-path-player.js', true));
     $event->addAsset('claroline-home.js', 'bundles/clarolinecore/js/home/home.js');
     $event->addAsset('claroline-common.js', 'bundles/clarolinecore/js/common.js');
     $event->addAsset('claroline-tinymce.js', $webpack->hotAsset('dist/claroline-distribution-main-core-tinymce.js', true));
     $event->addAsset('wizards.js', 'vendor/innovapath/wizards.js');
     $event->addAsset('wizards.css', 'vendor/innovapath/wizards.css');
     $event->stopPropagation();
 }
示例#4
0
 /**
  * @DI\Observe("export_scorm_text")
  *
  * @param ExportScormResourceEvent $event
  */
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     $text = $event->getResource();
     $revisionRepo = $this->container->get('doctrine.orm.entity_manager')->getRepository('ClarolineCoreBundle:Resource\\Revision');
     $textContent = $revisionRepo->getLastRevision($text)->getContent();
     $parsed = $this->container->get('claroline.scorm.rich_text_exporter')->parse($textContent);
     $template = $this->container->get('templating')->render('ClarolineCoreBundle:Text:scorm-export.html.twig', ['text' => $parsed['text'], '_resource' => $text]);
     // Set export template
     $event->setTemplate($template);
     $event->setEmbedResources($parsed['resources']);
     $event->stopPropagation();
 }
 /**
  * @DI\Observe("export_scorm_ujm_exercise")
  *
  * @param ExportScormResourceEvent $event
  */
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     /** @var Exercise $exercise */
     $exercise = $event->getResource();
     $exerciseExport = $this->container->get('ujm.exo.exercise_manager')->exportExercise($exercise, true);
     if ($exerciseExport['meta'] && $exerciseExport['meta']['description']) {
         $exerciseExport['meta']['description'] = $this->exportHtmlContent($event, $exerciseExport['meta']['description']);
     }
     if ($exerciseExport['steps']) {
         foreach ($exerciseExport['steps'] as $step) {
             $this->exportStep($event, $step);
         }
     }
     $template = $this->container->get('templating')->render('UJMExoBundle:Scorm:export.html.twig', ['_resource' => $exercise, 'exercise' => $exerciseExport]);
     // Set export template
     $event->setTemplate($template);
     // Add template required files
     $webpack = $this->container->get('claroline.extension.webpack');
     $event->addAsset('ujm-exo.css', 'vendor/ujmexo/ujm-exo.css');
     $event->addAsset('jsPlumb-2.1.3-min.js', 'packages/jsPlumb/dist/js/jsPlumb-2.1.3-min.js');
     $event->addAsset('claroline-distribution-plugin-exo-app.js', $webpack->hotAsset('dist/claroline-distribution-plugin-exo-app.js', true));
     // Set translations
     $event->addTranslationDomain('ujm_exo');
     $event->addTranslationDomain('ujm_sequence');
     $event->stopPropagation();
 }
 /**
  * @DI\Observe("export_scorm_claroline_web_resource")
  *
  * @param ExportScormResourceEvent $event
  */
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     $resource = $event->getResource();
     $hash = $resource->getHashName();
     $filename = 'file_' . $resource->getResourceNode()->getId();
     $template = $this->container->get('templating')->render('ClarolineWebResourceBundle:Scorm:export.html.twig', ['path' => $filename . '/' . $this->guessRootFileFromUnzipped($this->zipPath . $hash), '_resource' => $event->getResource()]);
     // Set export template
     $event->setTemplate($template);
     $event->addFile($filename, $this->zipPath . $hash, true);
     $event->stopPropagation();
 }
示例#7
0
 /**
  * @DI\Observe("export_scorm_file")
  *
  * @param ExportScormResourceEvent $event
  */
 public function onExportScorm(ExportScormResourceEvent $event)
 {
     $resource = $event->getResource();
     // Forward event to the correct player
     $this->container->get('event_dispatcher')->dispatch($this->generateEventName($resource->getResourceNode(), 'export_scorm_file_'), $event);
     if (!$event->isPopulated()) {
         // Event not caught, try the fallback event name
         $this->container->get('event_dispatcher')->dispatch($this->generateEventName($resource->getResourceNode(), 'export_scorm_file_', true), $event);
     }
     $event->stopPropagation();
 }