【问题标题】:TYPO3 automatic page creation based on TCA recordTYPO3 基于 TCA 记录的自动页面创建
【发布时间】:2017-10-22 07:19:23
【问题描述】:

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

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

【问题讨论】:

    标签: typo3 typo3-extensions typo3-8.x typo3-8.7.x


    【解决方案1】:

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

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

    $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-array 和 https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Typo3CoreEngine/UsingDataHandler/Index.html

    【讨论】:

    • 感谢您的提示。让我试试这个。
    【解决方案2】:

    您确定需要其他页面吗?

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

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

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

    【讨论】:

    • 上述数据处理程序帮助我自动创建页面和内容元素。但是我遇到了自动更新 flexform 值的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多