0

我对我的项目有特殊要求,我需要帮助。我正在使用 TYPO3 8.7.8。我有一个自定义扩展来在前端呈现标签标签。我们可以在后端存储文件夹中添加标签作为 TCA 记录。在 TCA 记录中,您可以标记名称。我的要求是,当我保存 TCA 记录时,我想在特定位置自动创建一个与标签同名的 TYPO3 页面。每次添加 TCA 记录时,都需要自动创建相应的页面。这可能吗?我可以在保存 TCA 的同时使用钩子。但是有没有自动创建页面的功能?

自动页面创建后,我想在该页面中自动插入一个具有特定 flexform 值的插件内容元素。我知道这是一个奇怪的要求,但我想知道它是否可能。

4

2 回答 2

2

确切地说,您将触发保存挂钩,然后下一步您可以使用数据处理程序生成新页面(和可能的内容)。

要创建页面和内容,请使用类似于以下数据结构的内容

$data = [
   'pages' => [
       'NEW_1' => [
           'pid' => 456,
           'title' => 'Title for page 1',
       ],
    ],
    'tt_content' => [
        'NEW_123' => [
           'pid' => 'NEW_1',
           'header' => 'My content element',
        ],
    ],
];

然后使用该结构调用数据处理程序:

$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-arrayhttps://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview的文档中了解更多信息 /Typo3CoreEngine/UsingDataHandler/Index.html

于 2017-10-22T07:55:04.550 回答
0

您确定需要其他页面吗?

一般来说,您的问题听起来像您需要一个插入插件的页面,并且依赖于 url 参数的插件(可以使用 realurl 转换为路径段)仅显示取决于所选记录(标签)的信息。

如果未选择任何标签,您可以输出一个包含所有可用标签的列表作为菜单导航到所有可能的标签。

只需一点点努力(不像预期的那样写一个钩子),您就可以将所有标签添加到您的菜单中。

于 2017-10-23T06:37:15.370 回答