Hi,
ich habe jetzt schon alles an TSref, by exaple etc. abgesucht, aber keine passende Lösung oder Ansätze gefunden.
Mein Problem:
Eine horizontale Menüleiste wird mit den Top-Items gefüllt.
Damit es aber besser aussieht, hat jeder Item eine bestimmte/unterschiedliche Breite.
Kurz zur Erläuterung:
Der html-Code (stark gekürzt, denn es kommt aus einer Template-Datei):
<!-- ###SUB_L1MENU_ITEM### begin -->
<TD WIDTH=###WIDTH### CLASS=nav1_no><!--###LINK###-->###TITLE###<!--###LINK###--></TD>
<!-- ###SUB_L1MENU_ITEM### end -->
Die entsprechenden Zeilen aus dem Setup:
temp.L1menuItems.1 = TMENU
temp.L1menuItems.1.expAll = 0
temp.L1menuItems.1.NO {
before.cObject < temp.mainTemplate
before.cObject {
workOnSubpart = SUB_L1MENU_ITEM
marks.TITLE = TEXT
marks.TITLE.field = title
wraps.LINK = TEXT
wraps.LINK {
value = |
typolink.parameter.field = uid
}
marks.MENU_ID = TEXT
marks.MENU_ID.field = uid
}
doNotShowLink = 1
}
Und nun die Frage:
Wie kann ich das '###WIDTH###' ersetzen gegen eine individuelle Breite die z.B. über die uid ermittelt wird?
(Ein Konstrukt wie 'temp.L1menuItems.1.NO.before.cObject.marks.WIDTH < temp.{field:uid}' wäre cool, funktioniert aber nicht.)
huschi.
Mein Problem:
Eine horizontale Menüleiste wird mit den Top-Items gefüllt.
Damit es aber besser aussieht, hat jeder Item eine bestimmte/unterschiedliche Breite.
und was oder wie definierst Du diese bestimmte breite? Oder soll es einfach nur 'gleichmaessig' aussehen, so als ob um jedes menuitem egal wie lang es ist z.b. 'style="margin: 10px 10px 10px 10px" gesetzt ist?
formulier mal bitte deine frage um 😉
wozu ueberhaupt eine tabelle? wenn Du hier eine feste breite verwendest, dann bekommst Du sicher probs mit usern die sich einbilden ihre eigenen schriftgroessen verwenden zu muessen :o
gruss
Thomas
Füg einmal die markierte Zeile ein. vielleicht hilfts.
temp.L1menuItems.1 = TMENU
temp.L1menuItems.1.expAll = 0
temp.L1menuItems.1.NO {
#-------------------------
XY = [10.w]+5, 20
#------------------------
.
.
.
Hi,
die Breiten sind festgelegt: 146, 80, 119, 80
Das muß auch so sein, da variable Breiten das Design sprengen. Aber es ist genug Platz pro Zelle um die leichten Unterschiede in verschiedenen System-Schriftarten abzufangen.
Und die Frage ist einfach:
Wie setzte ich bei uid==1 ###MENU_WIDTH### auf 146, bei uid==2 auf 80, etc. ?
huschi.
Huschi schriebHi,
die Breiten sind festgelegt: 146, 80, 119, 80
Das muß auch so sein, da variable Breiten das Design sprengen. Aber es ist genug Platz pro Zelle um die leichten Unterschiede in verschiedenen System-Schriftarten abzufangen.
Und die Frage ist einfach:
Wie setzte ich bei uid==1 ###MENU_WIDTH### auf 146, bei uid==2 auf 80, etc. ?
Da die Breiten bei Dir statisch sind würde ich die Formatierung der Tasbellenzellen per CSS erledigen und per TS einfach die entsprechenden Klassen zuweisen:
marks.CLASS_ID = TEXT
marks.CLASS_ID.field = uid
Zusätzlich im Template:
<!-- ###SUB_L1MENU_ITEM### begin -->
<TD WIDTH=###WIDTH### CLASS="nav1_no_###CLASS_ID###"><!--###LINK###-->###TITLE###<!--###LINK###--></TD>
<!-- ###SUB_L1MENU_ITEM### end -->
CU
maxhb
@maxhb
Super Idee. Darauf bin ich nicht gekommen, dabei nutze ich die uid bereits in den MouseOver-Effekten. (Hätte also selbst drauf kommen können.)
Das Ganze hat aber einen Nachteil:
Die uid muß dafür fest in die html bzw. css-Datei kodiert werden. Da will ich die aber nicht haben, da ich die Templates auf meinem Testrechner baue wo auch andere Sites lagern. D.h. die uid's ändern sich sobald ich das Template auf den Produktivserver übertrage.
Ich teste die ganze Zeit mit TS-Typ CASE rum, aber ich hab da noch ein Parsing-Fehler:
temp.menuWidth = CASE
temp.menuWidth {
key.feld = uid
52 = TEXT
52.value = 146
50 = TEXT
50.value = 119
default = TEXT
default.value = 80
}
temp.L1menuItems.1.NO.before.cObject.marks.MENU_WIDTH < temp.menuWidth
Sieht da vieleicht jemand einen Fehler?
Oder geht das an dieser Stelle gar nicht?
huschi.
Huschi schriebDas Ganze hat aber einen Nachteil:
Die uid muß dafür fest in die html bzw. css-Datei kodiert werden. Da will ich die aber nicht haben, da ich die Templates auf meinem Testrechner baue wo auch andere Sites lagern. D.h. die uid's ändern sich sobald ich das Template auf den Produktivserver übertrage.
Stimmt, deshalb würde ich auch eher alias oder title benutzen 😉
Hab das für eine Web Site mal mit dem Alias realisiert und das ist recht nett, denn dann kannst du aussagekräftige CSS-Klassen verwenden, z.B. "MENU_IMPRESSUM"...
CU
maxhb
Huschi schriebkey.feld = uid
Aaaarg! Tippfehler!!!
Damit funzt es. Endlich... 🙂
Auf der Anderenseite finde ich den Vorschlag von maxhb ziemlich gut.
Aber jetzt muß ich erstmal zusehen, daß der Kunden was zu sehen bekommt... 😉
Danke für die Hilfe,
huschi.