Archive for Mai. 2013

TYPO3 6 und frühere Versionen – Angepasstes TCA für unterschiedliche TYPO3-Versionen

Bezogen auf diese Post, wo wir ein Problem mit dem t3editor und dem TCA gelöst haben, tritt nun ein neues Problem auf.

Der t3editor in unserer Extension funktioniert nun super mit TYPO3 6 – aber in TYPO3 4.x haben wir die Funktionalität leider zerstört.

Aber mit einem kleinen ‚TCA-Hack‘ können wir das Problem beheben. Füge einfach den folgenden PHP-Code hinter dem TCA ein in dem der t3editor verwendet wird, etwa so:

if(isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['compat_version'])) {
  if((float)$GLOBALS['TYPO3_CONF_VARS']['SYS']['compat_version']<6) {
      $TCA['tx_ftm_domain_model_templatemarker']['columns']['marker_typo_script']['config']['wizards']['t3editorTypoScript']['userFunc'] = 
        'EXT:t3editor/classes/class.tx_t3editor_tceforms_wizard.php:tx_t3editor_tceforms_wizard->main';
  }
}

In der ersten Zeile stellen wir sicher, das die Compat-Version definiert ist. Danach prüfen wir ob die TYPO3-Version kleiner 6 ist. Wenn dies der Fall ist, überschreiben wir das TCA-Feld in dem die userFunc definiert wurde und machen das Classes-C zu einem kleinen Buchstaben.

Wenn Du Optimierungen oder Ideen für Erweiterungen hast, schreibe gerne einen Kommentar zu diesem Post 🙂

TYPO3 6 – Wie man eine Extension von Hand deinstalliert

Oft passiert es, das eine neue Extension im TYPO3 6 installiert wird, aber die Extension ist noch nicht kompatibel mit der neuen TYPO3 version.
Im schlechtesten Fall wirft TYPO3 bei jedem Aufruf einen 500 Internal Server Error – und jetzt?

Kein Problem, deinstalliere die Extension einfach per Hand in ein paar Schritten (in diesem Fall ist es die gridelements v1.4.0):

1. Öffne die LocalConfiguration.php Datei welche im typo3conf-Verzeichnis liegt. Hier müssen die folgenden Zeilen entfernt werden:

	'EXT' => array(
		'extConf' => array(
			... -> diesen gridelements Eintrag
			'gridelements' => 'a:1:{s:20:"additionalStylesheet";s:0:"";}',
			... <- ende
	'EXT' => array(
		'extListArray' => array(
			... -> und den zweiten gridelements Eintrag
			'gridelements',
			... <- ende

2. Im nächsten Schritt müssen die gecachten Konfigurations-Dateien gelöscht werden. Um dies zu tun, kann man in TYPO3 6 einfach das Cache-Verzeichnis löschen, welches im typo3temp-Verzeichnis liegt.
3. Schließlich bist Du in der Lage die Extension einfach über den Extension-Manager zu entfernen.

TYPO3 6 mit integriertem t3editor in eigener Extbase-Extension

In einem aktuellen Projekt von mir, dem Fluid Template Manager, benutze ich den t3editor im entwickelten Backend Modul. Danke dem großartigen Post vom typo3blogger war es leicht diesen in TYPO3 4.7.x zu integrieren.
Nur, bei der Vorbereitung der ftm Extension für TYPO3 6.1 passierte ein kleiner Fehler. Die Seite mit dem t3editor wird wegen einem 500er Internal Server Error nicht geladen.

Die Lösung ist einfach.
Laut Konvention der ExtBase-Extensions muss der erste Buchstabe des classes-Verzeichnisses großgeschrieben werden. Das korrekte TCA-Snippet sieht nun wie folgt aus:

'template_code' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:ftm/Resources/Private/Language/locallang_db.xml:tx_ftm_domain_model_templatefluid.template_code',
    'config' => array(
        'type' => 'text',
        'cols' => 112,
        'rows' => 36,
        'eval' => 'trim',
        'wizards' => array(
            't3editorHtml' => array(
                'enableByTypeConfig' => 1,
                'type' => 'userFunc',
                'userFunc' => 'EXT:t3editor/Classes/class.tx_t3editor_tceforms_wizard.php:tx_t3editor_tceforms_wizard->main',
                'params' => array(
                    'format' => 'html',
                ),
            ),
        ),
    ),
),

Nebenbei fand ich auch heraus, das die cols und rows nun auch funktionieren wie sie sollten. 🙂

Notiz: Bezogen auf dieses Problem gibt es hier noch einen weiteren Post, der die Integration in unterschiedlichen TYPO3-Versionen behandelt.

TYPO3 6 Debugging eines 500 Internal Server Errors

Um eine TYPO3 6.1 Website zu debuggen, auf der nur eine weiße Seite angezeigt wird (als Folge eines 500 Internal Server Errors), kann man das displayErrors aktivieren, ähnlich wie man es aus früheren Versionen von TYPO 3 kennt.

Einfach die LocalConfiguration.php editieren, die sich im typo3conf Verzeichnis befindest, und den folgenden Eintrag hinzufügen:

	...
	'SYS' => array(
		...
		'displayErrors' => '1',
	),
);
?>

Aber nicht vergessen diese Zeile nach dem erfolgreichen debuggen wieder zu entfernen 😉