Class 类型3覆盖后端类

Class 类型3覆盖后端类,class,overriding,typo3,core,Class,Overriding,Typo3,Core,我研究Typo3 6.2已经有几个星期了,我想知道如何覆盖Typo3核心类 在我的例子中,我必须编辑select html对象的显示方式(我想添加optgroup,但Typo不允许我们这样做)。所以我编辑了文件“FormEngine.php”(typo3/sysext/backend/Classes/Form),现在它可以工作了。 但这对于未来的升级并不健康 是否有一种方法可以像其他CMS允许我们做的那样覆盖核心类? 我还没能在网上找到一些东西,我想它可能会有用 谢谢:) Ziziztypo

我研究Typo3 6.2已经有几个星期了,我想知道如何覆盖Typo3核心类

在我的例子中,我必须编辑select html对象的显示方式(我想添加optgroup,但Typo不允许我们这样做)。所以我编辑了文件“FormEngine.php”(typo3/sysext/backend/Classes/Form),现在它可以工作了。 但这对于未来的升级并不健康

是否有一种方法可以像其他CMS允许我们做的那样覆盖核心类? 我还没能在网上找到一些东西,我想它可能会有用

谢谢:)

  • Ziziztypo

不用修改CMS的源代码,只需声明一个带有
用户类型的字段,然后指向自定义
userFunc

:


提示:使用这种方法,您可以创建所需的任何类型的字段,例如Google地图选择器、由JS填充的具有公共依赖项的字段集等。

您想在哪里添加哪个optgroup?可能有一种方法可以在不改变核心的情况下完成。在后端的“编辑记录”面板上。一个字段引用“属性”按“属性族”排序(显示为optgroup)。但这个例子并不是真正的重点:重写这些类对于未来的开发是有用的。请参见biesiors的答案——这样做是可能的,但不是通过重写核心类来完成的。它是通过用户函数、钩子、插件、信号/插槽机制等来完成的。好吧,如果我找不到想要的字段类型,那么我必须创建一个新的字段类型。我把它弄干净就够了。谢谢:)
'tx_examples_special' => array (
        'exclude' => 0,
        'label' => 'LLL:EXT:examples/Resources/Private/Language/locallang_db.xlf:fe_users.tx_examples_special',
        'config' => array (
                'type' => 'user',
                'size' => '30',
                'userFunc' => 'Documentation\\Examples\\Userfuncs\\Tca->specialField',
                'parameters' => array(
                        'color' => 'blue'
                )
        )
),