Startseite  |  Kontakt  |  Seitenverzeichnis  |  Kürzlich aktualisierte Seiten  |  AGB  |  Suchen  |  Impressum  |  TYPO3-Index

Telefon: 07022 / 60 2005  |  E-Mail:
TYPO3-Beratung - CMS-Webseitenerstellung, Webdesign
  • Startseite
  • Referenzen
  • Blog
  • TYPO3 Stuttgart
  • Optimierung
  • TYPO3-Tipps
  • Kurse und Seminare
  •  

    Ausgeben der umschließenden HTML-Tags eines Menüs, nur wenn dieses nicht leer ist

    Anders ausgedrückt: Ausblenden bzw. Unterdrücken leerer DIV- oder UL-Tags eines TYPO3-Menüs, um W3C-konformen HTML-Code auszugeben.

    Ausgangssituation

    Sie haben ein horizontales Hauptmenü und ein weiteres Menü für die Unterpunkte zu einem Hauptmenüpunkt. Derartige zweigeteilte Menüs werden auf diesem Netzauftritt eingesetzt.

    Problem

    Das Untermenü soll nur angezeigt werden, wenn es nicht leer ist, d.h. keine Unterseiten bzw. keine Einträge vorhanden sind.

    Hintergrund ist, dass durch den Standardwrap im HMENU-Element ein leeres Tag (z.B. UL-Tag) erzeugt wird. Dies führt gemäß W3C zu invaliden HTML-Code. Es sollen per TypoScript leere HTML-Tags unterdrückt werden.

    Lösung

    Die Unterdrückung der Ausgabe eines leeren DIV- oder UL-Tags für ein Menü ab der zweiten Ebene (Untermenü) sieht in TypoScript so aus:

    [treeLevel = 0]
    [else]
    temp.umenue = HMENU
    temp.umenue {
     entryLevel = 1
    
     1 = TMENU
     1.NO {
     linkWrap = |
     wrapItemAndSub = <li>|</li>
     }
    
     1.ACT.wrapItemAndSub = <li class="aktiv">|</li>
     1.ACT= 1
    
     2 < .1
     2.wrap = <ul>|</ul>
     2.ACT.wrapItemAndSub = <li class="aktiv">|</li>
    }
    
    lib.umenue < temp.umenue
    lib.umenue.stdWrap {
     wrap = <ul>|</ul>
     required = 1
    }
    [end]
    

    Erklärung

    [treeLevel = 0] [else] erlaubt die Ausführung erst ab der 1. Untermenüebene. Zuvor wird nichts ausgegeben.

    Das gewünschte Menü wird temporär ohne Standardwrap aufgebaut. Anschließend wird es der TemplaVoila-Variable lib.umenue zugewiesen.

    required = 1 bewirkt, dass das LIB-Element nicht erzeugt wird, wenn es leer ist.

    Sofern es erzeugt wird, kommt der Standardwrap zum Einsatz. Erst er schreibt UL-Tags um das Menü.

    Das Ergebnis dieser Methode ist valider HTML-Code gemäß W3C.

    Alternative

    Wenn auf der Startseite nur Hauptmenüpunkte angezeigt werden, machen Untermenüpunkt noch keinen Sinn, da kein Hauptmenüpunkt gewählt wurde, zu dem Unterpunkte angezeigt werden können. Wenn jeder der Hauptmenüpunkte Unterpunkte hat genügt [treeLevel = 0] [else].

    Im ELSE-Zweig kann ohne Umweg das LIB.SUCHE-Element erzeugt werden. Dieses enthält dann auch den Standardwrap um alle Unterpunkte. Diese einfache Variante wird beispielsweise auf diesem Netzauftritt verwendet.


    Themen: TYPO3-Web-Design, TYPO3-Optimierung, CMS-Homepages gestalten, TYPO3-Internetseiten erstellen, Website-Programmierung, TYPO3-Tipps, TYPO3-Wraps, Menü-Tags nur anzeigen, wenn nicht leer.

    [ ⇐ Zurück ]   [ ⇑ Nach oben ]   [ Π Drucken ]  

     

    Hier klicken!

    Startseite  |  Kontakt  |  Seitenverzeichnis  |  Kürzlich aktualisierte Seiten  |  AGB  |  Suchen  |  Impressum  |  TYPO3-Index
    Letzte Änderung: Samstag, 26.04.2008   Page copy protected against web site content infringement by Copyscape
    Flag Counter