HMENU
Erzeugt hierachische Menüs.
Eigenschaft | Datentyp | Beschreibung | Standard |
1,2,3,... | menuObj | Erforderlich! |
|
int | Gibt an, in welcher Ebene der rootline das Menü beginnen soll. Der Standardwert ist "0", was uns zu einem Menü mit den ersten Seiten der Website führt. Ist der Wert < 0, liegt entryLevel "hinter" der rootline. "-1" ist also ein Menü mit Einträgen aus der obersten Ebene, "-2" ist die Ebene nach dem obersten Ebene,... |
| |
"directory" / "list" / "updated" / "browse" / "rootline" / "keywords" / "language" | (Siehe gesonderte Tabelle unten) |
| |
Liste von Seiten-UIDs / stdWrap | (Siehe oben) |
| |
int | Die Mindestzahl von Menüeinträgen. Wenn die Anzahl an Einträgen diese Zahl nicht erreicht, wird eine Dummy-Zeile mit dem Titel "..." und der UID=[ID der aktuellen Seite] eingefügt. |
| |
int | Die Höchstzahl von Menüelementen. Mehr Elemente werden ignoriert. |
| |
int + calc | Das erste Element im Menü. |
| |
Liste von int | Eine Liste von Seiten-UIDs, die aus dem Menü ausgeschlossen werden sollen. Durch Kommata abgetrennt. |
| |
Liste von int | Eine Liste von Seiten-UIDs, die immer als aktive Menüeinträge betrachtet und daher automatisch geöffnet werden, ungeachtet der Rootline. |
| |
boolean / keyword | Falls gesetzt, wird für jede Seite im Menü geprüft, ob die GET-Variable &L einen anderen Wert hat als die mometane sys_language_uid und ob ein alternativer Sprachdatensatz für diese sys_language_uid für die Seite existiert. Ist das nicht der Fall und die “Übersetzungseinstellungen” der Seite stehen auf “Verstecke Seite, wenn keine Übersetzung für aktuelle Sprache existiert”, wird der Menüeintrag auf eine nicht zugreifbare Seite zeigen, die dem Benutzer eine Fehlermeldung weitergibt. Das Setzen dieser Option verhindert diese Situation, indem einfach &L=0 für solche Seiten angehängt wird, was bedeutet, dass zur Standardsprache gewechselt wird, anstatt die momentane Sprache beizubehalten. |
| |
»if | Falls "if" "falsch" zurückliefert, wird das Menü nicht erzeugt. |
| |
wrap |
|
| |
»stdWrap |
|
|
Die .special-Eigenschaft
Diese Eigenschaft ermöglicht es, Menüs zu erzeugen, die nicht grundsätzlich die aktuelle Seitenstruktur wiedergeben,sondern stattdessen Links enthalten wie “Vor/Zurück”, “Zuletztbearbeitet”, “Seiten in einer bestimmten Seite” und so weiter.
ANMERKUNG: Setzen Sie nicht die Eigenschaft ».entryLevel für ein HMENU, wenn Sie diese Option benutzen! Beachten Sie auch, dass hier Seiten für die oberste Menüebene gewählt werden. Untermenüs mit menuObjects 2+ werden wie üblich erzeugt.
Typ | Beschreibung |
Dies erzeugt ein Menü mit allen Seiten mit der pid 35 und 56. | |
Dies erzeugt ein Menü mit den beiden aufgezählten Seiten (uid=35 und uid=36): | |
Dies erzeugt ein Menü der zuletzt bearbeiteten Seiten aus den Zweigen des Baums, die mit den aufgezählten UIDs (35 und 36) beginnen. Des weiteren wird das Feld “tstamp” benutzt (Standardwert SYS_LASTCHANGED), und die Baumtiefe beträgt 2 Levels. Außerdem wird eine Höchstzahl von 8 Seiten angezeigt, und diese müssen innerhalb der letzten drei Tage(3600*24*3) bearbeitet worden sein. | |
Erzeugt ein Menü mit den Seiten der rootline. | |
Diese Art Menü wird aus den Einträgen erzeugt, die aus einer Liste in der Eigenschaft “.item” erzeugt werden. Jedes Element der Liste (getrennt durch “|”) ist entweder ein reservierter Eintragsname (siehe Liste) mit einer vordefinierten Funktion oder ein benutzerdefinierter Name, welchem Sie eine Verküpfung zu jeder beliebigen Seite zuweisen können. Beachten Sie, dass die aktuelle Seite nicht die Root-Seite einer Website sein kann. | |
Erzeugt ein Menü mit Seiten, die ein oder mehrere Schlüsselwörter enthalten, die auch auf der aktuellen Seite zu finden sind. .mode: Gibt an, welches Feld der Seitentabelle zur Sortierung zu benutzen ist. Vorgabewert ist “SYS_LASTCHANGED” (wird auf den jüngsten tstamp der Seiteneinträge gesetzt, wenn die Seite generiert wird), “manual” oder “lastUpdated” greifen auf das Feld “lastUpdated” zu (manuell im Seiteneintrag setzen) und “tstamp” benutzt das “tstamp”-Feld des Seiteneintrags, welches automatisch gesetzt wird, wenn der Eintrag bearbeitet wird. “crdate” benutzt das “crdate”-Feld des Eintrags, “starttime” das “starttime”-Feld. .entryLevel: Gibt an, wo in der Rootline die Suche beginnt. Standard Rootline Syntax (-x bis x) .depth, .limit, .excludeNoSearchPages, .beginAtLevel (wie im “updated”-Menü) .setKeyword (+stdWrap): Lässt Sie die Schlüsselwürter manuell als durch Kommata getrennte Liste angeben. Wenn diese Eigenschaft gesetzt ist, wird die Vorgabe, dir Schlüsselwörter der aktuellen Seite, überschrieben. .keywordsField: Gibt das Feld in der Seitentabelle an, in dem nach den Schlüsselwörtern gesucht werden soll. Vorgabewert ist der Feldname “keyword”. Es wird nicht kontrolliert, ob das Feld, welches Sie hier angeben, wirklch existiert, also geben Sie ein existierendes Feld an, verstanden!? .keywordsField.sourceField: Gibt das Feld der aktuellen Seite an, aus dem die Schlüsselwörter genommen werden soll. Vorgabewert ist "keyword". (Beachten Sie, dass “.keywordsField” nur das Eintragsfeld angibt, in dem gesucht werden soll!) | |
Erzeugt ein Sprachauswahlmenü. In der Regel besteht solch ein Menü aus Fahnen für jede Sprache, in die eine Seite übersetzt wird, und wenn der Benutzer eines der Menüelemente anklickt, wird auf dieselbe Seiten-ID verwiesen, aber mit einer Änderung des “&L”-Parameters. Der “language”-Typ erzeugt Menüelemente basierend auf dem aktuellen Seiteneintrag, aber mit jeweils unterschiedlichem Sprachdatensatz (falls verfügbar). Die Elemente verweisen alle auf die aktuelle Seite, lediglich der “&L”-Parameter wird geändert. Elementzustände: .value: durch Kommata getrennte Liste von sys_language-uids, aus denen das Menü erzeugt werden soll. Die Enzahl der Elemente in der Liste bestimmt die Anzahl der Menüelemente. | |
Lässt Sie Ihr eigenes kleines PHP-Script schreiben, welches den Array der Menüelemente generiert. Anleitung: $menuItemsArray[] = pageRow1; Eine “pageRow” ist ein Eintrag der Tabelle “pages” mit allen Feldern (SELECT * FROM...). Anmerkung: URLs überschreiben: Andere reservierte Schlüssel: Untermenüs erzeugen: Elementstatus vorbestimmen | |
Ruft eine benutzerdefinierte Methode in einer Klasse auf, die (genau wie bei “userdefined” oben) einen Array mit Seiteneinträgen für das Menü zurückliefern sollte. |
Kommentare von registrierten Benutzern:
| Autor | Nachricht |
|---|---|
|
Verfasst am: Montag, 05-02-07 18:13
|
|
|
Silent Bob
Dabei seit: 28. 03. 2006
Beiträge: 115
|
includeNotInMenu fehlt hier. Mit diesem Wert kann man Seiten, welche eigentlich aus dem Menu ausgeschlossen wurden trotzdem anzeigen lassen. |
|
Verfasst am: Montag, 13-03-06 16:40
|
|
|
Martin Helmich
Dabei seit: 06. 02. 2006
Beiträge: 458
|
@Peter Kovacs und sunfish: Stimmt, hierbei handelt es sich um Tippfehler. Danke für die Hinweise. |
|
Verfasst am: Mittwoch, 08-03-06 20:09
|
|
|
Peter Kovacs
Dabei seit: 05. 03. 2006
Beiträge: 3
|
TYPOSCRIPT Dies erzeugt ein Menü mit allen Seiten mit der pid 25 und 56. 20 = HMENU 20.special = directory 20.special.value = 35, 56 muss das nicht heißen 35 bzw 25? also TYPOSCRIPT Dies erzeugt ein Menü mit allen Seiten mit der pid 35 und 56. 20 = HMENU 20.special = directory 20.special.value = 35, 56 oder TYPOSCRIPT Dies erzeugt ein Menü mit allen Seiten mit der pid 25 und 56. 20 = HMENU 20.special = directory 20.special.value = 25, 56 |
|
Verfasst am: Mittwoch, 21-12-05 14:01
|
|
|
sunfish
Dabei seit: 01. 08. 2004
Beiträge: 53
|
Korrektur: alwaysActivePidList muss heißen: TYPOSCRIPT alwaysActivePIDlist |
|
Verfasst am: Freitag, 16-12-05 11:19
|
|
|
Thomas Grabietz
Dabei seit: 16. 12. 2005
Beiträge: 0
|
userdefined Falls Sie “pagesRow”s selbst erzeugen, müssen Sie darauf achten, zumindest die Werte für die Felder “title” und “uid” einzutragen. Ja, das ist das mindeste um das HMENU in TypoScript erzeugen zu können. Ich würde jedoch jedem empfehlen den Parameter 'alias' mit in das Array aufzunehmen. |
|
Verfasst am: Donnerstag, 14-07-05 14:10
|
|
|
just2b
Dabei seit: 04. 08. 2004
Beiträge: 19047
|
funktionierendes Beispiel fürs browse: TYPOSCRIPT
|
|
Verfasst am: Dienstag, 21-06-05 11:42
|
|
|
Jochen Stange
Dabei seit: 15. 06. 2005
Beiträge: 2
|
Hier eine Möglichkeit um eine Art Seitentitel zu generieren und gleichzeitig auf die Ebenentiefe einzugehen: Constants: TYPOSCRIPT #cat=seitentitel.maxItems; type=options[1,2,3,4,5,6]; label=Verzeichnistiefe bei Rootline seitentitel.maxItems= 3 Setup: TYPOSCRIPT temp.seitentitel= HMENU temp.seitentitel { special = rootline special.range = 1|-1 maxItems = {$seitentitel.maxItems} 1 = TMENU 1.NO.allWrap = <strong>|</strong> - |*| <strong>|</strong> - |*| <strong>|</strong> 1.NO.doNotLinkIt = 1 } Das erzeugt eine Überschriftenzeile getrennt durch '-'. Mittels der Constanten kann man dann im Constant Editor per DropDown die Tiefe angeben. |
|
Verfasst am: Donnerstag, 16-06-05 16:44
|
|
|
zab1981
Dabei seit: 16. 11. 2004
Beiträge: 25
|
TYPOSCRIPT ###HTML_BUFFER_MARKER_MMCMS### |
|
Verfasst am: Mittwoch, 04-05-05 15:45
|
|
|
heusserurs
Dabei seit: 26. 04. 2005
Beiträge: 1
|
ExcludeUidList müsste excludeUidList heissen... also kleines "e". Bsp: TYPOSCRIPT
|



