Zum Inhalt springen

Probleme mit horizontalem Menü

Erstellt am 25. Juni 2007 · 22 Antworten · letzte Antwort am 28. Juni 2007 · Seite 1 von 2

Tags: Frage

zorc68 ·

Hier mein gesamtes TS. Wie meinst Du das mit 3 Markern. im html-Template? Habe ich dann, wenn nur eine Ebene dargestellt wird nicht eine Lücke zwischen menü und Inhalt??

# Allgemeine TypoScript-Konfigurationen
config.linkVars = L
config.sys_language_uid = 0
config.language = de
meta.TITLE = OHV


page = PAGE
page {
   typeNum = 0
   config.metaCharset = utf-8

   # Die Designvorlage integrieren
   10 = TEMPLATE
   10.template = FILE
   10.template.file = fileadmin/index_test.html
   10.workOnSubpart = DOKUMENT
   stylesheet = fileadmin/include/style.css

10.marks {

   # Das grafische Menü erstellen
   MENUE1 = HMENU
   MENUE1 {
   1.wrap = <div id="ebene1">|</div>
   2.wrap = <div id="ebene2">|</div> 
   3.wrap = <div id="ebene3">|</div> 
   special = directory
   special.value = 1
   entryLevel = 0
   1 = GMENU
   1.NO = 1
   1.NO {

      XY = [10.w]+20 , 26
      transparentBackground = true
         
      # Text auf den Menüpunkt rendern
      10 = TEXT
      10.text.field = title
      10.text.listNum = 0
      10.text.listNum.splitChar = |
      10.fontColor = #000000
      10.fontFile = fileadmin/fonts/DINPro.ttf
      10.fontWeight = bold
      10.fontSize = 15
      10.niceText = 1
      10.offset = 16, 16
      20 = IMAGE
      20.XY = 14,14
      20.file = fileadmin/bilder/menue_off.gif
      20.offset = 0, 5
      30 = IMAGE
      30.XY = 745,26
      30.file = fileadmin/bilder/blanc.gif
      30.offset = 0, 0
      } 

      # Roll over Ebene 1     
      1.RO < .1.NO
      1.RO.10.fontColor = #F9A21C
      1.RO.20.file = fileadmin/bilder/menue_on.gif

      1.CUR < .1.NO
      1.CUR.10.fontColor = #F9A21C
      1.CUR.20.file = fileadmin/bilder/menue_on.gif
      
      1.ACT < .1.NO
      1.ACT.10.fontColor = #F9A21C
      1.ACT.20.file = fileadmin/bilder/menue_on.gif

     

     # Die zweite Ebene als Kopie der ersten Ebene beschreiben
     2 < .1
     2.NO {


     10.fontColor = #000000
     10.fontSize = 14
     10.fontFile = fileadmin/fonts/DINPro.ttf
     10.offset = 16, 16

}
     
     2.RO < .2.NO
     2.RO.10.fontColor = #F9A21C
     2.RO.20.file = fileadmin/bilder/menue_on.gif
     
     2.CUR < .2.NO
     XY = [10.w]+20 , 26
     2.CUR.10.fontColor = #F9A21C
     2.CUR.20.file = fileadmin/bilder/menue_on.gif
     
     2.ACT < .2.NO
     2.ACT.10.fontColor = #F9A21C
     2.ACT.20.file = fileadmin/bilder/menue_on.gif
     
     
     # Die dritte Ebene als Kopie der ersten Ebene beschreiben
     3 < .1
     3.NO {
     
     10.fontColor = #000000
     10.fontSize = 14
     10.fontFile = fileadmin/fonts/DINPro.ttf

}
     
     3.RO < .3.NO
     3.RO.10.fontColor = #F9A21C
     3.RO.20.file = fileadmin/bilder/menue_on.gif
     3.CUR < .3.NO
     3.CUR.10.fontColor = #F9A21C
     3.CUR.20.file = fileadmin/bilder/menue_on.gif
     3.ACT < .1.NO
     3.ACT.10.fontColor = #F9A21C
     3.ACT.20.file = fileadmin/bilder/menue_on.gif

}


      # Inhalt ausgeben
      CONTENT1 = CONTENT
      CONTENT1 {
         table = tt_content
         select.orderBy = sorting
         select.where = colPos = 0
         select.languageField = sys_language_uid
         select.limit = 2
      }
      
      # Bilder ausgeben
      CONTENT2 = CONTENT
      CONTENT2 {
         table = tt_content
         select.orderBy = sorting
         select.where = colPos = 2
         select.languageField = sys_language_uid
         select.limit = 2
      }

}

# Die Überschrift neu formatieren
lib.stdheader >
lib.stdheader = CASE
lib.stdheader {
   key.field = header_layout
   default = TEXT
   default.field = header
   default.wrap = <h1>|</h1>
   
   1 = IMAGE
   1.file = GIFBUILDER
   1.file {
      XY = 365, 50+[15.h]
      backColor = #FFFFFF
      10 = TEXT
      10.text.field = header
      10.text.listNum = 0
      10.text.listNum.splitChar = |
      10.fontFile = fileadmin/fonts/DINPro.ttf
      10.fontColor = #000000
      10.fontWeight = bold
      10.fontSize = 24
      10.niceText = 1
      10.offset = 1, 30
    
      
     # Eine ggf. vorhandene zweite Textzeile
      15 < .10
      15.text.listNum = 1
      15.offset = 1, 50
}       
      # Hilfsebene zur Berechnung der Höhe von Menüpunkten
      16 < .10
      16.text.case = upper
      16.text.listNum = 1
      16.fontSize = 20
      16.offset = 1000,1000

       wrap = |<br>
}

nc.aTagParams = class="nav"
      }
