簡體   English   中英

TYPO3 使用數據庫值填充內容元素中的后端字段

[英]TYPO3 fill backend fields in content element with database values

我正在嘗試將 tt_content 數據庫字段中的 JSON 數據分發到其他現有字段中,例如 TYPO3 默認輸入字段標題。

我嘗試找到一個鈎子,它可以讓我手動處理分發,就像我在通過保存時一樣

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

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

您知道如何手動進行此數據分發嗎?

我找到了解決方案:

你必須在你的 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
        }
    }
}

所有這些類都可以與相應的核心類進行比較。

我希望這對未來的人有所幫助。

親切的問候!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM