如何在TYPO3 9.5.5中为tx-news正确设置url路由?

时间:2019-04-18 09:48:07

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

我将TYPO3 V9.5.5与PHP V7.2.10一起使用。另外,还安装了tx-news插件。站点配置已设置并可以工作。但是,如果我为新闻详细信息添加routeEnhancers,则它不会在URL中显示。它总是看起来像:http://p510984.mittwaldserver.info/aktuell/detail?tx_news_pi1%5Bnews%5D=5&cHash=c68f25c1ef4b5bd7320220373cfed332

我在stackoverflow和google中搜索了解决方案。我也阅读了新闻扩展名https://docs.typo3.org/typo3cms/extensions/news/stable/AdministratorManual/BestPractice/Routing/

的手册

即使TYPO3和PHP缓存刷新也无济于事。

目前,我有以下代码:

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages:
      - 17
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
    defaultController: 'News::list'
    defaults:
      page: '0'
    aspects:
      news-title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment

是否需要“ defaultController和默认值:页面:0”?

3 个答案:

答案 0 :(得分:0)

正如Nitori在评论中已经提到的那样,您需要统一news_title / news-title的拼写。

但这似乎不是您唯一的问题。如果没有该方面,您的网址至少应如下所示:

http://p510984.mittwaldserver.info/aktuell/detail/5&cHash=c68f25c1ef4b5bd7320220373cfed332

这意味着,整个路线目前尚未应用到您的详细信息页面。

使用limitToPages时,请检查17是否是详细信息页面的UID。


对于分页小部件,类别插件等,您需要将相关的页面UID添加到limitToPages,并且当然会扩展您的路线。 The news documentation显示了这些用例的示例。

答案 1 :(得分:0)

多数民众赞成在我的配置适合我,也许这会有所帮助...

News:
type: Extbase
extension: News
plugin: Pi1
routes:
  - routePath: '/'
    _controller: 'News::list'
  - routePath: '/page-{page}'
    _controller: 'News::list'
    _arguments:
      page: '@widget_0/currentPage'
  - routePath: '/{news-title}'
    _controller: 'News::detail'
    _arguments:
      news-title: news
  - routePath: '/{category-name}'
    _controller: 'News::list'
    _arguments:
      category-name: overwriteDemand/categories
  - routePath: '/{category-name}/page-{page}'
    _controller: 'News::list'
    _arguments:
      category-name: overwriteDemand/categories
      page: '@widget_0/currentPage'
defaultController: 'News::list'
defaults:
  page: '0'
aspects:
  news-title:
    type: PersistedAliasMapper
    tableName: tx_news_domain_model_news
    routeFieldName: path_segment
  page:
    type: StaticRangeMapper
    start: '1'
    end: '100'
  category-name:
    type: PersistedAliasMapper
    tableName: sys_category
    routeFieldName: slug

答案 2 :(得分:0)

对我来说,这个效果很好:

routeEnhancers:
  # news rewrites
  News:
    type: Extbase
    #limitToPages:
    #  - 67
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news-title}', _controller: 'News::detail', _arguments: { news-title: news } }
      #- { routePath: '/cat/{news-cat}', _controller: 'News::list', _arguments: { news-cat: overwriteDemand/categories } }
    defaultController: 'News::list'
    defaults:
      page: '0'
    aspects:
      news-title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment
      news-cat:
        type: PersistedAliasMapper
        tableName: sys_category
        routeFieldName: slug