Verwendung von XCLASS

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 10. 2012, 13:42

    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

    1. $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 ?


  • 1
  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    15. 10. 2012, 14:04

    Hallo und Willkommen im Forum,

    [quote="pax"]
    - Ich benenne die klasse in der Datei in ux_t3lib_tcemain um
    [/quote]
    reicht nicht aus. Du müsstest die Elternklasse auch erweitern.

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 10. 2012, 14:29

    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 LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    15. 10. 2012, 14:39

    Du willst ja die t3lib_TCEmain spezialisieren, also:

    ux_t3lib_TCEmain extends t3lib_TCEmain

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 10. 2012, 14:46

    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 LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    15. 10. 2012, 15:00

    ersetze mal

    [quote="pax"]

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

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

    VG,
    LuP

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 10. 2012, 15:07

    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 LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    15. 10. 2012, 15:51

    [quote="pax"]
    warum das jetzt funktioniert und die andere Version nicht. Aber fühl dich nicht verpflichtet.
    [/quote]
    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

  • pax pax
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 10. 2012, 15:58

    Das hab ich mir von http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/3/8/ zusammengereimt. Aber auch in einigen Tutorials zu dem Thema hab ich das so gefunden. Um selbst zu erkennen dass das falsch ist, fehlts mir noch an Kenntnissen.
    Ein weiteres Danke an Dich.

  • 1