Typo3 - Navigation: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Typo3 Navigation & Beispiele)
Zeile 11: Zeile 11:
  
 
Ein Beispiel für ein Menü mit grafischen Hauptpunkten und Text-Layern für die 2. Ebene von archkom.de:
 
Ein Beispiel für ein Menü mit grafischen Hauptpunkten und Text-Layern für die 2. Ebene von archkom.de:
###################
+
<pre>
### DHTML Navigation ###
+
###################
###################
+
### DHTML Navigation ###
 +
###################  
  
includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
+
includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
temp.navi_gLayer = HMENU
+
temp.navi_gLayer = HMENU
temp.navi_gLayer.special = directory
+
temp.navi_gLayer.special = directory
temp.navi_gLayer.special.value = 2
+
temp.navi_gLayer.special.value = 2
### Level 1 ###
+
### Level 1 ###
temp.navi_gLayer.1 = GMENU_LAYERS
+
temp.navi_gLayer.1 = GMENU_LAYERS
temp.navi_gLayer.1 {
+
temp.navi_gLayer.1 {
  hideMenuWhenNotOver =10
+
    hideMenuWhenNotOver =10
  hideMenuTimer = 2000
+
    hideMenuTimer = 2000
  #Syle für den Layer vom Untermenü (Level2)
+
    #Syle für den Layer vom Untermenü (Level2)
  layerStyle = position:absolute;left:0px;top:249px;width:20px;VISIBILITY:hidden;   
+
    layerStyle = position:absolute;left:0px;top:249px;width:20px;VISIBILITY:hidden;   
  #xPosOffset = -113 #von links insgesamt
+
    #xPosOffset = -113 #von links insgesamt
  lockPosition = x
+
    lockPosition = x
  expAll=1
+
    expAll=1
  NO = 1
+
    NO = 1
  NO {
+
    NO {
      backColor = #5980B8
+
      backColor = #5980B8
      XY = 114, 23
+
      XY = 114, 23
      10 = TEXT
+
      10 = TEXT
      10{
+
      10{
        text.field = title
+
          text.field = title
        fontFile = fileadmin/fonts/arialbd.ttf
+
          fontFile = fileadmin/fonts/arialbd.ttf
        fontSize=14
+
          fontSize=14
        fontColor = #FFFFFF
+
          fontColor = #FFFFFF
        align = center
+
          align = center
        offset = 0,16
+
          offset = 0,16
      }
+
      }
  } #NO Ende
+
    } #NO Ende
  RO < .NO
+
    RO < .NO
  RO.10.fontColor= #FFDF00
+
    RO.10.fontColor= #FFDF00
  ACT < .RO
+
    ACT < .RO
}
+
  }  
 
 
### 2. Level  ###
 
temp.navi_gLayer.2 = GMENU
 
temp.navi_gLayer.2.wrap = |<br>
 
temp.navi_gLayer.2 {
 
#  hideMenuWhenNotOver = 8
 
#  hideMenuTimer = 300
 
  NO = 1
 
  NO {
 
      XY = 113, 20
 
      5 = BOX
 
      5{
 
        dimensions = 0,0,113,20
 
        color = #5980B8
 
      }
 
      7 = BOX
 
      7{
 
        dimensions = 0,19,113,1
 
        color = #FFFFFF
 
      }
 
      10 = TEXT
 
      10{
 
        fontSize = 11
 
        text.field = title
 
        align = center
 
        offset = 0,14
 
        fontColor = #FFFFFF
 
      }
 
  } #NO Ende
 
  RO < .NO
 
  RO.10.fontColor = #FFDF00
 
  ACT < .RO
 
}
 
  
 +
###  2. Level  ###
 +
temp.navi_gLayer.2 = GMENU
 +
temp.navi_gLayer.2.wrap = |<br>
 +
temp.navi_gLayer.2 {
 +
#  hideMenuWhenNotOver = 8
 +
#  hideMenuTimer = 300
 +
    NO = 1
 +
    NO {
 +
      XY = 113, 20
 +
      5 = BOX
 +
      5{
 +
          dimensions = 0,0,113,20
 +
          color = #5980B8
 +
      }
 +
      7 = BOX
 +
      7{
 +
          dimensions = 0,19,113,1
 +
          color = #FFFFFF
 +
      }
 +
      10 = TEXT
 +
      10{
 +
          fontSize = 11
 +
          text.field = title
 +
          align = center
 +
          offset = 0,14
 +
          fontColor = #FFFFFF
 +
      }
 +
    } #NO Ende
 +
    RO < .NO
 +
    RO.10.fontColor = #FFDF00
 +
    ACT < .RO
 +
}
 +
</pre>
 
== Navigation auf CSS Basis aks Punktliste ==
 
== Navigation auf CSS Basis aks Punktliste ==
 
(von Typo3.net)
 
(von Typo3.net)

Version vom 30. Januar 2006, 11:49 Uhr

In diesem Artikel sollen anhand von Beispielen verschiedene Navigations-Menüs mittels TypoScript gezeigt werden.


TMenu_Layer, GMenu_Layer

Bei den Layer Menüs gibt es das Problem bei variablen Designs (z.B. Mittig positioniert) dass man die Layer nicht absolut positionieren kann, denn je nach Fenstergröße verändern sich die x und y Werte. Tipps dafür gibt es im Deutschen Typo3 Newgroup und bei Marlies Cohen (mcuniverse.com):

