Aufgabenstellung in unserer Webagentur: Wir benötigen ein Inhaltselement, dass automatisch alle Abschnitte, also Inhaltsüberschriften der Elemente anzeigt, die einem News-Record zugeordnet sind. Für reguläre Seiten gibt es dieses Element bereits, nun müssen wir hier jedoch die Spalte tx_news_related_news zur Hilfe nehmen, der für jedes Content Element auf einen Eintrag in der Tabelle tx_news_domain_model_news verweist.
Somit nutzen wir im Setup (setup.typoscript) der jeweiligen Extension den DatabaseQueryProcessor:
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
table = tt_content
orderBy = sorting
where = tx_news_related_news = ###news_record_id### AND sectionIndex = 1
pidInList=pid
as = myrecords
markers {
news_record_id.data = GP:tx_news_pi1|news
}
}
Damit können wir dann durch die "myrecords" loopen und z.B. die jeweiligen Header ausgeben.
Etwas schwieriger wird es, wenn man einer erstellten Übersetzung die Standardsprache nimmt, also die Parentspalte in tx_news_domain_model_news eine "0" enthält und die Sprache nicht "0" und nicht "-1" ist. Hier kann man dann die t3orig_uid nehmen, die die ID des Eltern-Elements enthält und nach dieser dann in tt_content suchen mit einer verschachtelten DatabaseQueryProcessor-Anweisung (Nested DatabaseQueryProcessor / Data Processing):
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tx_news_domain_model_news
where = uid = ###news_record_id### AND l10n_parent = 0 AND sys_language_uid > 0
pidInList=pid
as = myrecords-wo-standard-lang
markers {
news_record_id.data = GP:tx_news_pi1|news
}
dataProcessing {
20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
20 {
table = tt_content
pidInList=pid
where.dataWrap = tx_news_related_news = {field:t3_origuid}
as = myrecords-wo-standard-lang-contents
}
}
}
Das war's! Gesehen in unserer Agentur in einer TYPO3-Website mit TYPO3 v10.