fuss ·

Wie meinst Du das mit 3 Markern. im html-Template?

Ja, im HTML-Template für jede Ebene einen eigenen Marker

Habe ich dann, wenn nur eine Ebene dargestellt wird nicht eine Lücke zwischen menü und Inhalt??

Prinzipiell ja, was Du aber theoretisch ändern könntest, wenn im CSS für die Ebenen keine Höhe angegeben wird, Dann würden die Ebenen nur den Platz einnehmen, wenn da acuh Grafiken drin sind.

Im TS setzt Du Dir alle wraps für die Ebenen hintereinander, die Definitionen für die 2. und 3. Ebene wird aber durch das Kopieren (2 < .1) wieder überschrieben. Daher sollte die wrap Definition NACH dem Kopieren geschehen.

zorc68 ·

Tschuldigung, so ganz verstehe ich das noch nicht.
Ich definiere also kein komplett neues Menü mit eigenem entrylevel für jede ebene, sondern nur die einzelnen ebenen 1. 2. und 3. im html template. Wie sieht so ein marker denn dann im html template aus?? Für das menü habe ich ###MENUE1### gesetzt

zorc68 ·

Hi fuss, Du hast mir schon so sehr geholfen. Kannst Du mir bei letzten Schritt auch noch beistehen. Wie meinst Du dass mit einem Marker für jede einzelnde Ebene?

fuss ·

Olla!

Wie meinst Du dass mit einem Marker für jede einzelnde Ebene?

Naja, Momentan definierst Du Dir ein Menü ###MENU1### mit drei Ebenen.
Teile Deine 3 Ebenen in 3 Menüs auf (MENU1A, MENU1B, MENU1C), nun setzt Du Dir für jedes Menü den entsprechenden entryLevel (0, 1, 2 müsste es bei Dir sein) und dann setzt Du in Deinem HTML-Template die Marker, die dann gefüllt werden:

<tr><td>###MENU1A###</td></tr>
<tr><td>###MENU1B###</td></tr>
<tr><td>###MENU1C###</td></tr>

bzw. so anpassen, wie es für Deinen momentant Marker ###MENU1### aussieht.

gruss, fuss

