TYPO3 заполнить поля в элементе содержимого значениями базы данных - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь распределить JSON данные из поля базы данных tt_content в другие существующие поля, такие как заголовок поля ввода TYPO3 по умолчанию.

Я попытался найти ловушку, которая позволяет мне обрабатывать распределение вручную, как я мог бы при сохранении через

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

в моем ext_localconf. php. Я не мог найти один. Поэтому я взглянул на TCA, чтобы увидеть, есть ли возможные настройки, которые я могу использовать, но я тоже не смог.

Вы знаете способ, как выполнить это распределение данных вручную?

1 Ответ

0 голосов
/ 27 февраля 2020

Я нашел решение:

Вы должны сделать 2 вещи в вашем ext_localconf. php file

Чтобы изменить данные перед сохранением в базе данных, вы должны позвонить:

$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
        }
    }
}

Все эти классы можно сравнить с соответствующими базовыми классами.

Надеюсь, это поможет кому-то в будущем.

С уважением!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...