TYPO3 9 class für UL im ckeditor

in TYPO3 8 funktioniert bisher folgende Erweiterung der lib.parsefunc_RTE um dem ListenElement eine CSS Class mit geben zu können.

lib.parseFunc_RTE {
externalBlocks {
ul.stripNL = 1
ul.callRecursive = 1
ul.callRecursive.tagStdWrap.HTMLparser = 1
ul.callRecursive.tagStdWrap.HTMLparser.tags.ul {
fixAttrib.class.default = rteContentList
}
}
}

Allerdings gibt es jetzt in TYPO3 9 Probleme damit, es sieht ungefähr so aus:

<ul>
	<p></p>
	<li>...</li>
	<li>...</li>
	<li>...</li>
	<p><p>
</ul>	

das scheint im Moment zu funktionieren:

lib.parseFunc_RTE.externalBlocks.ul.stdWrap{
  HTMLparser = 1
  HTMLparser {
    tags.ul.fixAttrib.class {
      default = rteContentList
      always = 1
      list = rteContentList
    }
    keepNonMatchedTags = 1
  }
}

es ist in etwa gleich.

[globalVar = GP:L = 1] mit TYPO3 9 und SiteHandling

Wenn man in TYPO3 9 das Sitehandling nutzt werden die „alten“ Conditions zu den SprachIds nicht mehr funktionieren.

Allerdings wie hier zu lesen: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/SiteHandling/UseSiteInConditions.html#sitehandling-inconditions

kann man direkt die SiteConfiguration in TypoScript Conditions abfragen aus 

[globalVar = GP:L = 1]

wird also 

[siteLanguage("languageId") == "1"]

bring back the bodytext class

Gerade wenn man nach Jahren der Nutzung TYPO3 Seiten updatet kann es vorkommen, das die alten Seiten CSS Anpassungen für p.bodytext hatten.
Gerade jetzt mit TYPO3 9.5, wo es kein CSS Styled Content mehr gibt und man auf FluidStyledContent wechseln muss, fehlt einem die Class.

Im Internet findet jedoch recht schnell eine Lösung dafür, da es früher schon Anfragen gab wie man die Class entfernen kann. Genau da können wir jetzt allerdings die Class auch wieder hinzufügen 🙂

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class = bodytext

pi1 to Controller

Damit auch für piBased Extensions namespaces genutzt werden können, muss die pi1  in den Classes/Controller/ Ordner verschoben und umbenannt werden. Damit die Extension dann noch weiter läuft muss natürlich die composer.json angepasst werden:

"autoload": {
"psr-4": {
"VendorName\MyExtension\": "Classes"
}
},

Des Weiteren muss natürlich noch das TypoScript angepasst werden damit TYPO3 nun weiß welche Datei es aufrufen soll, wenn der ExtensionName auftaucht.

$overrideSetup = 'plugin.tx_rxextkey_pi1.userFunc = Reelworx\RxExtkey\Plugin->main';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript('rx_extkey', 'setup', $overrideSetup);

Das obere Beispiel habe ich hier gefunden:

https://blog.reelworx.at/detail/howto-register-your-plugin-ce-or-module/