diff --git a/src/CoreBundle/Controller/ResourceController.php b/src/CoreBundle/Controller/ResourceController.php index 8e139bb789..1cfcce2917 100644 --- a/src/CoreBundle/Controller/ResourceController.php +++ b/src/CoreBundle/Controller/ResourceController.php @@ -607,8 +607,9 @@ class ResourceController extends AbstractResourceController implements CourseCon } // Modify the HTML content before displaying it. - /*if (str_contains($mimeType, 'html')) { + if (str_contains($mimeType, 'html')) { $content = $resourceNodeRepo->getResourceNodeFileContent($resourceNode); + $response = new Response(); $disposition = $response->headers->makeDisposition( ResponseHeaderBag::DISPOSITION_INLINE, @@ -617,10 +618,34 @@ class ResourceController extends AbstractResourceController implements CourseCon $response->headers->set('Content-Disposition', $disposition); $response->headers->set('Content-Type', 'text/html'); + /*$crawler = new Crawler(); + $crawler->addHtmlContent($content); + var_dump($crawler->filter('head')->count()); + $head = $crawler->filter('head'); + var_dump($head->html());exit;*/ + + // @todo move into a function/class + if ('true' === $this->getSettingsManager()->getSetting('editor.translate_html')) { + $user = $this->getUser(); + if (null !== $user) { + $user = json_encode(['locale' => $user->getLocale()]); + $js = ' + + + '; + $content = str_replace('', $js.'', $content); + } + } + $response->setContent($content); + /*$contents = $this->renderView('@ChamiloCore/Resource/view_html.twig', [ + 'category' => '...', + ]);*/ return $response; - }*/ + } break; } diff --git a/webpack.config.js b/webpack.config.js index c74dca7875..d877c38be8 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -24,6 +24,7 @@ Encore .addEntry('free-jqgrid', './assets/js/free-jqgrid.js') .addEntry('lp', './assets/js/lp.js') .addEntry('vue', './assets/vue/main.js') + .addEntry('translatehtml', './assets/js/translatehtml.js') .addStyleEntry('css/app', './assets/css/app.scss') //.addStyleEntry('css/bootstrap', './assets/css/bootstrap.scss')