Ben*_*Ben 4 typo3 extbase typo3-extensions tx-news typo3-9.x
ext:news 列表视图插件位于 www.domain.com/news [ID 9] 页面上,详细视图位于 www.domain.com/article [ID 39] 上。
我尝试了功能描述的“Extbase插件增强器”示例,但这引起了一些问题:
造成某些问题的原因之一可能是分页器未在其链接中指定控制器:news?tx_news_pi1[@widget_0][currentPage]=2&cHash=123456789
我将其拆分为两个单独的路由增强器(Extbase + 插件),删除了“defaultController”、“defaults”、“requirements”段并添加了“aspects”:
routeEnhancers:
NewsDetail:
type: Extbase
limitToPages: [39]
extension: News
plugin: Pi1
routes:
- { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
aspects:
news_title:
type: PersistedAliasMapper
tableName: 'tx_news_domain_model_news'
routeFieldName: 'path_segment'
NewsList:
type: Plugin
limitToPages: [9]
routePath: '/{@widget_0/currentPage}'
namespace: 'tx_news_pi1'
aspects:
'@widget_0/currentPage':
type: StaticRangeMapper
start: '1'
end: '1000'
Run Code Online (Sandbox Code Playgroud)
我对这种方法的担忧:
以下是 Georg Ringer 创建的 YAML 配置的副本:
\n\n\n\nrootPageId: 1\nbase: \'http://t3-master.vm/\'\nlanguages:\n -\n title: German\n enabled: true\n languageId: \'0\'\n base: /\n typo3Language: de\n locale: de\n iso-639-1: de\n navigationTitle: DE\n hreflang: \'\'\n direction: ltr\n flag: de\n googleAnalyticsReportClientId: xxx\n googleAnalyticsReportSiteId: yyyy\n -\n languageId: \'1\'\n title: English\n siteTitle: \'\'\n navigationTitle: English\n base: /en/\n locale: en\n iso-639-1: en\n hreflang: en\n direction: \'\'\n typo3Language: default\n flag: gb\n fallbackType: strict\nerrorHandling: { }\nbaseVariants: { }\nxxxx: "as\\r\\ndas\\"\\r\\nas"\nroutes: { }\ngoogleTagManager: \'\'\nlogo: \'\'\ngoogleAnalyticsReportClientId: 778798369619-fl4nav20thdvfv2hag2lntf2cg1o2d79.apps.googleusercontent.com\ngoogleAnalyticsReportSiteId: \'ga:136091502\'\nrouteEnhancers:\n NewsPlugin:\n type: Extbase\n limitToPages:\n - 25\n extension: News\n plugin: Pi1\n routes:\n -\n routePath: \'/{news_title}\'\n _controller: \'News::detail\'\n _arguments:\n news_title: news\n -\n routePath: \'/page/{page}\'\n _controller: \'News::list\'\n _arguments:\n page: \'@widget_0/currentPage\'\n -\n routePath: \'/time/{year}-{month}\'\n _controller: \'News::list\'\n _arguments:\n year: overwriteDemand/year\n month: overwriteDemand/month\n -\n routePath: \'/category/{category}\'\n _controller: \'News::list\'\n _arguments:\n category: overwriteDemand/categories\n defaultController: \'News::list\'\n defaults:\n page: \'0\'\n year: \'\'\n month: \'\'\n requirements:\n news_title: \'^[a-zA-Z0-9].*$\'\n page: \\d+\n aspects:\n news_title:\n type: PersistedAliasMapper\n tableName: tx_news_domain_model_news\n routeFieldName: path_segment\n page:\n type: StaticRangeMapper\n start: \'1\'\n end: \'100\'\n year:\n type: StaticRangeMapper\n start: \'1970\'\n end: \'2020\'\n month:\n type: StaticValueMapper\n map:\n january: \'01\'\n february: \'02\'\n march: \'03\'\n april: \'04\'\n may: \'05\'\n june: \'06\'\n july: \'07\'\n august: \'08\'\n september: \'09\'\n october: 10\n november: 11\n december: 12\n category:\n type: PersistedPatternMapper\n tableName: sys_category\n routeFieldPattern: \'^(?P<title>.+)-(?P<uid>\\d+)$\'\n routeFieldResult: \'{title}-{uid}\'\nRun Code Online (Sandbox Code Playgroud)\n\n进行以下更改:
\n\nrouteEnhancers:\n PageTypeSuffix:\n type: PageType\n default: \'/\'\n index: \'/\'\n map:\n \'/\': 0\n NewsPlugin:\n type: Extbase\n extension: News\n plugin: Pi1\n limitToPages: [33,59]\n routes:\n # Detail view:\n - routePath: \'/{news_title}\'\n _controller: \'News::detail\'\n _arguments: {\'news_title\': \'news\'}\n # Categories:\n - routePath: \'/{category}\'\n _controller: \'News::list\'\n _arguments: {\'category\': \'overwriteDemand/categories\'}\n # Tags:\n - routePath: \'/{tag_name}\'\n _controller: \'News::list\'\n _arguments: {\'tag_name\': \'overwriteDemand/tags\'} \n # Pagination:\n - routePath: \'/{page}\'\n _controller: \'News::list\'\n _arguments: {\'page\': \'@widget_0/currentPage\'}\n # Archive:\n - routePath: \'/{localized_archive}/{year}/{month}\'\n _controller: \'News::archive\'\n # Date:\n - routePath: \'/{year}-{month}\'\n _controller: \'News::list\'\n _arguments:\n year: overwriteDemand/year\n month: overwriteDemand/month\n defaultController: \'News::list\'\n defaults:\n page: \'0\'\n year: \'\'\n month: \'\' \n requirements:\n page: \'\\d+\'\n news_title: \'^[a-zA-Z0-9].*$\'\n aspects:\n page:\n type: StaticRangeMapper\n start: \'1\'\n end: \'100\'\n news_title:\n type: PersistedPatternMapper\n tableName: tx_news_domain_model_news\n routeFieldPattern: \'^(?P<path_segment>.+)$\'\n routeFieldResult: \'{path_segment}\'\n category:\n type: PersistedAliasMapper\n tableName: \'sys_category\'\n routeFieldName: \'title\'\n tag_name:\n type: PersistedAliasMapper\n tableName: \'tx_news_domain_model_tag\'\n routeFieldName: \'title\'\n localized_archive:\n type: LocaleModifier\n default: \'archive\'\n routeFieldName: \'title\'\n localeMap:\n - languageId: \'de_.*\'\n value: \'archiv\'\n - languageId: \'fr_.*\'\n value: \'archives\'\n year:\n type: StaticRangeMapper\n start: \'1970\'\n end: \'2099\'\n month:\n type: StaticValueMapper\n map:\n january: \'01\'\n february: \'02\'\n march: \'03\'\n april: \'04\'\n may: \'05\'\n june: \'06\'\n july: \'07\'\n august: \'08\'\n september: \'09\'\n october: 10\n november: 11\n december: 12\n localeMap:\n - locale: \'de_.*\'\n map:\n januar: \'01\'\n februar: \'02\'\n maerz: \'03\'\n april: \'04\'\n mai: \'05\'\n juni: \'06\'\n juli: \'07\'\n august: \'08\'\n september: \'09\'\n oktober: 10\n november: 11\n dezember: 12\n - locale: \'fr_.*\'\n map:\n janvier: \'01\'\n f\xc3\xa9vrier: \'02\'\n mars: \'03\'\n avril: \'04\'\n mai: \'05\'\n juin: \'06\'\n juillet: \'07\'\n aout: \'08\'\n septembre: \'09\'\n octobre: 10\n novembre: 11\n d\xc3\xa9cembre: 12\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |