Typo 3 Abschnittsverzeichnis für News-Records Titelbild

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.