我将TYPO3 v 9.5.8与tx_news
(7.2.0)一起使用。
我真的很喜欢新的TYPO3实现的语音网址生成。
我已经将其配置为生成口语URL,并且也对其进行配置以生成tx_news
的口语URL,两者都工作正常。但我也想在页脚中显示最后三个新闻条目。
我的解决方案是在活字设置中生成它们,并将其传递给流体模板。我当前的排字代码如下:
news = CONTENT
news {
table = tx_news_domain_model_news
select {
pidInList = 24
max = 3
orderBy = datetime DESC
}
renderObj = COA
renderObj {
1 = TEXT
1.field = datetime
1.strftime = %d. %B %Y
1.wrap = <p>|</p>
2 = TEXT
2 {
field = title
typolink {
parameter = 26
parameter.override.field = internalurl
useCacheHash = 0
additionalParams.wrap = &tx_news_pi1[news]=|
additionalParams.field = uid
}
}
}
renderObj.wrap = <div class="header-news-item">|</div>
}
至少这有效。但是由于我使用additionalParams.wrap
附加新闻条目的ID,所以生成的url看起来像这样:
<a href="/allgemeines/news/artikel?tx_news_pi1[news]=2&cHash=8b0067dc86ab1392bb84cbf58878e72d">Lorem ipsum dolor sit</a>
我想输入如下网址:
<a href="/allgemeines/news/artikel/lorem-ipsum-dolor-sit">Lorem ipsum dolor sit</a>
这与tx_news
列表视图的生成相同,用于重定向到详细信息视图。
有人知道这怎么可能吗?
答案 0 :(得分:1)
我想您在生成TypoScript时缺少动作和控制器。
答案 1 :(得分:0)
有了Georg Ringer的the hint,我开始使用它了。
这是工作示例,以TypoScript开头:
news = CONTENT
news {
table = tx_news_domain_model_news
select {
pidInList = 24 // Page ID of the page that contains the news entries.
max = 3
orderBy = datetime DESC
}
renderObj = COA
renderObj {
1 = TEXT
1.field = datetime
1.strftime = %d. %B %Y
1.wrap = <p>|</p>
2 = TEXT
2 {
field = title
typolink {
parameter = 26 // Page ID of the page that displays the detail view.
parameter.override.field = internalurl
useCacheHash = 0
additionalParams.wrap = &tx_news_pi1[action]=detail&tx_news_pi1[controller]=News&tx_news_pi1[news]=|
additionalParams.field = uid
}
}
}
renderObj.wrap = <div class="header-news-item">|</div>
}
要使其正常工作,您当然也必须为tx_news
启用口语URL。从TYPO3 9 LTS开始,您可以通过将其添加到站点yaml配置文件中来完成此操作:
routeEnhancers:
News:
type: Extbase
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
描述为here。