Zum Inhalt springen

TYPO3 – OnePager Menü mit DataProcessing

Erstellt am 13. Dezember 2021 · Noch keine Antworten

Tags: TYPO3 9, Tipp

Sebastian Schmal ·

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.