Hallo,
ich hoffe, dass ich in diesem Forum richtig bin.
Derzeit baue ich meine erste Webseite auf Basis von Typo3 und habe
ein Navigationsmenü mit einem Untermenü.
Das Hauptmenü wird immer angezeigt und wenn man auf einen bestimmten Menüeintrag klickt, dann soll das entsprechende Untermenü angezeigt werden.
Das klappt auch soweit.
Ich habe die beiden Menüs in meiner Designvorlage definiert und möchte die Tabelle des zweiten Menüs nur anzeigen, wenn auf den entsprechenden Eintrag im ersten Menü geklickt wurde.
Okay, ich versuch's mal' mit Auszügen aus dem Quelltext zu erläutern ;-)
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center; background-color: rgb(204, 204, 204);">###MENUPUNKTEINS###</td>
</tr>
</tbody>
</table>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center; background-color: rgb(153, 153, 153);">###MENUPUNKTZWEI###</td>
</tr>
</tbody>
</table>
Der Marker MENUPUNKTEINS wird immer ersetzt.
page.10.workOnSubpart = BODY_INHALT
page.10.marks.MENUPUNKTEINS = HMENU
page.10.marks.MENUPUNKTEINS.entryLevel = 0
page.10.marks.MENUPUNKTEINS.1 = TMENU
page.10.marks.MENUPUNKTEINS.1.NO {
before =
after = | |*| | |*|
}
[globalVar = TSFE:id=8, TSFE:page|pid=8]
page.10.marks.MENUPUNKTZWEI = HMENU
page.10.marks.MENUPUNKTZWEI.entryLevel = 1
page.10.marks.MENUPUNKTZWEI.1 = TMENU
page.10.marks.MENUPUNKTZWEI.1.NO {
before =
after = | |*| | |*|
}
[Global]
Jetzt möchte ich aber das untere Menü mit dem Marker nur anzeigen,
wenn es wirklich mit Inhalt gefüllt wird.
Ansonsten soll die gesamte zweite Tabelle aus meiner Designvorlage nicht angezeigt werden.
Ich hoffe dass meine Frage einigermaßen verständlich ist und
ihr einem Anfänger einen Tipp geben könnt.
Als kleine Verständnishilfe noch ein kleiner Screenshot:
Bild: office.homelinux.org/menu.jpg
Danke & Gruß
Thorsten Müller
Hallo Thorsten,
ich bin zwar auch neu, aber die Menüs hab ich eigentlich schon hinbekommen.
Was passiert denn, wenn Du die Bedingung ([globalVar = TSFE:id=8, TSFE:page|pid=8]) einfach mal weglässt.
Eigentlich sollten doch entryLevel reichen!!
Gruß,
Sascha
Hallo Sascha,
danke für deine Antwort.
Die Bedingung benötige ich noch, da ich weitere Untermenüs habe (am Seitenende) und damit diese nicht ausversehen eingeblendet werden habe ich diese Abfrage.
Vielleicht denke ich da etwas kompliziert ;-)
Wichtig ist mir, dass die Tabelle für das zweite Menü gar nicht angezeigt wird.
Dazu müsste ich per Typoscript den Inhalt meiner Designvorlage ändern und ich weiß nicht, ob das überhaupt geht.
Also wenn das zweite Menü nicht gebraucht wird,
dann soll der folgende Teil der Designvorlage gar nicht benutzt werden.
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center; background-color: rgb(153, 153, 153);">###MENUPUNKTZWEI###</td>
</tr>
</tbody>
</table>
Vielleicht gehe ich das Problem aber auch ganz falsch an :-(
Gruß
Thorsten
Was hälst du von fogender idee?
<table style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: center; background-color: rgb(204, 204, 204);">###MENUPUNKTEINS###</td>
</tr>
</tbody>
</table>
###MENUPUNKTZWEI###
und dann im TS einfach die tabelle rumwrappen.
page.10.marks.MENUPUNKTZWEI = HMENU
page.10.marks.MENUPUNKTZWEI.stdWrap=<table id="menuepunkt2" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td class="irgendeinname">|</tr></tbody></table>
page.10.marks.MENUPUNKTZWEI
{
entryLevel = 1
required = 1
1 = TMENU
1 {
noBlur = 1
expAll = 0
ACT = 1
NO.allWrap = |
ACT.allWrap =|
ACT.ATagParams = class="activelink"
NO {
before =
after = | |*| | |*|
}
}
}
der wichtige punkt im TS ist dabei required = 1 der bewirkt das nur gefüllte menüs angezeigt werden.
der code ist nicht getestet, aber so sollte es gehen.
Hallo buccaneer,
sorry für die späte Antwort, aber manchmal müssten die Tage 48 Stunden haben
(und selbst dann wird's noch knapp).
Danke für den Tipp.
Auf den Ansatz es aus der Designvorlage rauszunehmen und dann mit TS bei Bedarf
einzubauen, wäre ich nicht gekommen. Dafür schonmal Danke :-)
Aber leider funktioniert das bei mir noch nicht so richtig.
page.10.marks.MENUPUNKTZWEI = HMENU
page.10.marks.MENUPUNKTZWEI.stdWrap=<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td style="text-align: center; background-color: rgb(153, 153, 153);">|</td></tr></tbody></table>
page.10.marks.MENUPUNKTZWEI.required = 1
page.10.marks.MENUPUNKTZWEI.entryLevel = 1
page.10.marks.MENUPUNKTZWEI.1 = TMENU
page.10.marks.MENUPUNKTZWEI.noBlur = 1
page.10.marks.MENUPUNKTZWEI.expAll = 0
page.10.marks.MENUPUNKTZWEI.ACT = 1
page.10.marks.MENUPUNKTZWEI.NO.allWrap = |
page.10.marks.MENUPUNKTZWEI.ACT.allWrap =|
page.10.marks.MENUPUNKTZWEI.ACT.ATagParams = class="activelink"
page.10.marks.MENUPUNKTZWEI.1.NO {
before =
after = | |*| | |*|
}
Im HTML-Quelltext wird mir der bei stdWrap eingegebenen Text nicht angezeigt.
Aber wenigstens zeigt er mir jetzt nicht mehr den Marker aus der Vorlage an,
wenn das Menü nicht gebraucht wird (required sei Dank) ;-)
Hast Du vielleicht eine Idee, warum es trotzdem nicht funktioniert.
Gruß
Thorsten
Ich hab's endlich hinbekommen.
page.10.marks.MENUPUNKTZWEI.required = 1
page.10.marks.MENUPUNKTZWEI.entryLevel = 1
page.10.marks.MENUPUNKTZWEI.1 = TMENU
page.10.marks.MENUPUNKTZWEI.wrap=<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td style="text-align: center; background-color: rgb(153, 153, 153);">|</td></tr></tbody></table>
page.10.marks.MENUPUNKTZWEI.1.NO {
before =
after = | |*| | |*|
}
Damit klappt's ;-)
Danke für die Hilfe!
Gruß
Thorsten