使用 Extbase 和 Yoast 时的路由增强器配置

Route Enhancer Configuration, when working with Extbase and Yoast

由于我已经为我们的一个 typo3 扩展的单个视图条目创建了一个路由增强器,标题和描述字段不再被处理到前端。 <title></title> 仅包含页面标题而不是记录标题,并且 <meta name="description" .../> 完全缺失。如果我删除路由增强器 SeminarSingleView,链接又变丑了,但标签填写正确。

错别字 9.5.14

酵母 6.0.1

这是 config.yaml 中处理路由增强的部分:

routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default : ''
    map:
      sitemap.xml: 1533906435
      yoast-snippetpreview.json: 1480321830
  SeminarSingleView:
    type: Extbase
    limitToPages: [62,142]
    namespace: the_namespace
    routes:
      - { routePath: '/{url_slug}', _controller: 'Product::show', _arguments: {'url_slug' : 'product'}  }
    defaultController: 'Product::show'
    aspects:
      url_slug:
        type: PersistedAliasMapper
        tableName: 'the_table'
        routeFieldName: 'speaking_url'

路由增强器本身就像一个魅力。有什么我没有看到的遗漏吗?我读过这两个:

https://wiki.sebkln.de/doku.php?id=typo3:yoast_seo

https://docs.typo3.org/p/yoast-seo-for-typo3/yoast_seo/6.0/en-us/Index.html

但找不到让我觉得有用的信息。有任何想法吗?如果需要,我可以而且显然会提供更多信息。 yoast-snippetpreview.json: 1480321830 行是新的,是我的一部分 尝试解决问题。但它只修复了后端的预览。一个还没有人意识到的问题。

我们终于解决了这个问题。

罪魁祸首是扩展 setup.ts 中一些已弃用的 Typoscript,因此问题确实取决于从 8.7.x 到 9.5.x 的更新。

[globalVar = GP:tx_extension_tablename|field > 0]

必须替换为

[request.getQueryParams()['tx_extension_tablename']['field'] > 0]

更改本身记录在此处:https://www.nitsan.in/blog/all-you-need-to-know-about-typoscript-conditions-with-symfony-expression-language/#c2419