[1]

[2]

Ein Beispiel für ein Menü mit grafischen Hauptpunkten und Text-Layern für die 2. Ebene von archkom.de:

 ###################
 ### DHTML Navigation ###
 ################### 

 includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
 temp.navi_gLayer = HMENU
 temp.navi_gLayer.special = directory
 temp.navi_gLayer.special.value = 2
 ### Level 1 ###
 temp.navi_gLayer.1 = GMENU_LAYERS
 temp.navi_gLayer.1 {
    hideMenuWhenNotOver =10
    hideMenuTimer = 2000
    #Syle für den Layer vom Untermenü (Level2)
    layerStyle = position:absolute;left:0px;top:249px;width:20px;VISIBILITY:hidden;  
    #xPosOffset = -113 #von links insgesamt
    lockPosition = x
    expAll=1
    NO = 1
    NO {
       backColor = #5980B8
       XY = 114, 23
       10 = TEXT
       10{
          text.field = title
          fontFile = fileadmin/fonts/arialbd.ttf
          fontSize=14
          fontColor = #FFFFFF
          align = center
          offset = 0,16
       }
    } #NO Ende
    RO < .NO
    RO.10.fontColor= #FFDF00
    ACT < .RO
 } 

 ###  2. Level   ###
 temp.navi_gLayer.2 = GMENU
 temp.navi_gLayer.2.wrap = |<br>
 temp.navi_gLayer.2 {
 #   hideMenuWhenNotOver = 8
 #   hideMenuTimer = 300
    NO = 1
    NO {
       XY = 113, 20
       5 = BOX
       5{
          dimensions = 0,0,113,20
          color = #5980B8
       }
       7 = BOX
       7{
          dimensions = 0,19,113,1
          color = #FFFFFF
       }
       10 = TEXT
       10{
          fontSize = 11
          text.field = title
          align = center
          offset = 0,14
          fontColor = #FFFFFF
       }
    } #NO Ende
    RO < .NO
    RO.10.fontColor = #FFDF00
    ACT < .RO
 }
 

Navigation auf CSS Basis aks Punktliste

(von Typo3.net)

Ein Menü als Punkteliste und nicht als GMENU aufzubauen hat verschiedene Vorteile:

  1. Die Übertragungszeit der Seite ist schneller.
  2. Schriften wirken schärfer als die, die der GIFBUILDER erzeugt
  3. Wenn der Text zu lang werden sollte, wird automatich eine neue Zeile angefangen. Der Text steht dabei in jeder Zeile immer bündig untereinander.
  4. Die so erzeugten Menüeinträge sind "barrierefrei"
  5. Die Suchmaschinen können die Links hervorragend analysieren

Das Punkteliste-Menü baut dabei auf das normale TMENU auf:


 page.10.marks.MENU = HMENU
 page.10.marks.MENU {
    special = directory
    # Seitenid für den Einstieg
    special.value = 5
    # Seitenbaumebene ab Level2
    entryLevel = 0
    1 = TMENU
    1 {
       noBlur = 1
       wrap = <ul>|</ul>
       NO = 1
       NO {
          ATagTitle.field = abstract // description // title
          wrapItemAndSub = <li>|</li>
       }
       CUR < .NO
       CUR.doNotLinkIt = 1
    }
    2 < .1
    3 < .1
 } 
 

Beschreibung des Sourcecodes:

In der Zeile 1 wird dem Marker MENU das cObjekt HMENU zugewiesen.

In diesem Beispiel wird der Einstiegspunkt für das Menü auf die Seite mit der ID 5 gelegt. Für die generierung der 2. Menüebene gibt man hier noch die Seitenbaum-Ebene an, ab der die 2. Menüebene generiert werden soll.

In den Zeile 6-19 wird dann die erste Menüebene definiert.

Das noBlur = 1 wird nur benötigt, wenn die Seite möglichst barrierefrei sein soll.

In Zeile 9 wird die komplette 1. Menüebene mit dem

    -Tags umschlossen. Anstatt der linkWraps muss nun wrapItemAndSub verwendet werden. Somit wird jetzt ein Link ohne Untermenü mit
  • ...
  • umschlossen; ein Link mit Untermenü allerdings nur mit
  • ... . Dadurch, das die nächste Menüebene wieder mit einem
      -Tag anfängt, wird die Punkteliste sauber generiert. Zeile 12 sorgt noch dafür, daß jedem Link ein <title>-Tag aus dem Datenbankfeld mitgegeben wird. Wenn in den Datenbankfeldern der Seite sowohl abstract als auch description nicht eingetragen ist, wird zumindest der Seitentitel eingetragen. Zeile 15 kopiert die Definition noch vom Normal-Zustand in den Zustand, der aktiv ist, wenn die Seite geöffnent ist. Zeile 16 entfernt nun noch den Link auf diese Seite, da er hier nicht notwendig und bei barrierefreien Seiten auch nicht gewünscht ist. Diese Definition wird dann nur noch in Zeile 18 und 19 für die 2. und 3. Menüebene generiert. Nun kann man diese Menü mit CSS grafisch noch verfeinern. Ein paar Beispiele wird es mit der nächsten Bearbeitung dieses Tutorials geben.