Da in TYPO3 V12 das einfache Einbinden von CSS und JS entfernt wurde und jetzt komplexer ist, wird in diesem kurzen Tutorial gezeigt, wie man das jetzt machen kann.
Der PageRenderer
Ab V12 kann der "PageRenderer" im Controller eingebunden und genutzt werden. Dieser kann dann JS und CSS einfach in der Action rein laden. Zuerst muss dieser instanziiert und initialisiert werden:
<?php
use TYPO3\CMS\Core\Page\PageRenderer;
use TYPO3\CMS\Backend\Template\ModuleTemplateFactory;
class MyController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
protected PageRenderer $pageRenderer;
public function __construct(ModuleTemplateFactory $moduleTemplateFactory, PageRenderer $pageRenderer) {
$this->moduleTemplateFactory = $moduleTemplateFactory;
$this->pageRenderer = $pageRenderer;
}
public function listAction(): \Psr\Http\Message\ResponseInterface {
$moduleTemplate = $this->moduleTemplateFactory->create($this->request);
$this->pageRenderer->loadRequireJs();
$this->pageRenderer->addJsFile('EXT:meineExt/Resources/Public/JavaScript/main.js');
$this->pageRenderer->addCssFile('EXT:meineExt/Resources/Public/Css/main.css');
$moduleTemplate->assignMultiple([]);
return $moduleTemplate->renderResponse();
}
}
$this->pageRenderer beinhaltet noch viele weitere Funktionen, die hier nachgeschaut werden können.