首页 > 解决方案 > TYPO3 9.5 中自定义页面 doktype 的站点路由

问题描述

我在 TYPO3 9.5 中基于页面创建了一个新闻功能。这些页面有特殊的 doktypes 以便将它们与其他页面分开,构建了一个插件来将页面显示为列表。

接下来我想做的是增强这些页面类型的站点路由。我想将 uid 附加到 slug 上。

我尝试使用 SimpleEnhancer 和 CustomEnhancer 来解决它,如下所示:

路由增强器:
  邮政:
    类型:定制
    routePath: '/{posttitle}'
    方面:
      帖子标题:
        类型:PersistedPatternMapper
        表名:'页面'
        routeFieldPattern: '^(?P.+)-(?P\d+)$'
        routeFieldResult: '{title}-{uid}'

但我想我的配置是错误的。

是否有机会通过新的站点路由解决将 uid 附加到 slug 的问题?

标签: phpurlroutingtypo3typo3-9.x

解决方案


简短版本:自 2020 年 3 月 15 日起,将来可以使用 TCA 覆盖覆盖生成选项(更多信息:https ://forge.typo3.org/issues/87364 )。

它现在是这样工作的:

$GLOBALS['TCA']['pages']['types']['ID-OF-CUSTOM-DOKTYPE']['columnsOverrides'] = [
    'slug' => [
        'config' => [
            'generatorOptions' => [
                'fields' => ['title', 'uid'],
                'fieldSeparator' => '-',
                'prefixParentPageSlug' => true,
             ]
         ]
     ]
 ];

推荐阅读