如何在 Typo3 9.5.0 上获取 News 7.0.7 的口语 URL

Posted

技术标签:

【中文标题】如何在 Typo3 9.5.0 上获取 News 7.0.7 的口语 URL【英文标题】:How to get Speaking URLs for News 7.0.7 on Typo3 9.5.0 【发布时间】:2019-03-29 17:54:08 【问题描述】:

我真的很喜欢 Typo3 9.5.0 轻松创建语音 URL。

我唯一遇到的问题是让它与新闻等扩展程序一起工作。 找不到让它工作的方法,也不知道从哪里开始。感谢您的帮助。

最好的问候 丹

TYPO3 9.5.0 新闻7.0.7

【问题讨论】:

【参考方案1】:

您可以使用站点配置 YAML 文件(通常是 htdocs/config/sites//config.yaml)中的 routeEnhancers 指令来执行此操作。官方文档中有一个例子,虽然隐藏了一点:

https://docs.typo3.org/typo3cms/extensions/core/Changelog/9.5/Feature-86365-RoutingEnhancersAndAspects.html

这是我正在积极使用的配置:

rootPageId: <site id>
...
routeEnhancers:
 NewsPlugin:
  type: Extbase
  limitToPages:
    - 49 (when your news detail page id is 49)
    - ...
  extension: News
  plugin: Pi1
  routes:
    -
     routePath: '/blog/page'
     _controller: 'News::list'
     _arguments:
       page: '@widget_0/currentPage'
    -
     routePath: '/tag/tag_name'
     _controller: 'News::list'
     _arguments:
       tag_name: overwriteDemand/tags
    -
     routePath: '/news_title'
     _controller: 'News::detail'
     _arguments:
       news_title: news
    -
     routePath: '/archive/year/month'
     _controller: 'News::archive'
  defaultController: 'News::list'
  defaults:
   page: '0'
  aspects:
   news_title:
    type: PersistedAliasMapper
    tableName: tx_news_domain_model_news
    routeFieldName: path_segment

【讨论】:

嗨,帕维尔,很好,它就像一个魅力!还要感谢手册的链接。对我来说太隐蔽了。最好的问候丹 我正在使用这个配置,但是当转到下一页时,我的列表页面中总是添加了一个 chash - 有没有人碰巧知道为什么? 您是否认为有一种方法可以不对limitToPages 的页面ID 进行硬编码,而是说“限制具有新闻详细信息插件的页面”之类的内容? config/sites/config.yaml 这是放置路由增强器配置的新约定吗?该目录在默认情况下或在具有真实 url 的早期版本中不存在【参考方案2】:

工作示例typo3 9.5.5 和tx_news 7.1.0 和PersistedPatternMapper:

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages: [20,23,29,30]
    extension: News
    plugin: Pi1
    routes:
      -  routePath: 'page',_controller: 'News::list',_arguments: 'page': '@widget_0/currentPage' 
      -  routePath: 'news_title',_controller: 'News::detail',_arguments: 'news_title': 'news'       
    defaultController: 'News::list'    
    defaults:
      page: '0'
    requirements:
      page: '\d+'
    aspects:      
      news_title:
        type: PersistedPatternMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldPattern: '^(?P<path_segment>.+)-(?P<uid>\d+)$'
        routeFieldResult: 'path_segment-uid'
      page:
        type: StaticRangeMapper
        start: '1'
        end: '200'

【讨论】:

能否请您详细解释一下这些设置的作用 - 或者至少添加一些文档的链接。【参考方案3】:

自 7.0.6 版起,扩展新闻已准备好使用核心 URL。请确保您具有正确的配置,例如在站点模块中设置站点。

【讨论】:

ciao thomas,你确实很能干,看到了你的很多好建议,你想对这个答案多说一些吗,我没明白...

以上是关于如何在 Typo3 9.5.0 上获取 News 7.0.7 的口语 URL的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3:通过 URL 中的参数过滤 tx_news 类别

TYPO3 V10 - EXT:news 自定义类型和持久性映射

如何在 TYPO3 中获取当前页面的 ID

如何获取 Typo3 内容元素图片的 Fluid 中的类别对象?

当我尝试在 TYPO3 版本上安装自定义扩展时,如何解决我得到的错误。 10?

如何使用 extbase 在 TYPO3 CMS 6.0 上引导插件?