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(); }
/** * @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(); }
/** * @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(); }
/** * @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(); }