Typo3 Extbase 自定义内容元素:如何使用第二个插件的控制器创建和存储新实例?

问题描述

一个自定义扩展插件添加了使用 flexform 设置并使用流体渲染的自定义内容元素。它们可以手动添加,一切正常。

我的问题是,我无法解释 Typo3 如何通过代码管理创建该自定义元素的实例。我有第二个 extbase 后端模块,它应该自动创建这个实例,将它们添加到给定的页面并将它们存储在数据库中。当然,我可以插入一个新的,从另一个实例复制所有需要的未知 Typo3 数据 - 但我猜 Typo3 有一个向导或逻辑上简单的方法来做到这一点。也许使用内容元素控制器的实例是答案 - 但是如何添加 flexform 设置呢?教程中充满了如何创建 CCE 本身的说明,但这不是我的问题。

更新:

我想通了,如何在 tt_ 内容中插入自定义内容

$data = array(
   'tt_content' => array( 
      'NEW_1' => array(
         'pid' => 99,'CType' => 'list','colpos' => 1,'list_type' => 'myext_cclist',)
   )
);

$dataHandler = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\DataHandling\DataHandler::class);
        $dataHandler->start($data,[]);
        $dataHandler->process_datamap();
        $uid = $dataHandler->substNEWwithIDs['NEW_1'];
        
        \TYPO3\CMS\Backend\Utility\BackendUtility::setUpdateSignal('updatePageTree');
        $dataHandler->clear_cacheCmd('tt_content');
        
        return $uid;

但这不适用于 pi_flexform 的设置。有什么建议吗?

$data = array(
   'tt_content' => array( 
      'NEW_1' => array(
         'pid' => 99,'settings' => array(
            'vara' => 0,'varB' => 8
         )
      )
   )
);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)