以下の行で、config.yaml
TYPO3 のニュース プラグインの 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/
) は月と年を考慮しません。
結論: 両方の構成がアクティブな場合 (アーカイブ ページの場合)、それらは互いに干渉しています。
どんなヒントでも大歓迎です!