Zum Inhalt springen

[Newbie] TMENU in DIV ohne TypoScript

Erstellt am 6. Juli 2009 · 3 Antworten · letzte Antwort am 6. Juli 2009

Tags: Frage

Unbekannter Benutzer ·

Hi zusammen,
ich bin sehr neu in Sachen Typo3. Mit PHP/MySQL/CSS/HTML kann ich recht passabel umgehen, aber Typo3 ist doch grad noch ein recht komplexes Thema.

Zu meinem Problem: Wie ich per TypoScript ein beliebiges HTML-Tag um ein oder mehrere Elemente lege ist mir so langsam klar. Aber wenn ich dieses drumrumlegen nun nicht per TS machen will sondern ganz normal in HTML und CSS, komme ich gerade nicht weiter.

Erstmal hier mein HTML-Code (template.html) (gekürzt) :

<body>
    <!-- ###INHALT### start -->
        <div id="container_menu">
            <!-- ###MENU### start -->
            <!-- ###MENU### stop -->
        </div>
    
        <div id="container_content">
            <!-- ###FLIESTEXT### start -->
            <!-- ###FLIESTEXT### stop -->
        </div>

    <!-- ###INHALT### stop -->
</body>

Mein TypoScript:

# Default PAGE object:
page = PAGE

page {
    stylesheet = screen.css
    
    10 = IMAGE
    10.file = logo_darkside_studios_klein.png
    
    20 = TEMPLATE
    20 {
        template = FILE
        template.file = template.html
        workOnSubpart = INHALT
        subparts.FLIESTEXT < styles.content.get
    }
    
    30 = HMENU
    #30.wrap = <div id="container_menu"> | </div>
    30.1 = TMENU
    30.1 {
        wrap = <ul> | </ul>
        NO.wrapItemAndSub = <li class="normal"> | </li>
        CUR < .NO
        CUR = 1
        CUR.wrapItemAndSub = <li class="current"> | </li>
    }
}

Nun kann ich ja mit der zweiten (momentan bewußt auskommentierten) "30"-Zeile ein DIV-Tag um mein Menü legen. Das funktioniert dann auch. Aber wenn ich das wie in den "20"er-Zeilen machen möchte, also das DIV-Tag in die HTML-Datei packen und mit TS darauf zugreifen, wie muss ich da vorgehen?
Ziel ist, möglichst viele HTML-Tags auch wirklich in der HTML-Datei unter zu bringen.

Ich hoffe, ich konnte mich verständlich ausdrücken 😉

Julian.​Hofmann · · Beste Antwort

Hallo.

Zentrales Objekt für DeinV orhaben ist das TEMPLATE (20). Hier arbeitet TYPO3 mit Deiner HTML-Datei, d.h. hier kannst Du auch die Verarbeitung/Nutzung steuern. In Zeile 15 Deines TS weist Du dem Subpart FLIESTEXT Inhalt zu, wodurch im HTML-Code alles alles von <!-- ###FLIESTEXT### start --> bis <!-- ###FLIESTEXT### stop --> ersetzt wird. Auf die gleiche Weise kannst Du auch den Subpart MENU mit Inhalt füllen.

Wie bekommt man aber jetzt das Menü da rein?
Der (nicht unbedingt kürzeste, aber dafür übersichtlichere) Weg ist, das Menü in ein eigenes Objekt außerhalb des PAGE-Objektes zu packen, und es dann in den Subpart zu kopieren. So bleibt auch bei vielen Subpart das Template-Objekt übersichtlich.

temp.meinMenu = HMENU
#temp.meinMenu.wrap = <div id="container_menu"> | </div>
temp.meinMenu.1 = TMENU
temp.meinMenu.1 {
        wrap = <ul> | </ul>
        NO.wrapItemAndSub = <li class="normal"> | </li>
        CUR < .NO
        CUR = 1
        CUR.wrapItemAndSub = <li class="current"> | </li>
    }

# Default PAGE object:
page = PAGE

page {
    stylesheet = screen.css
    
    10 = IMAGE
    10.file = logo_darkside_studios_klein.png
    
    20 = TEMPLATE
    20 {
        template = FILE
        template.file = template.html
        workOnSubpart = INHALT
        subparts.FLIESTEXT < styles.content.get
        subparts.MENU < temp.meinMenu
    }
}

Viele Grüße
Julian

Unbekannter Benutzer ·

So, habs jetzt grad ausprobiert und ich denke soweit verstanden. Mein DIV-Tag konnte ich jetzt aus dem TS rausnehmen und in das HTML-Template packen. Funktioniert also 🙂

Danke nochmal!