Zum Inhalt springen

Verwendung von XCLASS

Erstellt am 15. Oktober 2012 · 8 Antworten · letzte Antwort am 15. Oktober 2012

Tags: PHP, Frage

pax ·

Hallo an alle,

ich muss die core-Datei "class.t3lib_tcemain" um ein paar Funktionen erweitern, damit das Übersetzen verschachtelter Inhaltselemente funktioniert. PHP-mäßig funktioniert auch alles bestens, wenn ich die Datei direkt ändere klappt alles wie es soll. Jetzt soll das ganze natürlich updatefest werden. Dazu habe ich mich das erste mal an der XCLASS Funktion versucht, leider erfolglos. Es sieht alles ganz leicht aus, aber irgendwas mache ich falsch.

- Ich kopiere meine geänderte Version der Datei in typo3conf/ und nenne sie class.ux_t3lib_tcemain.php
- Ich benenne die klasse in der Datei in ux_t3lib_tcemain um
- Ich ergänze die localconf um die Zeile

$TYPO3_CONF_VARS['BE']["XCLASS"]["typo3_src/t3lib/class.t3lib_tcemain.php"] = PATH_typo3conf.'class.ux_t3lib_tcemain.php';

Dies sollte es laut diversen Tutorials gewesen sein, doch leider funktioniert das nicht. Was mache ich falsch ?

LuP ·

Hallo und Willkommen im Forum,

pax schrieb

- Ich benenne die klasse in der Datei in ux_t3lib_tcemain um

reicht nicht aus. Du müsstest die Elternklasse auch erweitern.

VG,
LuP

pax ·

Danke für die schnelle Antwort. Kannst du bitte etwas genauer werden ? Das sind meine ersten Gehversuche und ich bin noch etwas unbedarft.

Nachtrag: Die Klasse wird einfach mit "class t3lib_TCEmain" definiert, ohne "extends". Damit hat sie doch gar keine Elternklasse oder verstehe ich was falsch ?

LuP ·

Du willst ja die t3lib_TCEmain spezialisieren, also:

ux_t3lib_TCEmain extends t3lib_TCEmain

VG,
LuP

pax ·

Das hilft leider auch nicht.
Im Prinzip möchte ich die originale class.t3lib_TCEmain durch meine Version einfach ersetzen. Nur eben updatesicher. Bin ich da vielleicht auf dem falschen Weg ?

LuP ·

ersetze mal

pax schrieb
$TYPO3_CONF_VARS['BE']["XCLASS"]["typo3_src/t3lib/class.t3lib_tcemain.php"] = PATH_typo3conf.'class.ux_t3lib_tcemain.php';

durch

$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_tcemain.php'] = PATH_typo3conf . 'class.ux_t3lib_tcemain.php';

VG,
LuP

pax ·

Das hat funktioniert !
Ich danke dir wie verrückt.

Wenn du Lust hast, würde ich mich über eine Erklärung freuen, warum das jetzt funktioniert und die andere Version nicht. Aber fühl dich nicht verpflichtet.

Danke nochmal !

LuP ·
pax schrieb

warum das jetzt funktioniert und die andere Version nicht. Aber fühl dich nicht verpflichtet.

Gerne.

Die andere Version ist schlichtweg falsch. Ich weiß nicht, wo Du sie her hast.
Ganz am Ende der Klasse t3lib_TCEmain findest Du die richtige Deklaration.

VG,
LuP