zorc68 ·

Hab ich jetzt gemacht. Nun erscheint die zweite und dritte Ebene gar nicht mehr ??

10.marks {

   # Das grafische Menü _ erste Ebene erstellen
   MENU1A = HMENU
   MENU1A {
   1.wrap = <div id="ebene1">|</div>
   special = directory
   special.value = 1
   entryLevel = 0
   1 = GMENU
   1.NO = 1
   1.NO {

      XY = [10.w]+20 , 26
      transparentBackground = true
         
      # Text auf den Menüpunkt rendern
      10 = TEXT
      10.text.field = title
      10.text.listNum = 0
      10.text.listNum.splitChar = |
      10.fontColor = #000000
      10.fontFile = fileadmin/fonts/DINPro.ttf
      10.fontWeight = bold
      10.fontSize = 15
      10.niceText = 1
      10.offset = 16, 16
      20 = IMAGE
      20.XY = 14,14
      20.file = fileadmin/bilder/menue_off.gif
      20.offset = 0, 5
      30 = IMAGE
      30.XY = 745,26
      30.file = fileadmin/bilder/blanc.gif
      30.offset = 0, 0
      } 

      # Roll over Ebene 1     
      1.RO < .1.NO
      1.RO.10.fontColor = #F9A21C
      1.RO.20.file = fileadmin/bilder/menue_on.gif

      1.CUR < .1.NO
      1.CUR.10.fontColor = #F9A21C
      1.CUR.20.file = fileadmin/bilder/menue_on.gif
      
      1.ACT < .1.NO
      1.ACT.10.fontColor = #F9A21C
      1.ACT.20.file = fileadmin/bilder/menue_on.gif
}
     
   # Das grafische Menü _ zweite Ebene erstellen
   MENU1B = HMENU
   MENU1B {
   2.wrap = <div id="ebene2">|</div>
   special = directory
   special.value = 1
   entryLevel = 1
   2 = GMENU
   2.NO = 2
   2.NO {

      XY = [10.w]+20 , 26
      transparentBackground = true
         
      # Text auf den Menüpunkt rendern
      10 = TEXT
      10.text.field = title
      10.text.listNum = 0
      10.text.listNum.splitChar = |
      10.fontColor = #000000
      10.fontFile = fileadmin/fonts/DINPro.ttf
      10.fontWeight = bold
      10.fontSize = 15
      10.niceText = 1
      10.offset = 16, 16
      20 = IMAGE
      20.XY = 14,14
      20.file = fileadmin/bilder/menue_off.gif
      20.offset = 0, 5
      30 = IMAGE
      30.XY = 745,26
      30.file = fileadmin/bilder/blanc.gif
      30.offset = 0, 0
      } 

      # Roll over Ebene 2     
      2.RO < .2.NO
      2.RO.10.fontColor = #F9A21C
      2.RO.20.file = fileadmin/bilder/menue_on.gif

      2.CUR < .2.NO
      2.CUR.10.fontColor = #F9A21C
      22.CUR.20.file = fileadmin/bilder/menue_on.gif
      
      2.ACT < .2.NO
      2.ACT.10.fontColor = #F9A21C
      2.ACT.20.file = fileadmin/bilder/menue_on.gif   
}
     
     
   # Das grafische Menü _ dritte Ebene erstellen
   MENU1C = HMENU
   MENU1C {
   3.wrap = <div id="ebene3">|</div>
   special = directory
   special.value = 1
   entryLevel = 2
   3 = GMENU
   3.NO = 3
   3.NO {

      XY = [10.w]+20 , 26
      transparentBackground = true
         
      # Text auf den Menüpunkt rendern
      10 = TEXT
      10.text.field = title
      10.text.listNum = 0
      10.text.listNum.splitChar = |
      10.fontColor = #000000
      10.fontFile = fileadmin/fonts/DINPro.ttf
      10.fontWeight = bold
      10.fontSize = 15
      10.niceText = 1
      10.offset = 16, 16
      20 = IMAGE
      20.XY = 14,14
      20.file = fileadmin/bilder/menue_off.gif
      20.offset = 0, 5
      30 = IMAGE
      30.XY = 745,26
      30.file = fileadmin/bilder/blanc.gif
      30.offset = 0, 0
      } 

      # Roll over Ebene 3     
      3.RO < .3.NO
      3.RO.10.fontColor = #F9A21C
      3.RO.20.file = fileadmin/bilder/menue_on.gif

      3.CUR < .3.NO
      2.CUR.10.fontColor = #F9A21C
      22.CUR.20.file = fileadmin/bilder/menue_on.gif
      
      3.ACT < .3.NO
      3.ACT.10.fontColor = #F9A21C
      3.ACT.20.file = fileadmin/bilder/menue_on.gif   
}

da dazu gehörige html

<link rel="stylesheet" type="text/css" href="include/style.css">
<!-- ###DOKUMENT### begin -->
<table width="800" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="30"><img name="" src="fileadmin/bilder/blanc.gif" width="30" height="30" alt="" /></td>
    <td width="745" valign="top"><table width="745" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td height="115" colspan="3"><img src="fileadmin/bilder/logo.gif" alt="Logo des OHV" width="745" height="115" /></td>
      </tr>
      <tr>
        <td colspan="3" valign="top"><table width="745" height="26" border="0" cellpadding="0" cellspacing="0" background="fileadmin/bilder/menueleiste.gif">
          <tr>
            <td background="fileadmin/bilder/menueleisteback.gif"><table width="745" border="0" cellspacing="0" cellpadding="0">
      <tr><td>###MENU1A###</td></tr>
      <tr><td>###MENU1B###</td></tr>
      <tr><td>###MENU1C###</td></tr> 
            </table></td>
          </tr>
          
        </table></td>
      </tr>
      
      <tr>

      </tr>
      <tr>
        <td width="470" valign="top"><img name="" src="fileadmin/bilder/blanc.gif" width="470" height="20" alt=" " /><br />
          ###CONTENT1###</td>
        <td width="12" valign="top"><table width="12" height="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td height="500" background="fileadmin/bilder/leiste_vertikal.gif">&nbsp;</td>
          </tr>
        </table>
          <br /></td>
        <td width="263" valign="top">###CONTENT2###</td>
      </tr>
    </table></td>
    <td width="25"><img name="" src="fileadmin/bilder/blanc.gif" width="25" height="25" alt="" /></td>
  </tr>
</table>
<!-- ###DOKUMENT### end -->
fuss ·

Kommentier mal folg. beiden Zeilen bei allen Menüs testweise aus, um zu gucken, ob überhaupt was kommt:

special = directory
special.value = 1
fuss ·

Werden denn die neuen Marker überhaupt ersetzt?
also z.B. zum testen:

MENU1B = TEXT
MENU1B.value = bla
fuss ·

oka, das funktioniert (hab ich gerade gesehen)
probier mal mit dem entry level rum, das wird irgendwo nur ne Kleinigkeit sein.

EDIT:
ich sehe gerade:
bei MENU1B muss es durchweg NICHT 2.NO heissen, sondern natürlich auch 1.NO, genauso für MENU1C, da muss es anstatt 3.NO halt 1.NO heissen.
Weil Du Dir bei 1B die ZWEITE Ebene von 1B definierst, es ist aber die ERSTE (die durch die getrennten Marker als zweite angezeigt wird), hm klingt verwirrend, ist aber so 😉

Menu1A 1.NO (erste Ebene Menü, erste Ebene TS)
Menu1B 1.NO (zweite Ebene Menü, erste Ebene TS)
Menu1C 1.NO (dritte Ebene Menü, erste Ebene TS)

zorc68 ·

😃 😃 😃 😃 😃 😃
das wars. ganz ganz herzlichen Dank an Dich. Du hast mir den Tag gerettet.
Viele Grüße unbekannterweise