【问题标题】:TYPO3 fill backend fields in content element with database valuesTYPO3 用数据库值填充内容元素中的后端字段
【发布时间】:2020-02-27 17:35:48
【问题描述】:

我正在尝试将 tt_content 数据库字段中的 JSON 数据分发到其他现有字段,例如 TYPO3 默认输入字段标题。

我尝试找到一个钩子,让我可以像通过保存一样手动处理分发

$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][]

在我的 ext_localconf.php 中。我找不到一个。所以我查看了TCA,看看是否有我可以使用的设置,但我也不能。

您知道如何手动进行这种数据分发吗?

【问题讨论】:

    标签: php typo3


    【解决方案1】:

    我找到了解决办法:

    你必须在你的 ext_localconf.php 文件中做两件事

    要在保存到数据库之前更改数据,您必须调用:

    $GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \YourNamespace\Hooks\YourClass::class;
    

    在数据加载到后端字段之前处理数据:

    $GLOBALS ['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord'][\YourNamespace\FormDataProvider\YourOtherClass::class]['depends'][0] = TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEditRow::class;
    

    要加载到您在设置打字稿中需要的前端或模板:

    tt_content {
        your_content_element_name =< lib.contentElement
        your_content_element_name {
            templateRootPaths {
                1 = EXT:your_extension_name/Resources/Private/Templates/
            }
            partialRootPaths {
                1 = EXT:your_extension_name/Resources/Private/Partials/
            }
            templateName = YourTemplateName
            dataProcessing {
                1 = YourNamespace\DataProcessing\YourClassProcessor
            }
        }
    }
    

    所有这些类都可以与相应的核心类进行比较。

    我希望这对将来的某人有所帮助。

    亲切的问候!

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 2014-07-17
      • 1970-01-01
      相关资源
      最近更新 更多