Menüs alphabetisch sortieren

Oft besteht die Forderung, ein TYPO3 Menü alphabetisch zu sortieren. Für dieses Problem gibt es eine einfache Lösung, nämlich die Eigenschaft alternativeSortingField.

#### Beispiel: Menü alphabetisch sortieren
temp.myMenu = HMENU
temp.myMenu {
    entryLevel = 1
    1 = TMENU
    1 {
      alternativeSortingField = title DESC
      expAll = 0
      noBlur = 1
      NO = 1
   }
}
 

Das erzeugte Menü wird nun alphabetisch absteigend DESC sortiert. Ebenso ist eine aufsteigende Sortierung ASC möglich. Auch lassen sich andere Datenbankfelder als Sortierkriterium festlegen. Beispielsweise würde crdate DESC die zuletzt erstellte Seite immer ganz oben platzieren. Andere mögliche Felder wären tstamp (Zuletzt bearbeitet) oder subtitle (Untertitel). Sehen Sie in der Tabelle pages der TYPO3 Datenbank nach, um herauszufinden, welche weiteren Felder existieren.

Menüeinträge auf bestimmte Länge kürzen

Wenn Seitentitel zu lang sind um ins Menü zu passen, können Sie mit diesem Code dafür sorgen, dass nach einer bestimmten Anzahl von Zeichen der Text abgeschnitten wird und drei Punkte (oder beliebige andere Zeichen) angehängt werden. Das funktioniert in beide Richtungen.

#### Beispiel 1: Menüeinträge rechts abschneiden
temp.myMenu = HMENU
temp.myMenu {
    entryLevel = 1
    1 = TMENU
    1 {
      expAll = 0
      noBlur = 1
      NO = 1
      NO.stdWrap.crop = 30 | ...
   }
}
 
#### Beispiel 2: Menüeinträge links abschneiden
temp.myMenu = HMENU
temp.myMenu {
    entryLevel = 1
    1 = TMENU
    1 {
      expAll = 0
      noBlur = 1
      NO = 1
      NO.stdWrap.crop = -30 | ... | 1
   }
}
 

Menüeinträge auf maximale Anzahl begrenzen

Wenn es aus gestalterischen oder sonstigen Gründen notwendig ist, die Anzahl der Einträge in einem Menü zu begrenzen, können Sie das ganz einfach durch Hinzufügen der rot markierten Zeile im Extension Template +ext nav_main erreichen. Im Besipiel werden dann nur noch 15 Menüpunkte angezeigt, der Rest wird ignoriert.

temp.nav_main = HMENU
temp.nav_main {
  maxItems = 15
  entryLevel = 0
  excludeUidList =
  1 = TMENU
  1 {
    ...
  }
}

Reihenfolge der Menüeinträge ändern

Standardmäßig erscheinen die Seiten im Hauptmenü genau in der Reihenfolge wie sie im Seitenbaum einsortiert sind. Soll die zuletzt geänderte Seite immer oben stehen, kann man das Erweiterungstemplate +ext nav_main geringfügig ändern und die rot markierte Zeile hinzufügen. Hier wird als Sortierkriterium das Feld crdate (Datum der Erzeugung der Seite, Creation Date) in absteigender Reihenfolge (DESC, descending), gewählt. Hier ist auch ASC (ascending), also aufsteigend möglich.

temp.nav_main = HMENU
temp.nav_main {
  alternativeSortingField = crdate DESC
  entryLevel = 0
  excludeUidList =
  1 = TMENU
  1 {
    ...
  }
}

Seiten von Typ "Nicht im Menü" in einer Sitemap anzeigen

Der Seitentyp Nicht im Menü schließt normalerweise die betreffende Seite von der Anzeige in von TypoScript generierten Menüs aus.

Möchte man aber die Seite in einer Sitemap trotzdem angezeigt bekommen, erreicht man das mit dem folgendem Eintrag im Setup des Haupttemplates:

tt_content.menu.20.2.excludeDoktypes = 6