我包括为新闻插件RouteEnhancers有工作作为exspected的新闻列表和新闻的详细信息页面。 现在,我尝试推行DateMenu大巴,有我有一些问题。
我config.yaml看起来像这样。
routeEnhancers:
PageTypeSuffix:
type: ForceAppendingSlash
NewsPlugin:
type: Extbase
extension: News
plugin: Pi1
routes:
- routePath: '/news/{page}'
_controller: 'News::list'
_arguments:
page: '@widget_0/currentPage'
- routePath: '/{news_title}'
_controller: 'News::detail'
_arguments:
news_title: news
- routePath: '/archiv/{year}/{month}'
_controller: 'News::archive'
defaultController: 'News::list'
defaults:
page: '0'
requirements:
page: \d+
aspects:
news_title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
我DateMenu.html看起来是这样的:
<ul>
<f:for each="{data.single}" key="year" as="months">
<li>
<ul>
<f:for each="{months}" key="month" as="count">
<li>
<f:link.action pageUid="{listPid}" arguments="{overwriteDemand:{year: year, month: month}}">{year} {month}</f:link.action>
</li>
</f:for>
</ul>
</li>
</f:for>
</ul>
列表看起来好,但我不知道是否有缓存的url或别的东西是错误的。 将再次出现是一个概述像RealUrl所以你可以看到所有的高速缓存的URL?
是的,网址似乎已被缓存。 我需要冲洗Typo3的和PHP缓存“维护”模块中(在“Adminn工具”):
但我认为,我们在您routeEnhancers配置错误。 他们没有很好地记录在CoreApiReference,但在changelog的一个很好的说明: https://docs.typo3.org/typo3cms/extensions/core/latest/Changelog/9.5/Feature-86365-RoutingEnhancersAndAspects.html
看看在DateMenu的生成的URL - probabbly成才,如:
http://yoursite.com
/path/to/newspage/
?tx_news_pi1[controller]=News
&tx_news_pi1[overwriteDemand][year]=2018
&tx_news_pi1[overwriteDemand][month]=10
&cHash=361b6057014505217b6186a508418f6f
所以控制器不是“归档”,但“名单”。 您需要更改您的config.yaml。 此外我认为你需要配置该路由的参数:
routePath: '/archive/{year}/{month}'
_controller: 'News::list'
_arguments:
year: overwriteDemand/year
month: overwriteDemand/month
这应该变换/摆脱两个&tx_news_pi1 [overwriteDemand]参数。
接下来,为了去除cHash,看看在“方面的内容:”部分在config.yaml文件的末尾。 您已经定义了一个“news_title” -你必须添加两个新“年”和“月”的论点。 有在更改日志多语言/本地化示例https://docs.typo3.org/typo3cms/extensions/core/latest/Changelog/9.5/Feature-86365-RoutingEnhancersAndAspects.html#staticvaluemapper
下面是我的整个config.yaml和DateMenu.html文件。 我的设置是:
- 名单和两个不同的页面详细信息视图 - 14和39
- 我不要在列表视图使用分页
- 我不想在档案馆月 - 仅仅几年
rootPageId: 1
base: /
baseVariants: { }
languages:
-
title: Deutsch
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_CH
iso-639-1: de
navigationTitle: De
hreflang: de
direction: ''
flag: global
-
title: English
enabled: true
languageId: '1'
base: /en/
typo3Language: default
locale: en_US
iso-639-1: en
navigationTitle: En
hreflang: en-US
direction: ''
fallbackType: strict
flag: gb
errorHandling: { }
routes: { }
routeEnhancers:
NewsPlugin:
type: Extbase
limitToPages:
- 14
- 39
extension: News
plugin: Pi1
routes:
-
routePath: '/{news_title}'
_controller: 'News::detail'
_arguments:
news_title: news
-
routePath: '/{year}'
_controller: 'News::list'
_arguments:
year: overwriteDemand/year
defaultController: 'News::list'
defaults:
page: '0'
aspects:
news_title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
year:
type: StaticRangeMapper
start: '2000'
end: '2200'
<div class="news-menu-view">
<ul>
<f:for each="{data.single}" key="year">
<li>
<f:link.action pageUid="{listPid}" arguments="{overwriteDemand:{year: year}}">{year}</f:link.action>
</li>
</f:for>
</ul>
</div>