0

以下の行で、config.yamlTYPO3 のニュース プラグインの URL を構成します。アーカイブ (年/月) の URL は期待どおりに見えますが、機能しません。エラー 404 が表示されます。

  • /年/2020/07/
  • /年/2020/08/
  • 等々

コメントの下の 2 つの部分を削除する# Date year/month:# Date year/month + pagination:、アーカイブ リンクが次のようになっていることがわかります。

  • /page-0/?tx_news_pi1[overwriteDemand][month]=08&tx_news_pi1[overwriteDemand][year]=2020&cHash=3f6c75083013c748da3870210647975b
  • /page-0/?tx_news_pi1[overwriteDemand][month]=07&tx_news_pi1[overwriteDemand][year]=2020&cHash=26bf541eb04daffaa9b43c033ea2bb90
  • 等々

興味深い部分は、/page-0/そこにあるべきではありませんが、ページネーターから来ています。デフォルトセクションの を削除した後page: '0'、ページネーションが機能しなくなりました...

構成に何か不足していますか?

私のconfig.yaml:

base: '/'
baseVariants: {  }
errorHandling: {  }
languages:
  -
    title: Deutsch
    enabled: true
    base: /
    typo3Language: de
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: ''
    hreflang: ''
    direction: ''
    flag: de
    languageId: '0'
rootPageId: 1
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default: /
    index: ''
    map:
      /: 0
  #################################
  ########## News Plugin ##########
  #################################
  # see https://docs.typo3.org/p/georgringer/news/master/en-us/AdministratorManual/BestPractice/Routing/Index.html#human-readable-dates
  NewsConfig:
    type: Extbase
    extension: News
    plugin: Pi1
    routes:
      # Pagination:
      - routePath: '/'
        _controller: 'News::list'
      - routePath: '/page-{page}'
        _controller: 'News::list'
        _arguments:
          page: '@widget_0/currentPage'
        requirements:
          page: '\d+'
      - routePath: '/{news-title}'
        _controller: 'News::detail'
        _arguments:
          news-title: news
      # Date year/month:
      - routePath: '/year/{date-year}/{date-month}'
        _controller: 'News::list'
        _arguments:
          date-month: 'overwriteDemand/month'
          date-year: 'overwriteDemand/year'
          page: '@widget_0/currentPage'
        requirements:
          date-month: '\d+'
          date-year: '\d+'
      # Date year/month + pagination:
      - routePath: '/year/{date-year}/{date-month}/page-{page}'
        _controller: 'News::list'
        _arguments:
          date-month: 'overwriteDemand/month'
          date-year: 'overwriteDemand/year'
          page: '@widget_0/currentPage'
        requirements:
          date-month: '\d+'
          date-year: '\d+'
          page: '\d+'
    defaultController: 'News::list'
    defaults:
      page: '0'
      date-month: ''
      date-year: ''
    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: '500'
      date-month:
        type: StaticRangeMapper
        start: '1'
        end: '12'
      date-year:
        type: StaticRangeMapper
        start: '2000'
        end: '2030'
routes: {  }

アップデート

2つの異なる構成で、ほとんど動作するようになりました:

#####################################################
########## News detail page and pagination ##########
#####################################################
NewsGeneral:
  type: Extbase
  extension: News
  plugin: Pi1
  routes:
    - routePath: '/{news-title}'
      _controller: 'News::detail'
      _arguments:
        news-title: news
    - routePath: '/page-{page}'
      _controller: 'News::list'
      _arguments:
        page: '@widget_0/currentPage'
      requirements:
        page: '\d+'
  defaultController: 'News::list'
  defaults:
    page: '1'
  aspects:
    news-title:
      type: PersistedPatternMapper
      tableName: tx_news_domain_model_news
      routeFieldPattern: '^(?P<path_segment>.+)-(?P<uid>\d+)$'
      routeFieldResult: '{path_segment}-{uid}'
    page:
      type: IdentifierValueMapper
#########################################
########## News archive config ##########
#########################################
# see https://docs.typo3.org/p/georgringer/news/master/en-us/AdministratorManual/BestPractice/Routing/Index.html#human-readable-dates
NewsArchiveConfig:
  type: Extbase
  extension: News
  plugin: Pi1
  limitToPages:
    - 19
    - 313
  routes:
    # Date year/month:
    - routePath: '/year/{date-year}/{date-month}'
      _controller: 'News::list'
      _arguments:
        date-month: 'overwriteDemand/month'
        date-year: 'overwriteDemand/year'
    # Date year/month + pagination:
    - routePath: '/year/{date-year}/{date-month}/page-{page}'
      _controller: 'News::list'
      _arguments:
        date-month: 'overwriteDemand/month'
        date-year: 'overwriteDemand/year'
        page: '@widget_0/currentPage'
      requirements:
        date-year: '\d+'
        date-month: '\d+'
        page: '\d+'
  defaultController: 'News::list'
  aspects:
    date-month:
      type: IdentifierValueMapper
    date-year:
      type: IdentifierValueMapper
    page:
      type: IdentifierValueMapper

クレジット: exotecに感謝IdentifierValueMapperます

最後の問題: アーカイブ ページのページネーション。

通常のページネーション リンク ( /page-2/) ではエラー 404 が発生し、月のページネーション ( /year/2020/08/page-2/) は月と年を考慮しません。

結論: 両方の構成がアクティブな場合 (アーカイブ ページの場合)、それらは互いに干渉しています。

どんなヒントでも大歓迎です!

4

0 に答える 0