Nach einem erfolgreichen TYPO3-Update von 4.5 auf 6.2 lief alles soweit. Bis zu dem Zeitpunkt, als im Backend ein neuer Datensatz per Web | Seite erstellt werden sollte (Wizard zum Erstellen neuer Inhaltselemente). Es erschien die Fehlermeldung
Fatal error: Call to undefined method tx_wtdirectory_pi1_wizicon::getCharset() in xxx/typo3_src-6.2.5/typo3/sysext/core/Classes/Localization/Parser/LocallangXmlParser.php on line 41
Nach einer kurzen Suche fand ich die Ursache: der statische Aufruf der Funktion getParsedData().
$LOCAL_LANG = t3lib_l10n_parser_Llxml::getParsedData($llFile, $GLOBALS['LANG']->lang);
Beheben liess sich der Bug folgendermaßen, wie auf TYPO3 Forge nachgelesen werden kann:
$version = class_exists('t3lib_utility_VersionNumber') ? t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) : t3lib_div::int_from_ver(TYPO3_version); if ($version >= 4007000) { $object = t3lib_div::makeInstance('t3lib_l10n_parser_Llxml'); $LOCAL_LANG = $object->getParsedData($llFile, $GLOBALS['LANG']->lang); } else { $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang); }
Auch Powermail lieferte unter Version 1.6.11 eine ähnliche Fehlermeldung:
Fatal error: Call to undefined method TYPO3\CMS\Core\Utility\GeneralUtility::readLLXMLfile() in xxx/typo3conf/ext/powermail/pi1/class.tx_powermail_pi1_wizicon.php on line 79
Hier lag es aber nicht an der statischen Einbindung, sondern noch an einer Versions-Unverträglichkeit:
$LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang);