Installation Version 11

Infos

Ich habe TYPO3 V11.5.3 installiert und eine neue Version meines rsystemplate_bootstrap erstellt. Soweit funktioniert alles wieder, war jedoch 2 Wochen Arbeit alles zu überarbeiten nach den Standards von V11. Was nicht mehr funktioniert hat, war bei der Extension gridelements das Drag&Drop im Backend.

Extension gridelements - Drag&Drop Fehlfunktion

Die Extension ist noch nicht wirklich fertig für die Version 11, ich habe die 11.0.0-dev installiert (zu finden im Branch master unter https://gitlab.com/coderscare/gridelements). Beim Drop kommt die Meldung "Attempt to insert record on page '[root-level]' (0)" und das Element hat eine falsche colPos. Da ich im Netz nichts gefunden habe und von den gridelements Entwicklern auch nichts zu hören ist, habe ich den Fehler selbst behoben. Wohl nicht professionell, aber es scheint zu funktionieren.

Der Grund war, dass das gridelements Drag&Drop JavaScript nicht geladen ist im Backend. Das Script wird geladen in Classes/Hooks/PageRenderer.php. $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsDragDrop'). Aber es wird eben nicht geladen, da  $GLOBALS['SOBE'] leer ist - hier im Code das "true ||":

Hierzu die Meldung "Breaking: #92132 - Last remains of globals SOBE removed" auf https://docs.typo3.org/c/typo3/cms-core/11.5/en-us/Changelog/11.0/Breaking-92132-LastRemainsOfGlobalsSOBERemoved.html. Also habe ich einen "Billigen" Bugfix gemacht, indem ich einfach vorgaukle, $GLOBALS['SOBE'] wäre nicht leer.

// RSYS bugfix drag and drop - Attempt to insert record on page '[root-level]' (0)
if (true || !empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === PageLayoutController::class || is_subclass_of( $GLOBALS['SOBE'], PageLayoutController::class ))) {
      $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
      $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady');
      $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsDragDrop');
      .....

 

Erstellt: 11/2021| Geändert: 03/2023

Composer basierte Installation

Auch wenn ich Mittwald bevorzuge, habe ich kürzlich die Version 11 bei Ionos installiert im Kundencenter. Soweit hat das funktioniert. Aber meine Extension rsystemplate_bootstrap wollte nicht funktionieren. Die Fehlermeldungen waren vielfältig und immer etwas mit "Class not found". Der Grund ist, dass bei einem per Composer installierten TYPO3 die autoload Informationen in der Datei typo3conf/autoload/autoload_classmap.php stehen müssen.

Wie sie da rein kommen ist mir ein Rätsel. Der Hinweis von https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ComposerJson.html#autoload es in die ext_emconf.php zu schreiben wie folgt:

'autoload' => [
        'psr-4' => [
            'RSYS\\RsystemplateBootstrap\\' => 'Classes'
        ],
    ],

war wohl nicht die Lösung. Letztlich musste ich es von Hand in die Datei typo3conf/autoload/autoload_psr4.php schreiben, dann geht alles.

return array(
    'GeorgRinger\\News\\' => array($typo3InstallDir . 'typo3conf/ext/news/Classes'),
    'RSYS\\RsystemplateBootstrap\\' => array($typo3InstallDir . 'typo3conf/ext/rsystemplate_bootstrap/Classes'),
);

Erstellt: 04/2022| Geändert: 03/2023