我对我的项目有特殊要求,我需要帮助。我正在使用TYPO3 8.7.8。我有一个自定义扩展来在前端渲染标记标签。我们可以将标签添加为后端存储文件夹中的TCA记录。在TCA记录中,您可以标记名称。我的要求是,当我保存TCA记录时,我想自动创建一个TYPO3页面,其名称与特定位置的标签相同。每次添加TCA记录时,我都需要自动创建相应的页面。这可能吗?保存TCA时我可以使用钩子。但是有没有自动创建页面的功能?
创建自动页面后,我想在该页面中插入一个具有特定flexform值的插件内容元素。我知道这是一个奇怪的要求,但我想知道它是否可能。
答案 0 :(得分:2)
确切地说,你会在保存时触发一个钩子,然后在下一步中你可以使用数据处理程序来生成新页面(以及可能的内容)。
要创建页面和内容,请使用类似以下数据结构的内容
$data = [
'pages' => [
'NEW_1' => [
'pid' => 456,
'title' => 'Title for page 1',
],
],
'tt_content' => [
'NEW_123' => [
'pid' => 'NEW_1',
'header' => 'My content element',
],
],
];
然后使用该结构调用datahandler:
$tce = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
$tce->stripslashes_values = 0;
$tce->start($data, []);
$tce->process_datamap();
在文档中了解更多信息 https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Typo3CoreEngine/Database/Index.html#data-array 和 https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Typo3CoreEngine/UsingDataHandler/Index.html
答案 1 :(得分:0)
您确定需要其他页面吗?
一般来说,你的问题听起来像你需要一个插入插件的页面,并且插件依赖于url-parameter(可以用realurl转换成路径段),它只显示取决于所选记录的信息(标记)。
如果未选择任何标记,您可以输出包含所有可用标记的列表作为菜单,以导航到所有可能的标记。
只需付出一点努力(少于写一个预期的钩子),您就可以将所有标签添加到菜单中。