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

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

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

最好的问候 丹

TYPO3 9.5.0 新闻7.0.7

【问题讨论】:

    标签: url url-rewriting typo3 tx-news typo3-9.x


    【解决方案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,你确实很能干,看到了你的很多好建议,你想对这个答案多说一些吗,我没明白...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多