Seit der TYPO3 Version 9.5 gibt es unterschiedliche DataProcessing um unterschiedliche Datenbank-Felder an das FLUID Template zu übergeben. Oft werden die DataProcessing für Menü´s oder Files im Backend auszulesen verwendet um dann alle Daten an das TYPO3 Fluid zu übergeben.
Wir verwenden für unser OnePage Menü den DataProcessing „DatabaseQueryProcessor“:
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
...
dataProcessing {
30 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
30 {
table = tt_content
pidInList.field = uid
as = content
where = sectionIndex = 1
}
}
}
}
Damit lesen wir von den tt_content Elementen die Felder aus, die „In Menüs zeigen“ [sectionIndex] auf true / 1 stehen haben. (Im Tab „Erscheinungsbild“)
Nun können wir mit Hilfe von FLUID das Menü via for:each auslesen:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:spaceless>
<f:if condition="{content}">
<nav class="mainmenunav d-none d-lg-block ml--50" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement" role="navigation">
<ul class="mainmenu nav nav-pills">
<f:for each="{content}" as="item">
<li class="nav-item">
<a href="/#c{item.data.uid}" title="{item.data.header}" class="nav-link">
<span>{item.data.header}</span>
</a>
</li>
</f:for>
</ul>
</nav>
</f:if>
</f:spaceless>
</html>
Schreibt mir gerne Eure Beispiele oder Lösungen in den Kommentaren.
Ursprünglich erschienen am 13.12.2021 auf typo3-probleme.de.