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.

Previous PostTYPO3 Extbase Snippet: FileReference aus Dateipfad generieren
Next PostTYPO3 Extbase: FeUser Daten auslesen