【问题标题】:Typo3 override backend classesTypo3 覆盖后端类
【发布时间】:2014-09-16 03:04:27
【问题描述】:

我在 Typo3 6.2 上工作了几个星期,我想知道如何覆盖 Typo3 核心类

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

有没有办法像任何其他 CMS 一样覆盖核心类? 而且我无法在 Internet 上找到一些东西,我认为它可能有用。

谢谢你:)

  • Zisiztypo

【问题讨论】:

  • 你想在哪里添加哪个 optgroup?可能有一种方法可以在不改变核心的情况下做到这一点。
  • 在后端的“编辑记录”面板上。一个字段引用“属性”按“属性族”排序(显示为​​ optgroups)。但这个例子并不是真正的重点:覆盖这些类对未来的开发很有用。
  • 查看 biesiors 的回答 - 可以做这样的事情,但不是通过覆盖核心类来完成的。它是通过用户函数、钩子、插件、信号/槽机制等来完成的。

标签: class overriding typo3 core


【解决方案1】:

您可以只声明一个user 类型的字段,然后指向您的自定义userFunc,而不是修改CMS 的源代码

From the ref:

'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'
                )
        )
),

提示: 使用这种方法,您可以创建您需要的任何类型的字段,它可以是 Google Maps 选择器,一组由 JS 填充的具有公共依赖关系的字段等等等等。

【讨论】:

  • 好的,所以如果我找不到我想要的字段类型,我必须创建一个新字段类型。我把它弄干净就足够了。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
相关资源
最近更新 更多