TYPO3 6.1 Erstellen von Inhalt nicht möglich

Heute bin ich auf folgendes Problem gestoßen:
Im TYPO3-Backend wollte ich in der Seiten-Ansicht ein neues Inhaltselement anlegen. Nach einem Klick auf das entsprechende Icon wurde die Seite jedoch leer und nichts weiter passierte.
Nach einer kurzen Recherche im Apache-Errorlog fand ich folgenden Fehler:

PHP Fatal error:  Call to undefined method TYPO3\\CMS\\Core\\Utility\\General
Utility::readLLXMLfile() in /srv/www/htdocs/typo3conf/ext/we_gmanfahrt/pi1/
class.tx_wegmanfahrt_pi1_wizicon.php on line 61, referer: ...

Es stellte sich heraus, dass die Extension „we_gmanfahrt“ eine veraltete Funktion namens „t3lib_div::readLLXMLfile()“ verwendete.
Diese Funktion ist seit TYPO3 4.6 veraltet und wurde in Version 6.0 entfernt. Seit dem sollte die Funktion „t3lib_l10n_parser_Llxml::getParsedData()“ verwendet werden.
Gesagt, getan.
Die Übergabeparameter sind gleich geblieben und somit sollte durch einen Tausch der Funktionen das Problem behoben sein.
Sollte…den das Phänomen beim Anlegen eines neuen Inhaltselements blieb.
Im Errorlog fand sich nun ein neuer Eintrag:

PHP Fatal error:  Call to undefined method tx_wegmanfahrt_pi1_wizicon::
getCharset() in /srv/www/typo3/typo3_src-6.1.0/typo3/sysext/core/Classes/
Localization/Parser/LocallangXmlParser.php on line 54, referer: ...

Wie sich herausstellte, hängt dies mit dem „neuen“ TYPO3 zusammen. Eine Lösung wurde von Thomas Dudzak im Bugtracker bereitgestellt:

/**
  * Reads the [extDir]/locallang.xml and returns the $LOCAL_LANG array found in that file.
  *
  * @return    The        array with language labels
  */
  function includeLocalLang()    {
    $llFile = t3lib_extMgm::extPath('td_calendar').'locallang.xml';
    $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);
    }
    return $LOCAL_LANG;
  }

 

Andreas Becker

 

5 Gedanken zu „TYPO3 6.1 Erstellen von Inhalt nicht möglich

  1. Danke für deinen Tip 🙂

    Für folgende zeile :
    $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS[‚LANG‘]->lang);

    das ein setzen:

    $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);
    }

    LG
    Markus

  2. Guten Tag
    wos soll ich der eintrag neue code einsetzen?
    Vielen Dank für ihr hilfe
    mit freundlichen grüssen Heidi Arens

    /////////////////////////////////////////

    /**
    * Class that adds the wizard icon.
    *
    * @author
    * @package TYPO3
    * @subpackage tx_dmfgalleria
    */

    class tx_dmfgalleria_pi1_wizicon {

    /**
    * Processing the wizard items array
    *
    * @param array $wizardItems: The wizard items
    * @return Modified array with wizard items
    */
    function proc($wizardItems) {
    global $LANG;

    $LL = $this->includeLocalLang();

    $wizardItems[‚plugins_tx_dmfgalleria_pi1‘] = array(
    ‚icon’=>t3lib_extMgm::extRelPath(‚dmf_galleria‘).’pi1/ce_wiz.gif‘,
    ‚title’=>$LANG->getLLL(‚pi1_title‘,$LL),
    ‚description’=>$LANG->getLLL(‚pi1_plus_wiz_description‘,$LL),
    ‚params’=>’&defVals[tt_content][CType]=list&defVals[tt_content][list_type]=dmf_galleria_pi1‘
    );

    return $wizardItems;
    }

    /**
    * Reads the [extDir]/locallang.xml and returns the $LOCAL_LANG array found in that file.
    *
    * @return The array with language labels
    */
    function includeLocalLang() {
    $llFile = t3lib_extMgm::extPath(‚dmf_galleria‘).’locallang.xml‘;
    $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS[‚LANG‘]->lang);

    return $LOCAL_LANG;
    }

    }

    if (defined(‚TYPO3_MODE‘) && $TYPO3_CONF_VARS[TYPO3_MODE][‚XCLASS‘][‚ext/dmf_galleria/pi1/class.tx_dmfgalleria_pi1_wizicon.php‘]) {
    include_once($TYPO3_CONF_VARS[TYPO3_MODE][‚XCLASS‘][‚ext/dmf_galleria/pi1/class.tx_dmfgalleria_pi1_wizicon.php‘]);
    }

    ?>

    ////////////////////////////////////

    1. Hallo Heidi,
      wie Markus schon geschrieben hat, musst du die von Ihm gepostete Zeile in deiner Datei ersetzen.

      Du hast ja schon die richtige Datei, jetzt einfach in der Datei nach der folgenden Zeile suchen:
      $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS[‚LANG‘]->lang);

      und mit dem Code von Markus ersetzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*