在我的 TYPO3 9 安装中,我正在为我自己的扩展(事件)处理自定义 sitemap.xml。在那里,我希望每个条目都有一个单独的 pageId / 详细信息页面。
正如我在 tx_seo 的配置部分所了解的那样,我只能提供一个特定的 pageId 作为详细信息页面 ID - 对吗?
我试过这个配置:
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
veranstaltung {
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = tx_ntevents_domain_model_veranstaltung
sortField = kursnummer
lastModifiedField = tstamp
recursive = 1
pid = 110
url {
pageId = # here different pages which can be found in tx_ntevents_domain_model_veranstaltung.seite1 #
fieldToParameterMap {
uid = nt_events_pi1[veranstaltung] # is this correct? #
}
additionalGetParameters {
nt_events_pi1.controller = Veranstaltung
nt_events_pi1.action = show
}
}
...
使用此设置 tx_seo 会找到所有条目,但不会
- 为每个条目提供一个特定的页面 ID 和
- 不会生成漂亮的 slug url
这是来自 config.yaml 的 slug 代码
NtEvents:
type: Extbase
extension: NtEvents
plugin: Events
routes:
-
routePath: '/{veranstaltung-url}'
_controller: 'Veranstaltung::show'
_arguments:
veranstaltung-url: veranstaltung
defaultController: 'Veranstaltung::list'
aspects:
veranstaltung-url:
type: PersistedAliasMapper
tableName: tx_ntevents_domain_model_veranstaltung
routeFieldName: slug
routeValuePrefix: /