Hallo!
Ich weiss, über Menüs wurde hier schon allerhand geschrieben. Zu folgendem Problem habe ich leider noch keinen Beitrag gefunden:
Ich habe eine Webseite, welche aus nur einer Seiten-Ebene besteht (keine Untermenüs).
Nun möchte ich ein Text-Menü (TMENU) erstellen, welches in der 1. Ebene die Seiten und auf der 2. Ebene die Inhalte der Seite darstellt. Durch Klicken auf ein Inhalts-Link soll auf den entsprechenden Inhalt gesprungen werden.
Also etwa so:
|- Page 1
| |- Inhalt 1
| |- Inhalt 2
| - Inhalt 3
|- Page 2
- Page 3
Ebene 1 ist kein Problem, wie mache ich aber die zweite Ebene mit den Block-Links?
Wie geht denn das? Ist das mit Typo3 überhaupt möglich?
Vielen Dank für die Hilfe!
Hannes
Hallo,
das geht. Am Beispiel eines Content-Elements vom Typ Menü/Sitemap, Menü der Unterseiten mit Inhalt kannst Du die Funktionalität prüfen.
Wenn Du das in ein Template einfügen willst, studiere die static templates styles.content.get und styles.content(default), speziell menu-Einträge. Dort irgendwo findest Du die Funktionalität,
die Du brauchst.
Gruß
Andreas Schwarzkopf
Vielen Dank für die Antwort! Ich habe maich da mal umgesehen und im content (default) folgenden Code gefunden:
1061: # CType: menu
1062: tt_content.menu = COA
1063: tt_content.menu {
1064: 10 = < lib.stdheader
1065: 20 = CASE
1066: 20 {
1067: key.field = menu_type
1068:
1069: default = HMENU
1070: default {
1071: special = list
1072: special.value.field = pages
1073: 1 = TMENU
1074: 1.NO.linkWrap = {$content.menuWrap}
1075: 1.NO.allWrap = {$content.menuAllWrap}
1076: 1.NO.ATagBeforeWrap = 1
1077: 1.target = {$content.pageFrameObj}
1078: }
1079:
1080: 1 < .default
1081: 1.special = directory
1082:
1083: 2 < styles.sitemap.text
1084:
1085: 3 < styles.insertContent
1086: 3.select.andWhere = sectionIndex!=0
1087: 3.select.pidInList.override.field = pages
1088: 3.renderObj = TEXT
1089: 3.renderObj {
1090: fieldRequired = header
1091: trim=1
1092: field = header
1093: wrap = {$content.menuWrap}
1094: typolink.parameter.field = pid
1095: typolink.section.field = uid
1096: wrap2 = |
1097: }
1098:
1099: 4 < .1
1100: 4.1.NO {
1101: after.data = field : abstract // field : description // field : subtitle
1102: after.htmlSpecialChars = 1
1103: afterWrap =
{$content.subMenuWrap}
1104: }
1105:
1106: 5 < .default
1107: 5.special = updated
1108: 5.special {
1109: maxAge = 3600*24*7
1110: excludeNoSearchPages = 1
1111: }
1112:
1113: 6 < .default
1114: 6.special = keywords
1115: 6.special {
1116: excludeNoSearchPages = 1
1117: }
1118:
1119: 7 < .1
1120: 7.1.expAll = 1
1121: 7.1.wrap = |
1122: 7.2 < .7.1
1123: 7.2.sectionIndex = 1
1124: 7.2.sectionIndex.type = header
1125: 7.2.NO.linkWrap = {$content.subMenuWrap}
1126: }
1127:
1128: 20.stdWrap.editIcons = tt_content: menu_type,pages
1129: 20.stdWrap.editIcons.iconTitle=Edit linkmenu
1130: }
Ich nehme an, den für mich wichtige Teil beginnt bei Zeile 1085. Aber wie bekomme ich nun das in mein Menü?
Ich habe schon folgendes versucht - ohne Erfolg:
# MENU STUFE 2
marks.MENU_LEFT.2 = COA
marks.MENU_LEFT.2 < styles.insertContent
marks.MENU_LEFT.2 {
select.andWhere = sectionIndex!=0
select.pidInList.override.field = pages
renderObj = TEXT
renderObj {
fieldRequired = header
trim=1
field = header
wrap = {$content.menuWrap}
typolink.parameter.field = pid
typolink.section.field = uid
wrap2 = |
}
}
Schon jetzt herzlichen Dank für die Hilfe... 🙂
Hannes
[ Diese Nachricht wurde geändert von: inf8 am 2002-10-08 11:16 ]
das geht auch anders:
marks.MENU_LEFT.2 < tt_content.menu.20.3
(an der Stelle ist ja alles schon aufgeführt, wenn du es nichts veränderst, dann reicht der Satz aus)
nur dummerweise ist dieses Ding nich vom Typ HMENU, sondern was anderes. Deshalb kann es leider nicht so ohne weiteres funktionieren. Da musst Du schon weiter grübeln, wie dieses styles.insertContent ins Menü eingebaut werden kann.
Gruß
Andreas Schwarzkopf
http://www.meinsystem.de
Ah, ich seh schon. Bin eben doch noch ein TS Newbie... 🙂
Danke jedenfalls für die Hilfe, werde es mal ausprobieren.
Gruss
Hannes
Hmm, ich habe es irgendwie hinbekommen. Anscheinend muss man die darüberliegende Menuebene mit in das Menü nehmen und dann die oberste Ebene ausblenden.
So hats bei mir funktioniert:
// MENU_NEWS
temp.customNewsMenu = HMENU
temp.customNewsMenu {
special = list
special.value = 44
maxItems = 3
1 = TMENU
1.expAll = 1
1.NO.doNotShowLink = 1
2 = TMENU
2.sectionIndex = 1
2.sectionIndex.type = header
2.NO.linkWrap = | <br> |*| | <br> |*| |
2.NO.ATagParams = class="newshead"
}
Gruß,
Julian